JetCustoms: the whole shop on one system, in three months.

JetCustoms Portal sign-in
Client
JetCustoms
Sector
Automotive
Service
Turnkey project
Duration
3 months
Technology
Next.js · TypeScript · Postgres

The challenge

A custom car shop with ten collaborators ran on Excel, hand-made PDFs and paper timesheets, reprinted every time a plan changed. The same job lived in several of them with nothing joining it up, so figures could not be correlated or validated easily.

What we did

One senior engineer, three months, first conversation to production. ERP, finance, HR, CRM and a CMS as one product on one database, over a single data model: each hour, part and vehicle recorded once and joined rather than copied, so the numbers reconcile by construction and business analytics has a foundation to build on. Delivered with a handbook and an engineering guide, so the shop is not dependent on us.

What it covers

What it covers
ModuleWhat it doesReplaced
ERPProjects, vehicles, hours, materials, approvalsExcel, WhatsApp
FinanceSettlement notes, rates per section, PDF statementsHand-made PDFs
HRTimesheets, schedules, holidays and time offPaper, reprinted
CRMClients, key account owners, automatic follow-upsMemory
CMSPublic content in two languages; drafts, preview, one-click publishAn agency

How it is built

How it is built
AreaImplementation
AuthorisationRow-level security on every table. Five domain-relevant roles, more than one per user
AuthenticationPassword or magic link, swappable provider. A new account reads nothing until approved
Data integrityTotals are generated columns and triggers, not application arithmetic. Settlement lines immutable once issued, with a parity test on every total
File transferSingle-use signed URLs direct to object storage. No file bytes through the app server
Schema changesDev first, always. Ordered, recorded migrations, never edited by hand. Types are generated from the schema in the same commit, and CI fails if the two disagree
TestsUnit tests, an RLS matrix and the parity test, in CI against a real database. Lint at zero warnings. Destructive scripts are tested to refuse in production
EnvironmentsTwo: production, and a disposable development clone of its schema and data. Copies flow one way only. The clone stays out of search results
Build and deployOne workflow per branch: checks, migration, type regeneration, SQL tests, build, deploy. The pipeline triggers the deploy, not the commit, so no release lands before its migration

The result

3 months
from first call to production
[−80%]
admin time per invoice
[2×]
faster from job done to cash in

The technical write-up

The same build, written for the engineer who has to maintain it: why five business domains went into one schema, what that buys, and what it costs.

Read it on Corvale Engineering

Start with a straight answer.

A fixed-price technical assessment, with no commitment afterwards. Or simply book a call.