Skip to content

Writing

Notes from actually shipping this stuff.

No thought leadership. Cost breakdowns with the arithmetic shown, failure modes we've hit, and the occasional argument against hiring us.

7 min read

Fixed price vs time and materials: who carries the risk, and what it costs you

A fixed price is an estimate plus an insurance premium. Time and materials is the estimate with no insurance. Which one is cheaper depends on how wrong the estimate turns out to be, and who is better placed to know.

6 min read

Next.js or WordPress for a business website? A Next.js studio's honest answer

We build on Next.js, and for a fair number of businesses WordPress is still the better choice. Here is how to tell which one you are, with the security and speed numbers sourced.

5 min read

Should your MVP be a web app or a mobile app?

Most MVPs should launch on the web, and a few genuinely can't. The difference comes down to how users find you and what the core loop needs from the phone — here's the test, with the store costs sourced.

7 min read

The software handover checklist: what you should own before your developer leaves

Most lock-in isn't malicious. It's a domain on a freelancer's personal account and an app published under the agency's name. Here is everything you should hold, in the order to check it.

4 min read

Fixing anchor links under GSAP ScrollSmoother in Next.js

ScrollSmoother translates your page instead of scrolling it, so the browser's own jump to #services lands in the wrong place. One delegated handler fixes it without touching a single link.

4 min read

How to lazy-load GSAP in Next.js, and keep it out of first paint

A top-level `import gsap` puts the whole animation stack in the bundle your page waits on. Importing it inside the effect that needs it moves it after first paint, and only costs you a few lines.

6 min read

JEV explained, and when a classifier beats an LLM call

A new model class is getting a lot of attention for doing less: no text, just a typed answer and a confidence number. The interesting part is not the model, it is the decision it exposes in most AI features.

4 min read

What a software maintenance retainer actually costs

Most agencies won't put a number on a retainer. Here are ours, the industry ranges we checked them against, and the arithmetic for deciding when hiring someone is cheaper.

4 min read

In-house AI team vs agency: the arithmetic, including when we lose

Real salary numbers, real agency numbers, and the crossover point where hiring wins. Written by an agency, which should tell you how the last section goes.

4 min read

Adding RAG to a SaaS product that already has customers

Every RAG tutorial starts with an empty folder. Here's the version for a product that already has tenants, permissions and a database you can't casually restructure.

4 min read

Why your AI proof of concept never shipped

The demo worked. Four months later it's still a demo. Here are the six things that actually block the gap, in the order they usually bite.

5 min read

Five patterns for putting an LLM into software that already exists

A decision framework rather than a tutorial: which of five integration shapes fits your problem, what each costs, and the failure modes that show up in month three.

4 min read

Can you combine RAG and fine-tuning? Yes, and usually you shouldn't yet

The comparison is usually framed as a choice. It isn't — they solve different problems. Here's which problem you actually have, and what combining them costs.

4 min read

The evals we build before shipping an LLM feature

Not a survey of eval tooling. The actual suite we build on client projects, why it's small, and which scoring methods we don't trust.

4 min read

What an AI feature costs, with the arithmetic shown

Two numbers matter and most quotes only cover one. Here's the build cost, the running cost, and the arithmetic for working out yours.

Prefer a reader? Subscribe to the RSS feed.

Next step

Rather talk than read?

Everything here is what we'd tell you on a call anyway. If your situation isn't covered, ask.

Start a projectSee pricing