# Home services: product catalog using Next.js

## Summary
A product catalog 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. Kept out of scope until handling is reviewed: customer addresses and access notes, payment details. Customer addresses and access instructions are personal data; keep them out until handling is reviewed.

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

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

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

## Execution Details
- **Framework**: Next.js
- **Workload**: Product catalog
- **Industry**: Home services
- **Release Status**: published
- **Support Status**: verified
- **Execution Status**: ready

## 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. Model the SKU catalog with versioned updates.
3. Record every catalog change as an event in the same transaction.
4. Reject stale concurrent updates.
5. Deploy and verify history and conflict handling.
6. Run the synchronous deploy once and read the result. Re-running with no change is a no-op.

## Success Checks
1. App responds on its public URL: **ample canary next js patterns**.
2. Transactional-workflows self-test from the example: **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.
- No health, financial, privacy or other compliance claim is made. Customer addresses and access instructions are personal data; keep them out until handling is reviewed.
- Verified on the node-22 template at s-1vcpu-1gb; region, request-duration limits and other sizes are unknown or unverified.

## Cost Estimate
- **Monthly Cost**: $10.00 USD
  - **Components**:
    - App server (size: s-1vcpu-1gb): $5.00
    - Managed PostgreSQL database (size: s-1vcpu-1gb): $5.00

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

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