## Architecture practices: project tracker using Next.js

A project tracker blueprint for architecture practices built with Next.js on Ample. Domain schema:

- **client_entities** (name, entity_type, site_address): clients and project sites
- **projects** (client_entity_id, project_name, stage, period_start, period_end): engagement periods by RIBA/AIA-style stage
- **drawing_sets** (project_id, set_name, revision, object_key, issued_at): versioned drawing issues
- **approvals** (project_id, drawing_set_id, approver_role, decided_at, decision): client sign-offs per issue
- **state_transitions** (record_type, from_state, to_state): the allowed state machine.

Public information: portfolio and services, team and accreditations, studio locations. Kept out of scope until handling is reviewed: unreleased drawings and site surveys, planning submissions before filing, client contact details. Drawings and surveys are client-confidential until issued; the portal models per-project authorization only.

Technical basis verified on Next.js: a workspace-scoped table, an explicit state machine (draft to review to published) that rejects invalid transitions, and a cross-workspace read that returns nothing (transitions=true isolation=true).

### Representative Queries
- Architecture practices: project tracker using Next.js
- Where can I host Architecture practices: Project tracker built with Next.js?
- I need a genuinely specialized project tracker workflow covering project phases, drawing versions and reviewer access.

### Resource Requirements
- **Compute**: Primitive Compute
- **Database**: PostgreSQL
- **Storage**: 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.

### Workflow Steps
1. **Model the architecture practices domain**: Create the tables client_entities, projects, drawing_sets, approvals, state_transitions.
2. **Model engagements and workstreams** with explicit status transitions.
3. **Scope every query** by client entity.
4. **Attach deliverables** as private objects linked to workstreams.
5. **Deploy and verify** transitions and cross-client isolation.
6. **Run the synchronous deploy** once and read the result. Re-running with no change is a no-op. Command:  `ample deploy . --name --public....`
7. **Run the pattern self-test(s)** from the example and your own acceptance checks.

### Examples
- **Next.js pattern fixture**: Verified relational records basis for this blueprint.

### Success Checks
- App responds on its public URL.
- Relational-records self-test from the example.

### Limitations
- The technical basis (relational records on Next.js) was verified with the pattern fixture; the architecture practices schema and workflow are an original design for this blueprint and were not executed as a separate application.
- Public content and synthetic examples only until actual data-handling requirements have been reviewed.

### Cost Estimate
- **Currency**: USD
- **Monthly Amount**: 10.0
  - **Components**:
    - **App server**: Size: s-1vcpu-1gb, Monthly Amount: 5.0
    - **Managed PostgreSQL database**: Size: s-1vcpu-1gb, Monthly Amount: 5.0
- **Note**: Always-on monthly price of the tested sizes.

### Evidence Summary
- Next.js pattern fixture deployed on Ample; the relational records checks passed.

### Next Actions
- **Browse the catalog index**: (GET) /v1/catalog 
- **Search published recipes**: (POST) /v1/catalog/search
- **Prepare a side-effect-free deployment plan**: (POST) /v1/catalog/plan
- **Read the existing agent authentication setup**: (GET) /mcp/setup 
- **Browse Architecture practices**: (GET) /v1/catalog/nodes/industry%3Aarchitecture-practices 
- **Browse Project tracker**: (GET) /v1/catalog/nodes/workload%3Aproject-tracker 
- **Browse Next.js**: (GET) /v1/catalog/nodes/stack%3Aframework-next-js 
- **Browse Deploy web app**: (GET) /v1/catalog/nodes/intent%3Adeploy-web-app
