Skip to main content

What we build, and how projects are sized

We do not publish prices, and here is the honest reason: a number attached to a project nobody has understood yet tells you very little, and commits us to something we have not seen. What we do instead is tell you exactly how work is sized, what is in each size, and what is included in every project whatever its size.

Then we give you a real number quickly. Describe the project and you get the size it falls into on the first call, and a written scope with a price and a date shortly after. Every number comes in writing before any money moves, and the number you agree is the number you pay.

Project sizes

Small

About 1 to 2 weeks

A marketing site, a small internal tool, or a single-feature application.

What it includes: one kind of user, one process working end to end, the screens that go with it, and either no outside integration or one simple one.

Right when the job is well defined and there is one main thing the software has to do. A booking form that actually books. A site with a contact form that lands somewhere useful. An internal tool that replaces one stubborn spreadsheet.

Medium

About 3 to 5 weeks

A multi-role application with logins, a dashboard, and one or two integrations.

What it includes: more than one type of user with different permissions, a dashboard over the data, the forms and reporting around it, and one or two connections to outside services such as payments or a calendar.

Right when different people need to see different things — staff one view, customers another, you a view over the whole lot. This is most of our work.

Large

About 6 weeks and up

Bigger systems: several user types, multiple connected processes, data moving out of an existing system, or integrations that have to be reliable rather than merely present.

What it includes: everything in Medium, at more depth, plus the migration and integration work the project needs.

Always preceded by a paid discovery sprint. We do not quote a project this size from a conversation, and you should be wary of anyone who does.

If your project sits between two of these, it sits between two of these. We will tell you which way it leans and why, rather than rounding it up quietly.

The discovery sprint

About 1 to 2 weeks, paid, and it produces a fixed quote

Sometimes the honest answer to “what will it cost?” is “not enough is known yet”. When that happens we sell a discovery sprint instead of a guess.

What you get:

  • Written requirements. Every feature, every type of user, every rule, in language you can check — not a technical specification.
  • An architecture outline. How it is put together, what it connects to, where the risks are.
  • A fixed quote. A real number for the build, with a date, that we stand behind.

What it costs you if you walk away: the sprint fee, and you keep everything — the requirements and the architecture are yours, and you can take them to any developer.

What it costs you if you go ahead: the sprint fee is credited against whatever project you then sign.

We will tell you when you need one. It is the right call when the project is large or still vague, when data has to come out of an old system, when it has to talk to more than three other systems, or to one nobody has documented properly.

How you pay

Payment schedule
WhenAmount
At signature40%
At the mid-project milestone40%
At acceptance20%

Work starts when the deposit is received. That is not us being difficult; it is what keeps a schedule real for everyone already on it.

Hosting costs — the database and the servers your application runs on — are quoted separately from the build, and we tell you what they cost before you sign.

Keeping it running

Launch day is the start. Things need security updates, dependencies drift, and you will want changes once real people are using it. A retainer covers that at a known monthly cost, agreed in writing before it starts.

Basic

Hosting management, uptime and error monitoring, monthly dependency and security updates, and a small monthly allowance of changes.

Standard

Everything in Basic, with a larger monthly allowance of changes and a monthly report on what happened.

Plus

Everything in Standard, with the largest change allowance and priority response when something needs attention.

The tiers differ in how many hours of changes are included each month and how quickly we respond. We recommend one based on how much the application is likely to change in its first year, and you can move between them.

No retainer is compulsory. If you would rather run it yourself, the code and the documentation are yours on acceptance where that is in the contract, and we will hand it over properly rather than leaving you to work it out.

What we say yes to

We take on most things. What we will not do is price something nobody understands yet, or take a job we are not the right people for.

Yes — we can quote this from a conversation

Web applications with logins, data, dashboards, forms and reporting. Marketing sites. Connecting to services with proper documentation, such as a payment provider, a calendar, or an email platform. This shape of work is what the whole company is set up around, so you get a written scope and a price without a paid discovery first.

Yes — after a short paid discovery

Projects that are large or still taking shape. Moving data out of a system that is old, undocumented, or still in daily use. Anything built on tools outside the stack below. Anything that has to talk to more than three other systems. In every one of those cases the unknowns are big enough that a quote would be fiction. The sprint turns them into a number.

No — and we will tell you who to call

Some work is a bad fit, and taking it anyway would cost you more than a straight answer. We refer out on:

  • Apps that have to be in the Apple or Google app store. We build for the browser.
  • Systems that store medical records or card numbers directly. That carries compliance obligations we are not set up to meet. We will happily build you something that hands payments off to a provider who is.
  • A fixed price on a scope nobody has defined. Ask for a discovery sprint instead — from us, or from whoever you hire.

On-site work — cabling, hardware, desk-side support, or training your team on an application we delivered — is not on that list. We consider it case by case.

What is always included

Every project, regardless of size, ships with the same foundations. They are not line items you can decline, because a project without them is one we would have to fix later.

  • Row-level security on every database table. One user cannot read another user’s data, enforced by the database itself rather than by careful application code.
  • Automated tests that run on every change. Both unit tests and real browser tests, run before any change merges.
  • Error tracking and uptime monitoring from day one. We find out about the 2am failure before you do.
  • A secret scan on every change. Passwords and API keys do not get committed into your code.
  • A staging site. You see and click the real thing while it is being built, not screenshots.
  • Written documentation. How it is built, what was decided and why, and how to run it.

One stack on every project: Next.js and TypeScript, Supabase for the database, logins and file storage, Fly.io for hosting, and GitHub for the code. It means nothing is experimental on your job, and anyone who follows us can read it.

Questions

Will I be dealing with a chatbot?

No. Every discovery call, requirements conversation, training session and support request goes to a person — there’s no chatbot on this site, and there won’t be one. Behind that is an AI engineering team: every change they build is independently reviewed, tested in a real browser and documented before it reaches you. That’s how this site itself was built.

Not sure which size you are?

That is normal, and it is the first thing a call sorts out. Tell us what you are trying to build and we will tell you which of these it is — including if the answer is “smaller than you think” — with a written scope, a price and a date to follow.