page:guides:react router:build and start
Configure Build and Start for React Router
Configure build and start for a React Router app on Ample. React Router 7 framework mode: react-router build then react-router-serve ./build/server/index.js, which reads PORT. Ample detects the runtime, installs dependencies, runs the build when present and starts the app on the node-22 template behind a public HTTPS URL.
Representative Queries
- Configure build and start for React Router
- Where can I host Configure build and start built with React Router?
- I need pinned build/start commands, port binding and a tested process lifecycle.
Infrastructure Requirements
- Compute: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.
Prerequisites
- A
package.jsonwith build and start scripts - A server that listens on
process.env.PORTand0.0.0.0 - An Ample account token with
servers:write
Tested Configuration
- Template: node-22
- Runtime: node
- Size: s-1vcpu-1gb
- Install Command:
npm install - Build Command:
npm run build --if-present - Start Command:
npm run start
Workflow Steps
- Make the start command bind correctly: React Router 7 framework mode:
react-router buildthenreact-router-serve ./build/server/index.js, which readsPORT. - Deploy: Run the existing synchronous deploy once from the project directory and read the result. Exit 0 is live, 1 is failed, 2 is blocked on a required preflight action. Re-running with no change is a content-addressed no-op.
- Command:
ample deploy . --name <app-name> --public --format json
- Command:
- Verify: Fetch the live URL and run the success checks below. On failure read the build log, then the runtime log, fix the cause, and deploy again; do not blind-retry.
- Command:
ample logs <app-name> --kind build
- Command:
Examples
- react-router-basic canary: React Router 7 framework-mode app.
- remix-basic canary: Remix 2 app (React Router-based) with remix-serve.
Limitations
- Verified on the node-22 template at s-1vcpu-1gb; other templates and sizes are not verified by this recipe.
- Region, compliance attestations, and request-duration limits are unknown and not claimed.
- Apps auto-pause when idle and wake on the next request; always-on is an operator setting, not a plan feature.
- React Router 7 framework mode and Remix 2 were tested; SPA mode and other servers are not verified.
Cost Estimate
- Monthly Amount: $5.00 USD
- Basis: Size prices from
pricing.toml(loaded by the API) at build revision1ac5595375130d45290090e82ed0f554ccd45405-dirty - Components: 1 app server of size s-1vcpu-1gb.
- Note: Apps and managed databases auto-pause when idle; the estimate is the always-on monthly price of the tested sizes. Plan quotas and budgets apply.
- Basis: Size prices from
Success Checks
- Description: Page or root route responds
- Kind: http_get
- Path:
/ - Expect:
ample canary react router basic
Evidence Summary
- Canary Run: React Router 7 framework-mode app (react-router build, react-router-serve) deployed on node-22 and rendered the expected page.
- Canary Run: Remix 2 app (remix vite:build, remix-serve) deployed on node-22 and rendered the expected page.