The tool is mostly empty.
People have a CRM account but the data lives in spreadsheets, inboxes, and shared docs because the tool doesn't reflect the workflow.
Not around the tool's opinion of it.
Most CRMs ship with opinions about how a sales process should look. When those opinions match yours, off-the-shelf is the right answer. When they don't, you spend months bending your work to fit the tool — or worse, the tool fills with workaround data that nobody trusts.
A custom CRM is the third option. Built on a stack you control — Postgres and Airtable for most engagements, with a Next.js or similar frontend where the data needs a real surface.
People have a CRM account but the data lives in spreadsheets, inboxes, and shared docs because the tool doesn't reflect the workflow.
Your work has three or four distinct states the CRM doesn't recognise — and your team is hacking around them with custom fields.
Every week someone spends half a day exporting, reformatting, and assembling a deck. The CRM was supposed to solve this.
Because the tool doesn't actually fit the role. A simpler, fitted system often costs less than the seats you're carrying.
Sit with the team. Map how deals actually move. Identify the points where the current system falls down. Write a single document that everyone agrees on.
The objects, fields, relationships, and stages. Drafted on a whiteboard, reviewed with you, committed to before any UI work.
Backend first (Postgres or Airtable, with the migrations and the integrations). Then the front surface — minimal, dense, designed for the work that happens in it daily.
Migrate the existing data. Train the team. Hand over the documentation. Optional retainer for ongoing development once the system is in production.
Tell us how your work actually moves. We'll tell you whether a custom CRM is the right fix.