Skip to main content

Why custom code beats templates — even when you think it doesn't

Templates look fast at the demo and slow at scale. Here's the honest, engineer-led breakdown of when custom Next.js is worth it, and when a template is genuinely fine.

4 min readBy IGN Solutions
  • nextjs
  • performance
  • seo

Every week, someone asks us whether they should just use a template. It's a fair question — templates are cheap, fast to stand up, and the homepage looks polished in an afternoon. So here's the honest answer, with none of the "not your average agency" marketing spin we see everywhere else.

The three things templates do well

Before we argue against them, let's give templates credit. They are genuinely good at:

  • Validating an idea fast. If you don't know whether your product will get users, spending six weeks on a custom marketing site is premature optimization.
  • Content-only sites with no conversion goal. A personal blog, a conference landing page, a one-off event microsite.
  • Teams with zero engineering budget. If there's nobody to maintain custom code, a well-supported template beats a custom site that rots within a year.

If you're in one of those three buckets, close this tab. Buy the template. Spend the savings on something that actually moves the needle for you.

The three things templates silently cost you

Everywhere else, templates are a trap that gets more expensive the longer you wait to replace them.

1. They tank your Core Web Vitals

Most templates ship with every feature turned on by default — carousels, animations, above-the-fold JavaScript, fonts from three different CDNs. That's great for the demo page, which is why templates look fast when you buy them.

On your actual site, with your actual content, the story is different:

  • LCP typically lands between 3 and 5 seconds on a mid-range Android — Google's threshold for "good" is 2.5 seconds.
  • INP regularly breaches 200ms because the template's hydration is doing more than it needs to.
  • CLS drifts as ad slots, embeds, and user-generated content layouts stretch during load.

You can fix this. But fixing it means tearing out the features you paid for, which puts you in a worse position than starting custom in the first place.

2. They lock you into the vendor's world

When you hit the feature the template doesn't have — a custom pricing calculator, a gated resource library, a client dashboard — you'll discover:

  • The data model is not yours. Exporting it takes weeks.
  • The plugin ecosystem is the only extension point, and the plugin you need either doesn't exist or costs $300/year.
  • The template's theme is built on top of a framework that was current three years ago.

Custom code gives you one primitive (a function that takes data and returns HTML) and lets you build everything from there. Templates give you one hundred primitives and forbid the hundred and first.

3. They rank poorly on Google

This is the part nobody talks about, and it's the one that costs the most money over time.

Templates:

  • Ship bloated, generic HTML that dilutes topical signals.
  • Render critical content in client-side JavaScript that Googlebot doesn't always execute.
  • Share the same schema, the same meta tags, and the same structure as every other site built from that template. Google rewards uniqueness.

Custom sites let us write server-rendered HTML with structured data that matches the rendered DOM exactly. That's table stakes for ranking in 2026, and it's table stakes for getting cited by ChatGPT Search, Claude, Perplexity, and Google AI Overviews — the next wave of traffic sources nobody is ranking for yet.

What "custom" actually means here

When we say "custom", we don't mean bespoke-for-the-sake-of-bespoke. We mean:

  1. Server-rendered Next.js with React and TypeScript.
  2. Tailwind for styling, because CSS framework churn is real and we pick the one that will still be supported in five years.
  3. Deployed on AWS via SST — the same infrastructure running TikTok, Notion, and Hulu at scale.
  4. Performance budgets enforced in CI. If a PR regresses LCP by more than 10%, it doesn't merge.
  5. Structured data generated from the same source as the visible content. Schema and DOM can never drift.

It's boring, battle-tested, and maintainable. That's the whole point.

So when should you call us?

If any of these are true:

  • Your site is a meaningful revenue driver and it loads slower than 2 seconds on mobile.
  • You've hit the "the template can't do this" wall.
  • You're about to pay a template vendor for the fourth year of a license that costs more than a custom build.
  • You want to show up in AI-engine answers and you know the template can't.

Get in touch. We'll tell you honestly whether a rebuild makes sense, and if it does, we'll ship it in weeks rather than quarters.

Stop reading.
Start building.

If this post nudged something loose, let's talk. Tell us what you're trying to ship and we'll tell you how we'd approach it.