### Migrate Netlify web app: Next.js

Move Next.js compute from Netlify web app to Ample, one component at a time. Destination verified on Ample: the app built, started and answered on its public HTTPS URL with encrypted configuration delivered. Source procedure: Copy environment variables from Site configuration (or `netlify env:list`) into an env file kept out of the repository. Not migrated automatically: Netlify Functions, Edge Functions, Forms, Identity and `_redirects`/`_headers` rules are not migrated; implement redirects in the app or the framework. Cutover: Add the custom domain with `ample domain add`, set the documented DNS records, keep the Netlify site until verified, then remove the domain from Netlify. Rollback: keep the source untouched until you confirm; nothing at the source is changed or deleted by this guide.

#### Workflow Steps

1. **Inventory the source**  
   List what Netlify web app provides beyond the component you are moving. Out of scope here: Netlify Functions, Edge Functions, Forms, Identity and `_redirects`/`_headers` rules are not migrated; implement redirects in the app or the framework.

2. **Source step 1**  
   Copy environment variables from Site configuration (or `netlify env:list`) into an env file kept out of the repository.

3. **Source step 2**  
   Translate `netlify.toml` build settings (command, publish directory) into the repository's own build script; Ample runs the detected build.

4. **Source step 3**  
   List Netlify-only features in use: functions, edge functions, forms, identity, redirects and headers rules.

5. **Deploy on Ample in parallel**  
   `next build` then `next start -H 0.0.0.0 -p $PORT` on the node-22 template. Pass the exported variables with `--env`; keep the source running. 
   Command: `ample deploy . --name  --public --env-file .env.production`.

6. **Validate before cutover**  
   Run the app's own checks and, for data, compare counts and checksums; the example checks are the pattern self-tests (`/p/configuration-secrets`, `/p/relational-records`).

7. **Cut over**  
   Add the custom domain with `ample domain add`, set the documented DNS records, keep the Netlify site until verified, then remove the domain from Netlify.

8. **Rollback**  
   Point DNS or configuration back to the source. The source was never modified; deletion is a separate, user-executed step after validation.

#### Limitations
- Documentation only: nothing is executed automatically and no execution binding is offered.
- The source-side procedure is documented from Netlify web app's standard tooling and was not executed in this catalog's evidence; the destination side was verified with the pattern fixture.
- No full source-product parity is claimed: Netlify Functions, Edge Functions, Forms, Identity and `_redirects`/`_headers` rules are not migrated; implement redirects in the app or the framework.
- Verified on the node-22 template at s-1vcpu-1gb; region, compliance and request-duration limits are unknown.
- Managed PostgreSQL 16 only; extensions, connection limits and backup or restore procedures on the managed side are not verified beyond the pattern checks.
