BENKER Commercial Platform
Pre-production platform for a heavy-civil-works estimating business: organisations, studies, quotations, approvals, outcomes, and marketing eligibility on one identity layer
- Pre-production (private)
- 2026
- 64 commits last push Sept 2026
- TypeScript Next.js PostgreSQL PL/pgSQL Python pnpm workspaces Google Drive API Gmail API
The hard part of a commercial database is not the tables, it is agreeing on what counts as a study, a budget, a quotation, and an outcome, then making the archive of past PDFs fit that model without leaking it.
Private repository. Archive contents, contacts, and quotation data are omitted; the platform is described from its architecture and status documents.
Problem
Quotations lived as PDFs in Drive, pipeline state in spreadsheets, and customer context in Gmail. Nobody could answer how many studies were open, what had been quoted, or which outreach was still permitted.
What I built
- A Next.js application with a quotation cockpit that starts from the study, not the document.
- Postgres migrations with their own tests and README; PL/pgSQL where constraints belong in the database.
- Drive and Gmail integration that reads a snapshot outside the repository, read-only, with secret scanning configured.
- Make targets for foundation checks, web lint, types, tests, build, end-to-end runs, and read-only status reports.
Documentation as infrastructure
A delivery status file is the only authority on what is done, in progress, blocked, or gated. The architecture document classifies every artefact as built, designed, or proposed. The agent router and contributor guide point at both.
What I learned
When part of the business history is unresolved, the codebase should say so rather than model an entity nobody has confirmed.