Cube of spheres, the studio mark

12 years building custom software

A CRM shaped like your process, not the other way round

Most companies should buy a boxed CRM, and we will say so on the first call. This page is for the ones who tried, and spend their days in workarounds because the way they sell does not fit anybody else’s idea of a pipeline.

See our work
CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//CRM Development//
Sound familiar

The CRM is in place. The real work happens beside it

  • “Everyone keeps their own spreadsheet next to the CRM, because the CRM cannot hold what they need.”

    A parallel system is not laziness — it is a vote. People maintain the thing that helps them and tolerate the thing that reports on them. When the two diverge, the reports are the ones that are wrong.

  • “Our sales cycle has stages nobody else has, and we fake them with custom fields.”

    Ten custom fields are a workaround; forty are a second product living inside someone else’s. At that point you are paying a licence for a database and doing the logic in your head.

  • “Every quote takes an hour because pricing depends on things the CRM cannot calculate.”

    Pricing rules are the most common reason a boxed CRM stops fitting. They are also the easiest thing to get wrong manually, and the mistakes are expensive in both directions.

  • “We pay per seat for people who only need to see one screen.”

    Per-seat pricing punishes exactly the growth you want: the warehouse, the workshop, the field team. Many companies solve it by not giving those people access, which is how the data goes stale.

The first version

A CRM your team actually uses, in ten weeks

from $20,000
Fixed against a scope agreed before we start. Dearer than a plain internal tool because a CRM always arrives with history to import and a system to integrate with — neither is ever quick.
Ten weeks
From first call to a system your sales team works in daily, with your real data inside it.

What you get

  • Your pipeline with your stages, including the ones no boxed product has
  • Contacts, companies and deals with the fields your business actually needs
  • Pricing and quoting rules as code rather than as someone’s memory
  • Roles: who sees which deals, and who may change what
  • Import of the history you have now, reconciled and checked
  • Integration with the one system you cannot work without — accounting, telephony or email
  • An interface built for the person entering the twentieth record of the day

What is not included

  • Setting up or migrating Salesforce, HubSpot, amoCRM or Bitrix24 — different trade, and better suppliers exist
  • Marketing automation and campaign management in version one
  • Call recording infrastructure — we integrate telephony rather than replace it
  • Predicting your sales with a model. The data has to be trustworthy first
  • Rebuilding a boxed CRM feature by feature: that is a bad reason to build
81
data models in the largest system we run
2,053
automated checks guarding it
8 months
to a platform an entire company works in
What ends up built

What a first version holds, and what deliberately waits

Custom CRM development fails in a predictable way: someone tries to rebuild the boxed product they left, feature for feature, and runs out of budget before reaching the part that made them leave. We start from the opposite end — the part no box could do — and add the ordinary things around it.

Which journeys go into which stage of the work
JourneyFirst ten weeksPhase twoNot us
The pipeline as your business actually runs itStages, transitions and the rules about who may move a deal where. This is the part that did not fit the box, so it goes in first.Covered · First ten weeksNot covered · Phase twoNot covered · Not us
Contacts, companies, deals and their historyOrdinary, unavoidable, and where the import lands. Boring to build and fatal to skip.Covered · First ten weeksNot covered · Phase twoNot covered · Not us
Pricing and quoting rulesDiscounts by volume, by category, by customer type, by whatever your business genuinely uses. Written as arithmetic that can be tested.Covered · First ten weeksNot covered · Phase twoNot covered · Not us
Roles and visibilityWho sees whose deals, who sees margin, who may reassign. Usually more subtle than "manager sees everything".Covered · First ten weeksNot covered · Phase twoNot covered · Not us
Import of your current dataFrom the spreadsheet, the old CRM, or both at once — with a reconciliation you can check rather than a promise that it worked.Covered · First ten weeksNot covered · Phase twoNot covered · Not us
One integration you cannot live withoutAccounting, telephony or mailbox. One, chosen in week one; the rest are phase two on purpose.Covered · First ten weeksNot covered · Phase twoNot covered · Not us
Reports beyond the ones you asked forThe reports people actually need become obvious after a month of real use, and building them earlier means building the wrong ones.Not covered · First ten weeksCovered · Phase twoNot covered · Not us
Mobile app for the field teamOften unnecessary: a responsive interface covers a phone well enough to learn whether an app is worth it.Not covered · First ten weeksCovered · Phase twoNot covered · Not us
Marketing automation and lead scoringMature products do this well and cheaply. Integrating one beats building a worse version of it.Not covered · First ten weeksNot covered · Phase twoCovered · Not us
includednot in this stage

The split comes out of the first week, with you in the room. The order does not move: the unusual part first, the ordinary parts around it.

The honest test for whether to build at all

Remove the CRM entirely and ask what changes about your position against competitors. If the answer is "we would be slower and messier, like everyone would be", buy the box — Salesforce, HubSpot, amoCRM, whichever fits your market — and spend the difference on people. If the answer is "we could no longer sell the way we sell", the box is charging you rent on a compromise. That question separates the two cases better than any feature comparison, and it takes a minute rather than a procurement cycle.

What a custom system costs, and the test for buying instead

Custom fields are a warning light, not a solution

Every boxed CRM lets you add fields, and that flexibility is what keeps companies inside them long past the point of comfort. The trouble is that a field is only storage: it holds a value but knows nothing about it. The rules — this discount applies only above that volume, this stage cannot be skipped unless a director approves, this deal must not close while an invoice is unpaid — live in people’s heads and in a document nobody reads. Counting the custom fields is a decent proxy for how far you have drifted: ten is normal, forty means the real system is your team’s memory.

The import is half the project and nobody plans for it

Ten years of deals in a spreadsheet, three spellings of the same company name, contacts belonging to people who left, a column called "notes" holding four different kinds of fact. Moving that is not copying, it is reconciliation, and it is the part of a CRM project that overruns. We plan it as its own workstream with your involvement, because deciding which of three duplicate records is the true one is a business decision and not a technical one. The alternative is a clean new system that people do not trust, which is the same as no system.

How we design data that survives the second year

Per-seat pricing decides who gets to see the truth

The hidden cost of a boxed CRM is not the monthly invoice, it is the decision it forces: who is worth a licence. The warehouse supervisor, the installer, the part-time bookkeeper — each is a small charge with no obvious return, so they get left out, and the data about what actually happened to an order never reaches the system. Owning the software removes that particular argument entirely. It does not make the software free; it makes access free, which changes who is willing to keep it accurate.

What a CRM has to be to survive contact with a salesperson

Sales teams abandon systems that cost them time, and no amount of policy fixes that. The test we use is the twentieth record of the day: how many clicks, how much typing, how much waiting. A screen that is pleasant once is not the same as a screen that is bearable twenty times. This is why we build the entry paths before the reports — the reports are for management, the entry is for the people whose cooperation the whole thing depends on.

And what we do not do

  • We do not set up or migrate boxed CRMs — that is a different trade and there are people who do only it
  • We do not rebuild a boxed product feature for feature: if that is the brief, the honest answer is to stay where you are
  • We do not promise a CRM improves your sales. It removes friction and tells the truth; selling stays yours
  • We will not ship an import without a reconciliation you have checked yourself
How it runs

Ten weeks, and something usable at the end of each

The unusual part first, while there is still time to be wrong about it. The ordinary parts — contacts, companies, lists — are known quantities and never surprise anybody.

  1. Week 1

    Your pipeline on a whiteboard

    Stages, transitions, who may move what, and the pricing rules written as arithmetic instead of a sentence. We also pick the one integration that goes in first and the shape of the import.

    You seeA diagram of your sales process that your sales lead agrees with.

  2. Weeks 2–3

    Deals, contacts and roles

    The core objects and the permissions around them, deployed to a real address at the end of week three. From here you are looking at software rather than slides.

    You seeYou can create a deal, move it through your stages and see what a colleague may not.

  3. Weeks 4–5

    The part the box could not do

    Pricing, quoting, approvals — whatever made you leave. Built and tested against the cases you brought, including the awkward ones you usually settle by phone.

    You seeA quote produced by the system matches one your best salesperson would have made by hand.

  4. Weeks 6–7

    Import and reconciliation

    Your history moves in. Duplicates surfaced rather than merged silently, gaps listed rather than filled with guesses, and a report you check line by line.

    You seeYour own data in the new system, with a reconciliation you have signed off.

  5. Week 8

    The integration

    Accounting, telephony or mail — the one chosen in week one, wired so nobody has to retype anything between two systems.

    You seeSomething that used to be copied by hand now arrives on its own.

  6. Weeks 9–10

    Real use, then handover

    Your team works in it for a week while we watch and fix. Then the pipeline, the runbook and the accounts move across, and one of your developers deploys it once, with us watching instead.

    You seeEverything in your accounts, your team inside the system, tests green on every push.

Runs with what you already use
  • QuickBooks
  • Xero
  • Twilio
  • Asterisk
  • Google Workspace
  • PostgreSQL
  • GitHub Actions
What you keep

Three things that outlive the project

The same artefacts we hand over on every system of this size. Screenshots are from our own work rather than a template.

The Deposit model from schema.prisma: a decimal amount, a deadline, a status enum

A data model you can read

Every entity, every relationship, and the constraints that stop two records disagreeing. A CRM is a database with opinions, and the opinions should be written down where the next developer finds them.

prisma/schema.prisma in the marketplace we run

Terminal output: 24 suites passed, 173 tests passed, 2 skipped

A suite that catches what a report would hide

Pricing rules, permissions and stage transitions are exactly the things that break silently — a discount applied twice looks like a good quarter until someone checks. Tests over those paths run on every push.

jest over test/*.e2e-spec.ts in the marketplace we run, 21 August 2026

The workflow file of this site: what runs on every push to main

A pipeline that makes a release ordinary

Push, tests, deploy, and a rollback that has been used at least once — in front of you, during handover. A CRM that only one person can update becomes the next thing you want to replace.

.github/workflows/ci.yml in this site’s own repository

Be honest with yourself

Most companies should buy a CRM. This is for the rest

Build this if

  • You are already inside a boxed CRM and spend measurable time working around it
  • Your pricing or approval rules cannot be expressed in its settings, and everyone knows it
  • People keep a private spreadsheet beside the CRM and it is more accurate than the CRM
  • Per-seat pricing is deciding who gets access, and that decision is costing you data
  • Someone on your side can answer process questions for a couple of hours a week
  • The way you sell is genuinely part of why customers choose you

Do not build this if

  • You have never used a CRM. Start with a boxed one — you will learn what you actually need, and it will cost a fraction
  • The brief is "like HubSpot but ours". That is a rebuild of someone else’s decade of work
  • What you need is setup and migration of an existing product — a different trade, and specialists do it better
  • Nobody can describe your sales process without arguing about it. Settle that first; software will not
  • The main complaint is the monthly bill. Custom software is not cheaper, it is different

If that reads like a no, say so on the call and we will name the boxed product we would pick in your position. We have talked two companies out of this in the last year, and both are still customers of ours for other work.

Questions we get about building a CRM

Short answers. The long ones happen on the call.

A first version your team works in daily starts at $20,000 for ten weeks, fixed against a scope agreed before we start. It costs more than a plain internal tool because a CRM always brings two things with it: history to import and a system to integrate with. Neither is quick, and a quote that leaves them out is not cheaper — it is incomplete.

Usually you should, and we say so often enough that it costs us projects. Boxed CRMs are cheaper than anything custom until the way you sell stops matching their model of selling. The test is simple: remove the CRM and ask whether your position against competitors changes. If it would not, buy the box.

No, and we would rather point you elsewhere than take the work. Configuring Salesforce or Bitrix24 is a trade of its own with its own specialists, and we would be slower and worse at it. We build systems for cases where configuration has already run out of room.

It moves, and the moving is planned as its own workstream rather than a final step. Duplicates get surfaced instead of merged silently, gaps get listed instead of guessed, and you receive a reconciliation to check line by line. Deciding which of three versions of a company is the real one is a business decision, and we will not make it quietly on your behalf.

That depends on how it feels on the twentieth record of the day, which is why we build the entry paths before the reports. Systems get abandoned when they cost the person entering data more than they give back, and no policy fixes that. We also put your team inside it for a full week before handover, precisely so the complaints arrive while we are still there.

One in the first version, chosen in week one — accounting, telephony or mail. That is not a limitation of the technology, it is a limitation of attention: each integration is a small project with someone else’s schedule and documentation attached. The rest are phase two, quoted separately, once the system is in real use and the priority is obvious.

No. The system is yours, and adding a warehouse supervisor or a part-time bookkeeper costs nothing. That is often the quiet reason companies build: not the licence fee itself, but the fact that per-seat pricing was deciding who gets to see the truth.

You do, from the first commit. The repository is in your organisation, the infrastructure in your accounts. Handover is a rehearsal in week nine rather than a folder sent in week ten — the honest test of ownership is whether you could carry on without us, and that is easier to check than to promise.

Selected work

Systems of this shape that we run

Neither of these is a CRM, and that is the point: both are systems where roles, money and rules had to fit a business rather than the other way round.

What a build like this costs, and what happens after handover

All articles
Web development

Why two studios quote the same project three times apart

You send one brief and get back three very different numbers. The spread is not greed — it is four different readings of the same sentences, and closing it is your job as much as theirs.

2 min read

Talk to us about CRM development

Tell us what you are building

A person reads it and answers within one business day — with a range and the assumptions under it.