## Configure build and start for Astro

### Summary
Configure build and start for a Astro app on Ample. A server-output Astro app runs its start script; a static build is published as a static site. 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.

### Resource Requirements
- primitive:compute

### 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.

### Framework
Astro

### Workload
Configure build and start

### Release Status
Published

### Support Status
Verified

### Execution Status
Ready

### Prerequisites
- A package.json with build and start scripts
- A server that listens on process.env.PORT and 0.0.0.0
- An Ample account token with servers:write

### Tested Configuration
- Template: node-22
- Runtime: node
- Size: s-1vcpu-1gb
- Install: `npm install`
- Build: `npm run build --if-present`
- Start: `npm run start`

### Workflow Steps
1. **Make the start command bind correctly**: A server-output Astro app runs its start script; a static build is published as a static site.
2. **Deploy**: Run the existing synchronous deploy once from the project directory and read the result.
   - Command: `ample deploy . --name  --public --format json`
3. **Verify**: Fetch the live URL and run the success checks. On failure, read the build log, fix the cause, and deploy again.
   - Command: `ample logs --kind build`

### Success Checks
- Page or root route responds: `ample canary astro basic`

### 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.
- Astro SSR adapters other than the tested node output are not verified.

### Cost Estimate
- **Currency**: USD
- **Monthly Amount**: 5.0
- **Basis**: size prices from pricing.toml (loaded by the API) at build revision 1ac5595375130d45290090e82ed0f554ccd45405-dirty
- **Components**:
  - **App Server**: Size: s-1vcpu-1gb, Quantity: 1.0, Monthly Amount: 5.0
- **Note**: Apps and managed databases auto-pause when idle; the estimate is the always-on monthly price of the tested sizes.

### Evidence Summary
- Summary: Astro app built and started on node-22 and rendered the expected page.
  - Observed At: 2026-09-20T00:22:15Z
  - Scope: CLI Version: 0.1.20, Platform: hosted-beta, Template: node-22
- Summary: Astro static build output published as a static site.
  - Observed At: 2026-09-20T00:22:15Z
  - Scope: CLI Version: 0.1.20, Platform: hosted-beta, Template: node-22

### Unknowns
- Region availability is unknown until a verified region fact is recorded.
- Compliance attestations are unknown; none are claimed.

### Formats
- [HTML](/content/guides/astro/build-and-start/index.html)
- [Markdown](/content/guides/astro/build-and-start.md)
- [JSON](https://api.ample.computer/v1/catalog/recipes/page%3Aguides%3Aastro%3Abuild-and-start)
