<?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: Muhammad Subhan Naeem</title>
    <description>The latest articles on DEV Community by Muhammad Subhan Naeem (@codebyheera).</description>
    <link>https://dev.to/codebyheera</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%2F3320248%2F1df4b5f7-990c-4ea6-8ee0-5a65a02cf887.jpeg</url>
      <title>DEV Community: Muhammad Subhan Naeem</title>
      <link>https://dev.to/codebyheera</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codebyheera"/>
    <language>en</language>
    <item>
      <title>I Built a Free Quran Web App with the SERN Stack — Here's What I Learned</title>
      <dc:creator>Muhammad Subhan Naeem</dc:creator>
      <pubDate>Thu, 30 Apr 2026 17:30:10 +0000</pubDate>
      <link>https://dev.to/codebyheera/i-built-a-free-quran-web-app-with-the-sern-stack-heres-what-i-learned-49fj</link>
      <guid>https://dev.to/codebyheera/i-built-a-free-quran-web-app-with-the-sern-stack-heres-what-i-learned-49fj</guid>
      <description>&lt;p&gt;I Built a Free Quran Web App with the SERN Stack — Here's What I Learned&lt;br&gt;
A few months ago, I asked myself a simple question:&lt;/p&gt;

&lt;p&gt;Why isn't there a clean, fast, ad-free Quran web app built with modern tech?&lt;/p&gt;

&lt;p&gt;Most existing apps are either bloated, filled with ads, or haven't been updated in years. As a Muslim developer, this bothered me. So I built one.&lt;br&gt;
Meet Al-Quran Hub — a free, non-profit Quran web application built with the SERN stack (Supabase, Express, React, Node.js).&lt;br&gt;
Here's everything I learned shipping it to production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧱 Why the SERN Stack?&lt;/strong&gt;&lt;br&gt;
I wanted:&lt;br&gt;
A real database with row-level security (not just a JSON file)&lt;br&gt;
A proper REST API I control&lt;br&gt;
A fast React frontend with clean routing&lt;br&gt;
Zero vendor lock-in for the core logic&lt;/p&gt;

&lt;p&gt;Supabase gave me a PostgreSQL database with an auto-generated REST layer, but I still built my own Express API on top of it for flexibility. This separation of concerns made the architecture much cleaner.&lt;br&gt;
Frontend (React + Vite)  →  api.alquranhub.org (Express)  →  Supabase (PostgreSQL)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;☁️ The Infrastructure Setup&lt;/strong&gt;&lt;br&gt;
This was honestly the most educational part of the whole project.&lt;br&gt;
Frontend: Deployed on Vercel — zero config, automatic deployments on every push. Perfect for React.&lt;br&gt;
Backend: Also on Vercel (serverless functions) at a custom subdomain api.alquranhub.org.&lt;br&gt;
DNS &amp;amp; CDN: Everything routed through Cloudflare. SSL handled automatically, with edge caching for faster load times globally.&lt;br&gt;
Domain: Registered on Hostinger, pointing to Cloudflare nameservers.&lt;br&gt;
The trickiest part? Getting the subdomain for the API (api.alquranhub.org) to work correctly with Cloudflare proxying and Vercel's domain verification at the same time. Took me a couple of hours but here's the fix — make sure your DNS CNAME for the subdomain has Cloudflare proxy disabled (grey cloud) during Vercel's verification, then re-enable it after.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📱 Mobile UI — The Details Matter&lt;/strong&gt;&lt;br&gt;
I almost launched without fixing the mobile. Big mistake.&lt;br&gt;
The sidebar navigation was broken on small screens — it would push content rather than overlay it. I rebuilt it with:&lt;/p&gt;

&lt;p&gt;A slide-in animation using CSS transitions&lt;br&gt;
A backdrop blur overlay that closes the sidebar on tap&lt;br&gt;
Active route color-coding so users always know where they are&lt;/p&gt;

&lt;p&gt;Small things, but they make the difference between an app that feels professional and one that feels like a side project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 SEO for a Non-Profit App&lt;/strong&gt;&lt;br&gt;
Getting organic traffic to a Quran app in Pakistan means competing for keywords like:&lt;/p&gt;

&lt;p&gt;"Quran online"&lt;br&gt;
"Quran with Urdu translation"&lt;br&gt;
"surah baqarah"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My setup:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google Search Console — submitted sitemap, monitoring coverage&lt;br&gt;
GA4 — tracking user behavior&lt;br&gt;
Meta tags on every page — title, description, OG tags&lt;br&gt;
robots.txt + sitemap.xml — properly configured&lt;/p&gt;

&lt;p&gt;Still early days for rankings, but the foundation is solid.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 The Biggest Lessons&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ship first, optimize later.
I spent too long perfecting things before deployment. Once it was live, real feedback came fast.&lt;/li&gt;
&lt;li&gt;Infrastructure is a skill.
Cloudflare, Vercel, subdomains, SSL — this stuff isn't taught in tutorials. You learn it by breaking things.&lt;/li&gt;
&lt;li&gt;Non-profit projects need SEO too.
"Build it and they will come" doesn't work. Even a free Islamic resource needs discoverability.&lt;/li&gt;
&lt;li&gt;Separation of concerns saves you later.
Having a dedicated Express API instead of calling Supabase directly from the frontend gave me flexibility I didn't expect to need — but eventually did.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;🚀 What's Next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quran audio (recitation support)&lt;br&gt;
Bookmarking &amp;amp; progress tracking&lt;br&gt;
PWA support for offline access&lt;br&gt;
Android app (evaluating React Native vs PWA)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 Check It Out&lt;/strong&gt;&lt;br&gt;
👉 Live: &lt;a href="https://alquranhub.org/" rel="noopener noreferrer"&gt;https://alquranhub.org/&lt;/a&gt;&lt;br&gt;
It's completely free and non-profit. No ads, no subscriptions, no data selling — just the Quran, clean and fast.&lt;br&gt;
If you're a developer who's built something for a cause you care about, I'd love to hear about it in the comments. And if you have feedback on the tech choices, drop it below — I'm always looking to improve.&lt;/p&gt;

&lt;p&gt;Built with ❤️ and a lot of Cloudflare troubleshooting.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
