<?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: Arthur Turing</title>
    <description>The latest articles on DEV Community by Arthur Turing (@arthurturing).</description>
    <link>https://dev.to/arthurturing</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%2F3809943%2F1a47e299-3ea5-4346-9cce-29bf65cfda17.jpg</url>
      <title>DEV Community: Arthur Turing</title>
      <link>https://dev.to/arthurturing</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arthurturing"/>
    <language>en</language>
    <item>
      <title>I Built a Postcode-Level Broadband Comparison Tool for Every UK Postcode</title>
      <dc:creator>Arthur Turing</dc:creator>
      <pubDate>Tue, 17 Mar 2026 18:16:33 +0000</pubDate>
      <link>https://dev.to/arthurturing/i-built-a-postcode-level-broadband-comparison-tool-for-every-uk-postcode-22da</link>
      <guid>https://dev.to/arthurturing/i-built-a-postcode-level-broadband-comparison-tool-for-every-uk-postcode-22da</guid>
      <description>&lt;p&gt;Most broadband comparison sites show you plans. They don't show you what speed you'll actually get at your address.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://broadbandcompareuk.com" rel="noopener noreferrer"&gt;Broadband Compare UK&lt;/a&gt; to fix that. It uses real Ofcom data to show postcode-level broadband availability, speeds, and coverage across the UK.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Every postcode page shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Broadband availability&lt;/strong&gt; from Ofcom Connected Nations 2025&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-world speeds&lt;/strong&gt; from Ookla Speedtest data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;House prices&lt;/strong&gt; from Land Registry&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crime stats&lt;/strong&gt; from Police.uk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;School ratings&lt;/strong&gt; from GIAS/Ofsted&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transport links&lt;/strong&gt;, GP surgeries, EV charging, flood risk, air quality, and more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over 500,000 postcodes are live right now. The full 1.7 million will be done this week.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 16&lt;/strong&gt; with ISR (Incremental Static Regeneration)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Neon PostgreSQL&lt;/strong&gt; for all data (2.9GB and growing)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind v4&lt;/strong&gt; for styling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel&lt;/strong&gt; for hosting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;13 free UK government data sources&lt;/strong&gt; stitched together per postcode&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The data pipeline
&lt;/h2&gt;

&lt;p&gt;The hardest part was not building the UI. It was ingesting and normalising data from 13 different government APIs, each with its own format, rate limits, and quirks.&lt;/p&gt;

&lt;p&gt;Ofcom publishes broadband data as 121 separate CSV files. The Police API rate-limits to 1 request per second. Land Registry data needs SPARQL queries. The Environment Agency flood risk API only covers England.&lt;/p&gt;

&lt;p&gt;I wrote a pipeline that processes each postcode prefix in parallel. Five batches running simultaneously. Each batch handles geocoding, broadband data, house prices, crime, schools, transport, GP surgeries, EV charging, council tax, EPC ratings, demographics, and deprivation indices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;When I moved house, I checked schools, crime, and transport. I forgot to check broadband. Ended up with 15Mbps in an area where the next street had 900Mbps.&lt;/p&gt;

&lt;p&gt;Most people make the same mistake. Broadband Compare UK puts all the data on one page so you don't have to check five different government websites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;The site is live at &lt;a href="https://broadbandcompareuk.com" rel="noopener noreferrer"&gt;broadbandcompareuk.com&lt;/a&gt;. Pick any postcode. Every page is free, no sign-up required.&lt;/p&gt;

&lt;p&gt;Would love feedback from the dev community, especially on the data pipeline approach. Happy to answer questions about working with UK government open data.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>data</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>I Built a 337-Page Education Platform With No CMS and No Full-Time Staff</title>
      <dc:creator>Arthur Turing</dc:creator>
      <pubDate>Fri, 13 Mar 2026 19:46:19 +0000</pubDate>
      <link>https://dev.to/arthurturing/i-built-a-337-page-education-platform-with-no-cms-and-no-full-time-staff-1ibd</link>
      <guid>https://dev.to/arthurturing/i-built-a-337-page-education-platform-with-no-cms-and-no-full-time-staff-1ibd</guid>
      <description>&lt;p&gt;Six months ago I launched &lt;a href="https://wellwired.ai" rel="noopener noreferrer"&gt;WellWired&lt;/a&gt;, a free AI education platform for adults over 50. Today it has 337 pages: 53 blog posts, 274 glossary terms, and 10 course modules. No CMS. No full-time staff. Just Next.js 16, Tailwind, and Vercel.&lt;/p&gt;

&lt;p&gt;Here is what I learned building it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; Next.js 16 with App Router&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; Tailwind CSS v4&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting:&lt;/strong&gt; Vercel (free tier got us surprisingly far)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments:&lt;/strong&gt; Stripe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; 797 automated tests + Lighthouse CI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; Neon PostgreSQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No headless CMS. Every page is a React component. The glossary, blog, and course modules all live in the codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why No CMS?
&lt;/h2&gt;

&lt;p&gt;Three reasons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed.&lt;/strong&gt; Static generation means every page loads in under a second. No database queries on render. No API calls. Just HTML served from the edge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing.&lt;/strong&gt; With 797 tests running on every deploy, nothing ships broken. A CMS would mean content changes bypass the test suite. That felt risky for an education platform where accuracy matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost.&lt;/strong&gt; Headless CMS pricing gets expensive fast when you have 337 pages. Our entire infrastructure cost is under 20 dollars a month.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Testing Setup
&lt;/h2&gt;

&lt;p&gt;Every pull request runs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unit tests for all utility functions&lt;/li&gt;
&lt;li&gt;Integration tests for page rendering&lt;/li&gt;
&lt;li&gt;Lighthouse CI with hard gates: accessibility score must be 90+, SEO score must be 90+&lt;/li&gt;
&lt;li&gt;Build verification (if it does not build, it does not ship)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This catches problems before they reach production. We have never shipped a broken page.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Would Do Differently
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Start with fewer pages.&lt;/strong&gt; We launched with 200+ glossary terms. Most of them get zero traffic. I should have started with 50 high-value terms and added more based on search data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add search earlier.&lt;/strong&gt; With 337 pages, navigation matters. We added search too late.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Invest in ISR sooner.&lt;/strong&gt; Some pages need fresh data. Incremental Static Regeneration would have saved us from full rebuilds.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;337 pages live&lt;/li&gt;
&lt;li&gt;797 automated tests&lt;/li&gt;
&lt;li&gt;Under 1 second page load&lt;/li&gt;
&lt;li&gt;20 million potential users in the UK (adults 55+)&lt;/li&gt;
&lt;li&gt;Zero CMS vendor lock-in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are building a content-heavy site and wondering whether you need a CMS, the answer might be no. A well-structured Next.js project with good testing can scale further than you think.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://wellwired.ai" rel="noopener noreferrer"&gt;WellWired&lt;/a&gt; is a free AI education platform for adults over 50. We teach AI in plain English, no jargon, no prerequisites.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
