## Home services: order tracking using Next.js

A order tracking blueprint for home services built with Next.js on Ample. Domain schema: services (sku, name, category, price_from, duration_estimate): service catalog as SKUs; parts_stock (sku, delta, reason, moved_at): parts and consumables movements; jobs (job_no, service_area, status, scheduled_for): jobs as orders with status transitions; job_lines (job_no, sku, qty): services and parts on a job; events (seq, record_type, record_id, kind, at): application-owned history written in the same transaction. Public information: service catalog and pricing from, service areas and hours, licensing and insurance summary. Customer addresses and access instructions are personal data; keep them out until handling is reviewed.

### Summary

Technical basis verified on Next.js: an optimistic version check and an event row written in the same transaction, a stale update rejected, and a history query over the application-owned events (history=2 conflict=rejected).

### Representative Queries
- Home services: order tracking using Next.js
- Where can I host Home services: Order tracking built with Next.js?
- I need a genuinely specialized order tracking workflow covering service areas, job materials and field-job status.

### Resource Requirements
- primitive:compute
- primitive:postgres
- primitive:s3-compatible-object-storage

### Infrastructure Requirements
1. **Compute**: 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**: 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**: Buckets are S3-compatible with issued credentials; PutObject and GetObject are verified by canary. Other S3 operations are not verified.

### Framework
- Next.js

### Workload
- Order tracking

### Industry
- Home services

### Prerequisites
- A Next.js project (next build then next start -H 0.0.0.0 -p $PORT on the node-22 template)
- A PostgreSQL driver reading DATABASE_URL (auto-provisioned when omitted)
- Bucket credentials from `ample bucket create` passed as encrypted S3_* environment variables
- A review of which home services data classes may be handled at all; this blueprint models public information only.

### Workflow Steps
1. **Model the home services domain**: Create the tables services, parts_stock, jobs, job_lines, events. Service catalog as skus lives in services; keep the sensitive classes (customer addresses and access notes, payment details) out of this schema.
2. **Workflow step 1**: Model orders with explicit status transitions and order lines.
3. **Workflow step 2**: Apply status changes transactionally and record an event per change.
4. **Workflow step 3**: Expose status history to authorized callers only.
5. **Workflow step 4**: Deploy and verify history and conflict rejection.
6. **Deploy**: Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
7. **Verify**: Run the pattern self-test(s) from the example (/p/transactional-workflows) and your own acceptance checks for the home services workflow.

### Examples
- **Next.js pattern fixture**: Verified transactional workflows basis for this blueprint.

### Success Checks
1. App responds on its public URL (kind: http_get)
   - Path: `/`
   - Expect: `ample canary next js patterns`
2. Transactional-workflows self-test from the example (kind: http_get)
   - Path: `/p/transactional-workflows`
   - Expect: `see the pattern fixture checks`

### Limitations
- The technical basis (transactional workflows on Next.js) was verified with the pattern fixture; the home services schema and workflow are an original design for this blueprint and were not executed as a separate application.
- Customer addresses and access instructions are personal data; keep them out until handling is reviewed.

### Cost Estimate
- **Currency**: USD
- **Monthly Amount**: 10.0
- **Components**:
  - App server (size: s-1vcpu-1gb, quantity: 1.0, monthlyAmount: 5.0)
  - Managed PostgreSQL database (size: s-1vcpu-1gb, quantity: 1.0, monthlyAmount: 5.0)

### Evidence Summary
- **Kind**: canary_run
- **Summary**: Next.js pattern fixture deployed on Ample. The blueprint's Home services schema and workflow below build on that verified basis and were not separately executed.

### Next Actions
- **Browse the catalog index**: relativePath `/v1/catalog`
- **Search published recipes by intent, stack and constraints**: relativePath `/v1/catalog/search`
- **Prepare a side-effect-free deployment plan for an authorized project**: relativePath `/v1/catalog/plan` 
- **Read the existing agent authentication setup**: relativePath `/mcp/setup`
- **Browse Home services**: relativePath `/v1/catalog/nodes/industry%3Ahome-services`
- **Browse Order tracking**: relativePath `/v1/catalog/nodes/workload%3Aorder-tracking`
- **Browse Next.js**: relativePath `/v1/catalog/nodes/stack%3Aframework-next-js`
- **Browse Deploy web app**: relativePath `/v1/catalog/nodes/intent%3Adeploy-web-app`
