## Orthodontics: company website using Next.js

### Summary
A company website blueprint for orthodontics built with Next.js on Ample.  
Domain schema:  
- **appliance_types** (code, name, description, typical_duration_months): braces and aligner options;  
- **treatment_stages** (appliance_type_id, stage_no, name, what_to_expect): public description of treatment phases;  
- **locations** (name, address, phone, opening_hours): practice locations;  
- **age_groups** (name, guidance): children, teens and adults guidance;  
- **asset_versions** (version, cdn_key, published_at): versioned assets served from the CDN bucket.

Public information:  
appliance options and durations, stage-by-stage expectations, age-group guidance, locations.  
Kept out of scope until handling is reviewed: patient scans and treatment plans, progress photos, guardian and minor identity.  
Orthodontic plans and progress imagery are health data; keep them out of scope until handling is reviewed.  
No compliance is claimed.

### Technical Basis
Technical basis verified on Next.js: a versioned, immutable-cached asset uploaded to a published bucket and served from the CDN URL alongside the app's own public HTTPS URL.

### Representative Queries
- Orthodontics: company website using Next.js
- Where can I host Orthodontics: Company website built with Next.js?
- I need a genuinely specialized company website workflow covering public specialty-service navigation and clinician information; no treatment records.

### Workflow Steps
1. **Model the orthodontics domain**  
Create the tables appliance_types, treatment_stages, locations, age_groups, asset_versions. Braces and aligner options lives in appliance_types; keep the sensitive classes (patient scans and treatment plans, progress photos, guardian and minor identity) out of this schema.  
2. **Workflow step 1**  
Model the public catalog as tables and render pages from them  
3. **Workflow step 2**  
Build the site and publish versioned static assets to the CDN bucket  
4. **Workflow step 3**  
Keep every sensitive data class out of the site; link to separate, authorized systems instead  
5. **Workflow step 4**  
Deploy and verify the public URL and the CDN asset URL  
6. **Deploy**  
Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
   - Command: `ample deploy . --name  --public --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=... --env CDN_PUBLIC_URL=...`
7. **Verify**  
Run the pattern self-test(s) from the example (`/p/versioned-static-assets`) and your own acceptance checks for the orthodontics workflow.
   - Command: `ample logs  --kind build`

### Input Schema
- **env**: Encrypted environment variables
- **name**: App name
- **path**: Project directory or ample.toml service
- **release_command**: Migration command run before activation

### Tested Configuration
- **template**: node-22
- **runtime**: node
- **size**: s-1vcpu-1gb
- **install**: `npm install`
- **build**: `npm run build --if-present`
- **start**: `npm run start`

### Limitations
- The technical basis (public web service on Next.js) was verified with the pattern fixture; the orthodontics schema and workflow are an original design for this blueprint and were not executed as a separate application.
- No health, financial, privacy or other compliance claim is made. Orthodontic plans and progress imagery are health data; keep them out of scope until handling is reviewed. No compliance is claimed.
- Verified on the node-22 template at s-1vcpu-1gb; region, request-duration limits and other sizes are unknown or unverified.

### Cost Estimate
- **Currency**: USD  
- **Monthly Amount**: $5.00  
- **Basis**: size prices from pricing.toml (loaded by the API)
- **Components**:
   - app server, size: s-1vcpu-1gb, quantity: 1.0, monthly amount: $5.00
- **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.

### Next Actions
- **Browse the catalog index**  
  Operation ID: `catalog_index`, Method: `GET`, Relative Path: `/v1/catalog`
- **Search published recipes by intent, stack and constraints**  
  Operation ID: `search_recipes`, Method: `POST`, Relative Path: `/v1/catalog/search`
- **Prepare a side-effect-free deployment plan for an authorized project**  
  Operation ID: `plan_deployment`, Method: `POST`, Relative Path: `/v1/catalog/plan`
- **Read the existing agent authentication setup**  
  Operation ID: `existing_auth_setup`, Method: `GET`, Relative Path: `/mcp/setup`
