page:recipes:campaign site:next js:content imports

Host campaign site with Next.js: bulk content imports

Deploy a campaign site built with Next.js on Ample using the bulk import staging pattern. Compute runs the app in an isolated microVM behind a public HTTPS URL, a managed PostgreSQL 16 database is auto-provisioned and injected as DATABASE_URL, a private S3-compatible bucket holds objects with credentials delivered as encrypted environment variables. Verified on Next.js: a CSV staged as an object, row-level validation with per-row errors recorded, and a restart-safe import keyed by import id (imported=2 rejected=1 restart=ok). Not separately tested: your import format, mapping and conflict rules; treat the campaign site-specific behavior as your application code.

Representative Queries

Parent IDs

Resource Requirements

Infrastructure Requirements

  1. Compute
    Status: verified
    Summary: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.
  2. Postgres
    Status: verified
    Summary: Managed PostgreSQL 16 runs in its own microVM and is auto-provisioned when an app needs a database and no DATABASE_URL is supplied.
  3. S3-compatible object storage
    Status: verified
    Summary: Buckets are S3-compatible with issued credentials; PutObject and GetObject are verified by canary. Other S3 operations are not verified.

Framework

Next.js

Workload

Campaign site

Release Status

Published

Support Status

Verified

Execution Status

Ready

Prerequisites

Tested Configuration

Input Schema

Properties

Required

Workflow Steps

  1. Build and start
    next build then next start -H 0.0.0.0 -p $PORT on the node-22 template. The server must bind 0.0.0.0 on PORT.
  2. Implement the pattern on PostgreSQL
    Copy the approach into your schema; keep migrations idempotent and run them with --release-command.
  3. Wire object storage
    Create the bucket(s), then pass endpoint, region, bucket and keys as --env values.
  4. Deploy
    Run the synchronous deploy once and read the result.
  5. Verify
    Fetch the live URL and the pattern self-test route(s) (/p/bulk-import-staging) from the example; then run your own checks.

Success Checks

  1. App responds on its public URL
  2. Bulk-import-staging self-test

Limitations

Cost Estimate

Components

  1. App server: s-1vcpu-1gb, quantity: 1.0, monthly amount: 5.0
  2. Managed PostgreSQL database: s-1vcpu-1gb, quantity: 1.0, monthly amount: 5.0

Note

Always-on monthly price of the tested sizes; apps and databases auto-pause when idle. Buckets are allocation-priced per quota and not included.

Evidence Summary

  1. Canary Run
    • Summary: Next.js pattern fixture deployed on Ample.
    • Observed At: 2026-09-21T02:34:39Z

Last Verified At

2026-09-21T02:34:39Z