<?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: Adrian Sudbury</title>
    <description>The latest articles on DEV Community by Adrian Sudbury (@asudbury).</description>
    <link>https://dev.to/asudbury</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%2F1374244%2F1738187c-71a4-4a8a-b844-46e058eab3d7.png</url>
      <title>DEV Community: Adrian Sudbury</title>
      <link>https://dev.to/asudbury</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/asudbury"/>
    <language>en</language>
    <item>
      <title>Modern React template for 2026</title>
      <dc:creator>Adrian Sudbury</dc:creator>
      <pubDate>Thu, 01 Jan 2026 13:34:14 +0000</pubDate>
      <link>https://dev.to/asudbury/modern-react-template-for-2026-4clc</link>
      <guid>https://dev.to/asudbury/modern-react-template-for-2026-4clc</guid>
      <description>&lt;h2&gt;
  
  
  TypeScript, Vite, Accessibility, and Quality - Done Properly
&lt;/h2&gt;

&lt;p&gt;Starting a new React project still means answering the same questions every time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vite or something else? How strict should TypeScript be?&lt;/li&gt;
&lt;li&gt;Which router?&lt;/li&gt;
&lt;li&gt;How do we enforce quality without slowing everyone down?&lt;/li&gt;
&lt;li&gt;When do we "get around" to accessibility?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 After repeating this process often, I built 'Modern React Template'&lt;/p&gt;

&lt;p&gt;👉 Repository: &lt;a href="https://github.com/asudbury/modern-react-template" rel="noopener noreferrer"&gt;Modern React Template&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Template Is
&lt;/h2&gt;

&lt;p&gt;Modern React Template is an opinionated starting point built on a modern, proven stack:&lt;/p&gt;

&lt;p&gt;✅ React 19&lt;br&gt;
✅ Vite&lt;br&gt;
✅ TypeScript (strict)&lt;br&gt;
✅ TanStack Router for type-safe routing&lt;br&gt;
✅ TanStack Query for server state&lt;br&gt;
✅ Vitest + Playwright for testing&lt;/p&gt;

&lt;p&gt;It's not a framework and it's not a demo. It's a solid baseline you can confidently use for real applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;Most React templates fall into one of two extremes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Too minimal&lt;/strong&gt; - you spend days adding linting, testing, routing, and quality tooling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Too heavy&lt;/strong&gt; - you spend days ripping things out before you can even start.&lt;/p&gt;

&lt;p&gt;This template aims for the middle ground:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modern defaults&lt;/li&gt;
&lt;li&gt;Strong opinions where they matter&lt;/li&gt;
&lt;li&gt;No unnecessary abstractions&lt;/li&gt;
&lt;li&gt;Easy to customise or scale back&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚡ Everything included is there because it solves a problem most projects eventually hit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Included Out of the Box
&lt;/h2&gt;

&lt;p&gt;This template includes the things many teams add later - already wired together:&lt;/p&gt;

&lt;p&gt;✅ Type-safe routing and navigation&lt;br&gt;
✅ Global error boundary with a custom fallback&lt;br&gt;
✅ 404 handling&lt;br&gt;
✅ Strict ESLint + Prettier setup&lt;br&gt;
✅ Conventional commits via Commitlint + Husky&lt;br&gt;
✅ Unused file and dependency detection with Knip&lt;br&gt;
✅ Unit and end-to-end testing&lt;br&gt;
✅ Optional CI integrations ( CodeQL scanning, SonarCloud, TypeDoc)&lt;/p&gt;

&lt;p&gt;🎯 Getting started is deliberately simple: No magic. No ceremony.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessibility as a First-Class Concern
&lt;/h2&gt;

&lt;p&gt;Accessibility isn't something to "add later".&lt;/p&gt;

&lt;p&gt;This template is designed to help you meet WCAG 2.2 AA expectations from day one:&lt;/p&gt;

&lt;p&gt;✅ Semantic HTML patterns&lt;br&gt;
✅ Focus management&lt;br&gt;
✅ Automated accessibility checks using axe-core&lt;br&gt;
✅ Component structure that encourages accessible defaults&lt;/p&gt;

&lt;p&gt;🛡 Goal: Don't introduce accessibility problems in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quality Tooling That Supports Developers
&lt;/h2&gt;

&lt;p&gt;Good tooling should catch issues early without slowing anyone down.&lt;/p&gt;

&lt;p&gt;Included:&lt;/p&gt;

&lt;p&gt;✅ ESLint + Prettier for consistent standards&lt;br&gt;
✅ Vitest for fast, focused unit tests&lt;br&gt;
✅ Playwright for real end-to-end confidence&lt;br&gt;
✅ Knip to keep the codebase lean over time&lt;/p&gt;

&lt;p&gt;🔑 Focus: Predictability, confidence, and maintainability - not perfect scores.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Structure That Scales
&lt;/h2&gt;

&lt;p&gt;The project structure is intentionally boring - and that's a feature:&lt;/p&gt;

&lt;p&gt;✅ Clear separation of concerns&lt;br&gt;
✅ Predictable routing&lt;br&gt;
✅ Centralised error handling&lt;br&gt;
✅ Natural place for server state, UI state, and side effects&lt;/p&gt;

&lt;p&gt;🚀 New developers can onboard quickly because nothing is surprising.&lt;/p&gt;

&lt;h2&gt;
  
  
  Optional Features (That Stay Optional)
&lt;/h2&gt;

&lt;p&gt;Some integrations are included but disabled by default:&lt;/p&gt;

&lt;p&gt;✅ CodeQL code analysis&lt;br&gt;
✅ GitHub Pages deployment&lt;br&gt;
✅ SonarCloud analysis&lt;br&gt;
✅ TypeDoc documentation generation&lt;/p&gt;

&lt;p&gt;If you don't need them, they won't clutter your CI.&lt;br&gt;
If you do need them, they're already set up correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who This Template Is For
&lt;/h2&gt;

&lt;p&gt;This template is a good fit if you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build TypeScript-first React apps&lt;/li&gt;
&lt;li&gt;Prefer Vite over heavier tooling&lt;/li&gt;
&lt;li&gt;Care about accessibility from day one&lt;/li&gt;
&lt;li&gt;Want strong testing without friction&lt;/li&gt;
&lt;li&gt;Value boring, explicit architecture over clever abstractions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Modern React Template isn't trying to be trendy or clever.&lt;br&gt;
It's opinionated where it needs to be, flexible where it should be, and focused on helping developers build robust, accessible applications without wasting time on setup.&lt;/p&gt;

&lt;p&gt;⚡ If you care about strong foundations, this template should save you time - and future frustration.&lt;/p&gt;

&lt;p&gt;✨ I see this template evolving (if anyone is interested!)&lt;/p&gt;

&lt;p&gt;👉 Repository: &lt;a href="https://github.com/asudbury/modern-react-template" rel="noopener noreferrer"&gt;Modern React Template&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>typescript</category>
      <category>tooling</category>
      <category>react</category>
    </item>
  </channel>
</rss>
