Developer guide
Developer guide
Understand the codebase, run it locally, and ship changes safely.
This guide is for engineers working on Prolifto. It explains how the monorepo fits together, how data flows between the admin and storefront, and which workflows to use when changing the platform.
Reading order
- Architecture — the system in one page.
- Local development — run and debug it.
- Database — schema, migrations, and queries.
- Authentication and tenancy — users, organizations, roles, and API keys.
- API and SDK — oRPC, OpenAPI, and the typed client.
- Testing — unit, integration, and E2E.
Then use the reference pages as needed:
- Payments
- Background jobs
- Storage
- Feature flags
- Observability
- Deployment
- Backups and restore
- Troubleshooting
How to make a change
- Read the relevant module and its tests.
- Change shared contracts in
@prolifto/domainfirst. - Update the database schema and generate a migration if needed.
- Implement server logic in the admin module.
- Update the UI and the storefront if the change is customer-facing.
- Add or update tests for critical behavior.
- Update the docs in the same pull request.
- Run
pnpm check,pnpm check-types, and the relevant tests.
Repository conventions
- TypeScript strict mode; no
anywhenunknownworks. - Biome + Ultracite for formatting and linting.
- Drizzle for all database access.
- Zod schemas for API and form validation.
- Admin modules are vertical slices with
server,ui, andhooks. - Storefront reads catalog data through
@prolifto/sdk, not directly from the database.
Need help?
- Check Troubleshooting.
- Search the repository before adding a new abstraction.
- When in doubt, prefer a small change in the existing module over a new package.
Production database commands are guarded and require explicit confirmation.
Never run pnpm db:push against production.