- App typemicro app
- Features2
- AuthYes
- Paymentsnone
- Data modelsvendors, contacts
Postgres web app development with the schema locked before code
Data apps fail when the schema is an afterthought—migrations duct-taped in week three, reports that do not match reality, auth tied to the wrong tenant model. Lab Twelve scopes Postgres apps schema-first: entities on one page in the ScopeSpec, Drizzle migrations in repo, queries matched to screens. Micro App covers tight models; Business App and MVP Sprint add roles, jobs, and storage. Fixed price follows the locked model, not whatever the ORM generated on day one.
| Postgres + Drizzle schema | Included |
|---|---|
| Migrations with handoff | Included |
| Auth tied to data model | Included |
| Admin data views | Included |
| Production database deploy | Included |
Postgres + Drizzle schema: In repo
Migrations with handoff: You can run them
Auth tied to data model: Users/roles as scoped
Admin data views: When in tier
Production database deploy: Included
| Petabyte analytics warehouse | Not in base scope |
|---|---|
| Oracle/SQL Server | Not in base scope |
| Mystery schema growth | Not in base scope |
Petabyte analytics warehouse: Different project
Oracle/SQL Server: Postgres default
Mystery schema growth: Change orders after lock
A representative ScopeSpec ticket—your quote is built from your answers in the scope chat.
Day 0
Schema on one page
Entities, fields, relationships.
Days 1–3
Migrations + seeds
Reviewable SQL/Drizzle.
Days 4–10
App against real data
No lorem ipsum DB.
Ship
Backup + deploy notes
Railway Postgres default.
Questions for this build type
Why Postgres?
Reliable default for web apps: JSON when needed, strong constraints, Railway-native.
Can you import our existing data?
Data import is an add-on when source format is defined.
Do you use an ORM?
Drizzle in current stack. Handoff includes schema and migration commands.
Ready for a fixed quote?
One conversation at /start turns your brief into a locked scope and published price.