
Architecture before code
Two weeks on paper saves two months in Git. Every engagement starts with the data model, the failure cases and the boring questions about who owns what.
Most software quotes are a guess with a logo on the front. We spend two weeks working out what you are actually asking for, put a fixed price on it, then build the thing. Web platforms, portals, and the unglamorous plumbing underneath them.

Two weeks on paper saves two months in Git. Every engagement starts with the data model, the failure cases and the boring questions about who owns what.

Queues, retries, backups, the migration that has to run at 3am without waking anyone. If it is not instrumented it is not finished, and we will not call it finished.

Response times, error rates, what your infrastructure costs this month. You get the same dashboard we look at, on day one, not when something breaks.

There is no account layer here and no handover to a delivery team you have never met. You email the person writing the code, and they answer.
Once to an agency that shipped a beautiful demo, and again to the contractors who had to make it survive a Monday morning. That second invoice is the one we are trying to delete.
Puck App Ltd is two engineers in Highbury, N5. Between us we spent eleven years inside other people’s product teams — fintech, logistics, a membership platform that grew faster than anyone had planned for. We saw the same thing happen every time. The pitch was sold by people who would never open the repository, and the estimate was a number someone needed to hear.
So we work the other way round. Nothing is priced until it is understood. The discovery sprint ends with a written architecture, a fixed build price and a repository that belongs to you from the first commit — whether or not you carry on with us.
Prices exclude VAT and are a starting point, not a quote. The discovery sprint is what turns them into a fixed figure — and if the numbers do not work after it, you owe nothing beyond the sprint.
We use essential cookies to make this site work. Analytics cookies only run if you say yes, and nothing is loaded before you choose.