Skip to main content
How we build

Four opinions we don't apologize for.

We have a clear point of view about how to build software that survives contact with reality. None of these are controversial inside our team. Some of them are controversial outside it. That's fine.

01

We ship the smallest stack that survives production.

Most teams introduce Kubernetes, microservices, and an event bus before they have product-market fit. Then they spend the next two years operating infrastructure they don't need. We pick PostgreSQL, a single deployable, and n8n until it actually breaks — and only then change one thing at a time.

The hidden cost of "future-proof" architecture is that it eats engineering capacity you'd otherwise spend shipping features. A well-instrumented monolith on a managed Postgres handles more load than most companies will ever see. We default to that. We add complexity only after we've watched something specific fail under measured production traffic.

This isn't a religious commitment to simplicity. It's a calibration: the cost of removing complexity later is high; the cost of adding it later is low. So we add it later.

02

Schemas are non-negotiable, especially with LLMs.

An LLM that returns free-form text is a bug surface. You can't unit test it. You can't reason about it. You can't safely build downstream features on top of it. Every "interesting LLM feature" we've seen ship into production and then quietly disappear had this shape.

Our default is the opposite. Pydantic schemas are the contract. Every LLM call validates its output against a schema before anything downstream runs. Invalid outputs get a single retry with a fix-it prompt; if they're still invalid, they go to a human review queue. They never silently coerce.

If an AI feature can't be unit-tested, it isn't a feature yet. It's a research project. We treat the boundary between those two states with discipline.

03

We don't build admin panels. We use n8n.

Internal CRUD tools are where engineering time goes to die. Every internal admin panel starts as "a quick form" and ends as a Frankenstein of half-implemented permissions, stale dropdowns, and the one person who knows how to deploy it.

n8n gives us forms, scheduled runs, retries, integrations, and an audit log for free. Better still, the ops team can *read* the n8n flow — they can see exactly what happens to their data. That transparency is worth more than any admin panel UX.

We do build admin panels eventually — when the workflow has stabilized, the ops team has outgrown n8n's form ergonomics, and the requirements are stable enough to justify the engineering cost. Almost always, that point is much later than people assume.

04

No retainers without a scoped win first.

Every relationship we have starts with a scoped, shipped deliverable — usually one to two weeks of work, at a fixed price agreed before we start. We don't pitch six-month engagements to people who haven't seen us ship anything yet, and we don't sign clients who aren't comfortable evaluating us on output rather than slides.

Before that there's a paid scoping sprint: three to five days in which we write the requirements, design the schema, and build a thin slice of the real system against your data. It starts at $1,500 and it comes off the build in full if you proceed. We charge for it because free scoping gets done badly — quickly, by someone junior, to win the work.

If we can't show value in two weeks, a twelve-month retainer won't fix it. After that initial deliverable, monthly support for hosting, monitoring, and incremental additions is a yes.

This is partly self-protection: the work we want is the work we'd want to maintain, and you can only assess that by doing the first piece. It's also a filter on which clients we're a good fit for. The clients who say "prove yourself first" tend to be the clients we do our best work with.

Pricing

What this costs.

Four numbers instead of a discovery process. You'd have to ask eventually, and a conversation that starts with a price is a shorter conversation.

01

Fit call

Free

30 minutes

Thirty minutes with the engineer who would do the work. We tell you whether this is a thing worth building, a thing you should buy off the shelf, or a thing nobody should build.

  • A straight answer on whether we're the right team
  • The rough shape of the system, if there is one
  • No deck, no written report, no follow-up sequence
02

Scoping sprint

From $1,500

3–5 days · credited against the build

We stop guessing and go read the actual system. At the end you own a plan detailed enough to hand to another team, and a fixed price for building it.

  • A requirements document written for engineers, not for signature
  • The schema and architecture, drawn and argued for
  • A working thin slice — real code, running, against your data
  • A fixed-price quote for the build, with what's excluded named
03

Fixed-price build

Typically $6,000–$15,000

1–2 weeks · the scoped win

One deliverable, shipped into your production environment, at the price we quoted at the end of the sprint. If we estimated badly, that's our problem. The price is the price.

  • Quoted from the sprint's findings, not guessed at on a call
  • Shipped to production, not to a demo branch
  • Deployed, instrumented, and handed over with the runbook
  • Larger systems run past this range — we say so in the quote, not in week three
04

Monthly retainer

From $2,500 / month

Month to month

Hosting, monitoring, incident response, and incremental additions. It starts after something has shipped. Never before.

  • Infrastructure we run and stay on the hook for
  • One or two new workflows or features a month, typically
  • Month to month — no notice period past the month you're in
  • No retainer without a scoped win first. That one isn't negotiable

The sprint fee comes off the build.

The sprint fee comes off the build invoice in full if you proceed. If you don't, you keep the document, the schema, and the code. We got paid for the week, you own the output, and neither side is owed anything. That's the whole arrangement.

Why the scoping isn't free: free scoping still gets paid for. It gets paid for by padding the build, or by someone junior writing a document in a hurry to win the work, or by us saying yes to projects we should have said no to. Charging for the week means we spend it reading your code instead of writing a proposal — and it means the number at the end is one we'll stand behind. If the sprint concludes you shouldn't build this, you spent $1,500 instead of six figures. We consider that the sprint working.

What actually moves a number: how many systems have to be integrated, whether the data is clean, how much compliance surface it touches, and how many people have to approve a decision. Not headcount. Not how urgent it is.

Prices are in USD and exclude tax (GST where applicable). We invoice in USD or INR — the USD figure is the figure.

Start with the call. It costs nothing and it's the fastest way to find out we're wrong about your problem.

Pick a slot. No form, and no qualification call before the call.

Book the 30-minute call

If these resonate, we'll probably get along.

Tell us what you're trying to ship.