<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: BadeHunt</title>
    <description>The latest articles on DEV Community by BadeHunt (@rottenbadehunt).</description>
    <link>https://dev.to/rottenbadehunt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3975868%2F8bd9c620-0750-4150-9ef0-5601758c9340.png</url>
      <title>DEV Community: BadeHunt</title>
      <link>https://dev.to/rottenbadehunt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rottenbadehunt"/>
    <language>en</language>
    <item>
      <title>I built a Next.js 16 agency template — here's what actually mattered published: false tags: nextjs, react, webdev, tailwindcss</title>
      <dc:creator>BadeHunt</dc:creator>
      <pubDate>Tue, 09 Jun 2026 11:36:00 +0000</pubDate>
      <link>https://dev.to/rottenbadehunt/i-built-a-nextjs-16-agency-template-heres-what-actually-mattered-published-false-tags-nextjs-dmp</link>
      <guid>https://dev.to/rottenbadehunt/i-built-a-nextjs-16-agency-template-heres-what-actually-mattered-published-false-tags-nextjs-dmp</guid>
      <description>&lt;p&gt;I spent the last few weeks building an agency website template on Next.js 16, and the most useful lesson had nothing to do with code. Sharing it here in case it saves someone else the detour.&lt;br&gt;
Live demo: &lt;a href="https://bhagency-demo.pages.dev" rel="noopener noreferrer"&gt;https://bhagency-demo.pages.dev&lt;/a&gt;&lt;br&gt;
The stack&lt;/p&gt;

&lt;p&gt;Next.js 16 (App Router)&lt;br&gt;
React 19&lt;br&gt;
TypeScript&lt;br&gt;
Tailwind CSS v4&lt;br&gt;
Framer Motion for animation&lt;br&gt;
next-themes for dark/light mode&lt;/p&gt;

&lt;p&gt;Static export, deployable to any static host. No backend, no database — it's a frontend template meant to be customized and shipped fast.&lt;br&gt;
What I got wrong first&lt;br&gt;
My first version was technically fine and completely forgettable. Clean code, responsive, all the pages — and it looked like every other template. That was the real problem, and it took me too long to admit it.&lt;br&gt;
The fix wasn't more features. It was design identity: one distinctive display font (Bricolage Grotesque), a single confident accent color instead of safe grays, and real spacing decisions. The code barely changed. The perceived value jumped.&lt;br&gt;
Lesson: for a template, looking generic is the same as being useless. Buyers are paying to skip the design work, so the design has to feel intentional.&lt;br&gt;
The decision I'd repeat&lt;br&gt;
I moved all editable content — headlines, services, case studies, nav — into typed config files instead of burying it inside components. A buyer changes values in one place; they never touch JSX to update copy.&lt;br&gt;
// app/config/site.ts&lt;br&gt;
export const siteConfig = {&lt;br&gt;
  name: "Your Agency",&lt;br&gt;
  tagline: "We build brands that move",&lt;br&gt;
  // ...&lt;br&gt;
}&lt;br&gt;
It's a small structural choice that makes the whole thing feel like a product instead of a code dump. If you build templates, separate content from components early.&lt;br&gt;
On SEO and routing&lt;br&gt;
Dynamic routes for services, case studies, and blog posts use generateStaticParams + generateMetadata, so every page gets proper per-page metadata at build time. Sitemap and robots are wired in. For a marketing site, this is the part buyers forget to check and then regret.&lt;br&gt;
What's next&lt;br&gt;
It's live as a paid template if it's useful to you — link's on the demo site and my profile — but mostly I wanted to share the build lessons. Happy to answer anything about the static-export setup or the Tailwind v4 migration in the comments.&lt;br&gt;
What's the one structural decision you wish you'd made earlier on a template or starter project?&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>typescript</category>
      <category>nextjs</category>
    </item>
  </channel>
</rss>
