
Pipeline CRM
Deal stages, forecasting and activity history for a sales team that has outgrown a spreadsheet.
Next.js · TypeScript · PostgreSQL · Tailwind
Client overviewClient1 / 6
Most client communication is the same four questions asked repeatedly. This gives each customer a login where the answers are already waiting, and every request has a status.
Next.js · TypeScript · PostgreSQL · Auth.js
Inside the app
23 connected functions on one schema, spanning three permission levels. Everything below is in the template before a line of customisation.
Three documents are waiting for you and one invoice is due next week.
Everything shared with you, with versions and who has read what.
What you asked for, who owns it, and when to expect a reply.
What has been billed, what is paid, and what is outstanding.
What is agreed, what is done, and what is waiting on you.
Every client account, its activity and what is outstanding.
Everything clients have asked for, by target date.
Who at the client can see what, and who invited them.
Every share, download and access change. Retained for seven years.
Permissions
A client sees only their own account. An account manager sees the client book and the request queue. An administrator controls who at the client can see what. Isolation between clients is enforced at the database row level.
The build
23 functions, all of them live in the preview. Nothing on this list is a mockup or a roadmap item.
What you get
Service businesses, agencies and professional firms whose client updates currently live in email threads.
Access and evidence
A portal that leaks one client's documents to another does not get a second chance. Isolation is enforced in the query, not by hiding navigation, so a manipulated URL returns nothing rather than someone else's data.
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

Health scores, renewal calendars and QBR prep for the team that keeps revenue from leaking.
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.
As many as you like. Pricing is per application, not per client or per seat, so inviting every contact at every client costs nothing extra, which matters, because a portal only replaces email if everyone is actually on it.
No. Records are isolated at the row level in the query itself rather than by hiding buttons, so a client account cannot reach another client's documents, requests or invoices even by editing a URL.
It shows what is owed and links each invoice to the milestone it was raised against. Collection goes through your existing payment provider, connected in a fitted build.
That is the usual route. A fitted build sets up your document types, request types and response times, milestone structure, per-client 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, rising mainly with document storage.
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.
