
Pipeline CRM
Deal stages, forecasting and activity history for a sales team that has outgrown a spreadsheet.
Next.js · TypeScript · PostgreSQL · Tailwind
OverviewSales Rep1 / 6
Most quoting happens in a spreadsheet that only one person understands, and margin gets discovered afterwards. This build applies the rules as the quote is written, and shows the margin while there is still time to care about it.
Next.js · TypeScript · PostgreSQL · Recharts
Inside the app
22 connected functions on one schema, spanning three permission levels. Everything below is in the template before a line of customisation.
18 quotes open worth $412,000, and 2 are sitting with your manager for discount approval.
Everything you have sent, with margin and where each one has got to.
Options that depend on each other, checked as you pick rather than at the end.
What you can sell, at what price, with what floor.
Requests above a rep's limit, with the margin consequence shown.
Where discount is actually going, by rep and by product family.
Discount limits, approval thresholds and what cannot be sold together.
Every approval, override and price book change. Retained for seven years.
Permissions
A rep builds and discounts within a limit. A manager approves beyond it, seeing the margin consequence. An administrator sets the floor nobody crosses. The limits are enforced as the quote is written, not discovered afterwards.
The build
22 functions, all of them live in the preview. Nothing on this list is a mockup or a roadmap item.
What you get
Sales teams quoting configured products or services where discounting needs a limit.
Access and evidence
A discount conceded in a meeting is almost never recovered. Showing margin at the moment the number is typed is worth more than any amount of reporting after the quarter closes.
Related

Deal stages, forecasting and activity history for a sales team that has outgrown a spreadsheet.
Next.js · TypeScript · PostgreSQL · Tailwind

A whole partner programme in one app: deal registration, a gated resource library, training, funding requests and tier performance.
Next.js · TypeScript · PostgreSQL · Auth.js

Plans, usage metering, invoicing and dunning, with MRR you can actually reconcile.
Next.js · TypeScript · PostgreSQL · Recharts
Questions
Yes. The repository, application code, database schema, migrations, seed data and deployment configuration, is transferred to your organisation on delivery. There is no licence key and nothing that calls home.
As many as you like. Per-seat CPQ licensing is why quoting so often stays in a spreadsheet that one person maintains, pricing here is per application, so the whole team can be on it.
Yes, and that is the harder half of quoting. Options declare what they depend on and what they conflict with, and the check runs as the quote is built rather than when someone tries to fulfil it. An invalid configuration cannot be sent.
No. It is the quoting layer that sits alongside it. A fitted build syncs accounts, opportunities and won quotes both ways, so the CRM stays the record of the relationship and this stays the record of what was actually priced.
That is the usual route. A fitted build sets up your price book, configuration rules, discount limits, approval chain, quote document design, branding and up to two integrations, and typically takes one to three weeks from a signed scope.
Hosting only, paid to your own cloud provider, roughly $50 to $200 a month depending on quote volume and how much document history you retain.
A fitted build adjusts fields, stages, roles and integrations to how your team already works. One scoping call, a fixed price, one to three weeks.
