Most websites for small businesses in this city are built on the same five or six platforms. You can usually tell which one in about ninety seconds. There’s the stock photo with a dark gradient over it, the rounded buttons that all look the same, the Powered by line tucked into the footer.
Nothing wrong with any of that. A template website is faster than no website, and faster than a website that took eight months and a fight. For a lot of businesses it’s the right call.
It isn’t what we do.
We write the code ourselves, page by page, component by component. The site we ship for your business has never existed before, and won’t exist again. Put it next to the site we built last month for a different client and you wouldn’t guess they came from the same shop.
What changed.
Two years ago, building a custom site from scratch took weeks of typing. Most of those weeks went into work that didn’t matter much: wiring up a contact form, getting the tablet breakpoints right, copying the same navigation pattern you’ve already built fifty times before. The interesting part of the job (the design decisions, the copy, the way the site argues for the business) was a small slice of the total time. The rest was plumbing.
The plumbing has gotten faster. A lot faster. What used to take six weeks now takes two, and what used to require a team of three can be done by one person who knows the stack and has the right tools open.
We’ve structured the shop around that fact. Every project runs on the same foundation — Next.js, Tailwind, Vercel — and inside the same locked design system, so we’re not relitigating typography on every build. The constraint is what makes the speed possible.
Why this matters for the business that hires us.
A roofer in Stone Oak doesn’t care that we wrote the navigation in TypeScript. What they care about is that the site loads in under a second on a four-year-old Android, ranks for the right neighborhoods, and won’t break the next time Google changes its algorithm. Custom code, written carefully, is how you get all three. Templates can usually nail the first one and rarely survive the third.
But that same roofer doesn’t have three months to wait, either. They have a season. The traditional answer (pick the template, get something live this weekend) solves the timing problem and creates a worse one: six months later they’re stuck on a platform they can’t extend without paying its monthly tax.
What we’re trying to make routine is the version where you get the custom site and you get it in two or three weeks. Not because we cut corners. Because the corners that used to take a week each don’t take a week anymore.
What we don’t do.
We don’t drag blocks around in a builder and call the result custom. We don’t start from a theme and reskin it. We don’t ship a site whose source code, if you opened it, would look identical to fifty other clients’ with the names swapped out.
If we did, we’d be cheaper. We’d also be one of fifty shops in San Antonio doing the same thing, and the only thing left to compete on would be price. That’s a race we have no interest in running.
The site we ship for you is yours. You own the domain and the code, the way every agency claims. And nobody else has it, the way most agencies don’t.
— Jon
Keep reading.
Jon Michael · April 25, 2026
About this journal.
Why we're writing essays instead of blog posts, and what to expect here.