07Operations platform
Distributor OS
four-portal distribution platform on one ledger
Public store, dealer portal, back office and CRM that cannot disagree, because they are one schema.
- Status
- In development
- Period
- 2026
- Relationship
- In-house venture
- Site
- Private
- Available as
- Build for you
The pipeline
- 01 SearchExact SKU, prefix, full text, then fuzzy
- 02 PriceTrade tiers with markup and margin held apart
- 03 QuoteVersioned estimate PDFs with tracked delivery
- 04 OrderStorefront, dealer portal and CRM share the record
- 05 OperateBack office works the rows sales just wrote
- 06 PermitSeven roles scoped to the row, below the UI
- 4portals, one codebase
- 7roles with distinct permission sets
- 2search strategies fused — fuzzy and exact
The problem
Distributors end up with a public store, a trade portal, a warehouse tool and a CRM bought separately, each with its own idea of what a customer and a price are. Reconciling them becomes a full-time job that produces no revenue.
What we built
- 01
Served four portals from one Next.js application over one schema, so trade pricing, inventory and customer records cannot diverge between surfaces.
- 02
Defined seven roles with permissions scoped to the row — a rep reading `crm:read:own` gets a query confined to their records, enforced below the UI.
- 03
Held money in cents on numeric columns with six-decimal quantities, and distinguished markup from margin explicitly in the pricing model rather than conflating the two.
- 04
Built catalogue search as a ladder — exact SKU, prefix, multi-word full text, then trigram fuzzy — so part numbers and plain English both resolve.
- 05
Generated estimates as versioned PDFs with tracked email delivery, bumping the version whenever an edit is re-sent.
Stack
- Next.js
- React 19
- TypeScript
- Prisma
- PostgreSQL
- Vitest
- Railway
Ideal for
Distributors and wholesalers paying for four systems that each hold a different idea of what a customer and a price are.