<?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.us-east-2.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>How I Took a Free Islamic Website From 3 to 130+ Indexed Pages (No Budget, No Ads, No Team)</title>
      <dc:creator>Muhammad Subhan Naeem</dc:creator>
      <pubDate>Tue, 30 Jun 2026 10:15:51 +0000</pubDate>
      <link>https://dev.to/codebyheera/how-i-took-a-free-islamic-website-from-3-to-130-indexed-pages-no-budget-no-ads-no-team-epj</link>
      <guid>https://dev.to/codebyheera/how-i-took-a-free-islamic-website-from-3-to-130-indexed-pages-no-budget-no-ads-no-team-epj</guid>
      <description>&lt;p&gt;&lt;em&gt;A self-taught developer's honest breakdown of growing a non-commercial Quran website using nothing but SEO fundamentals and a lot of late nights.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A few months ago, Google Search Console showed exactly 3 indexed pages for my website. Today it shows over 130. No paid ads, no agency, no team — just me, a SERN stack (Supabase, Express, React, Node.js), and a website I built for free, with zero ad revenue, as a personal sadaqah jariyah project.&lt;/p&gt;

&lt;p&gt;This post is the technical and SEO breakdown of how that growth actually happened, written for other developers who are trying to grow a side project without a marketing budget.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo17rjbnkyk4atvccmc5c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo17rjbnkyk4atvccmc5c.png" alt="How I Took a Free Islamic Website From 3 to 130+ Indexed Pages (No Budget, No Ads, No Team)" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Project: Al-Quran Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://alquranhub.org" rel="noopener noreferrer"&gt;Al-Quran Hub&lt;/a&gt; is a free, ad-free Quran reading and listening platform with all 114 Surahs, multiple translations, and audio recitations. I built it solo, and I made an early decision that it would never carry ads. That decision shaped everything about how I had to approach growth, because I couldn't rely on paid acquisition. Organic search was the only realistic channel.&lt;/p&gt;

&lt;p&gt;When I started tracking it seriously in Search Console, the number staring back at me was 3 indexed pages. For a site with 114 Surah pages plus supporting content, that was a real problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Fixing the Foundation Before Chasing Content
&lt;/h2&gt;

&lt;p&gt;Before writing a single blog post, I had to fix what was broken structurally. A few things I found and fixed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Missing per-page meta data.&lt;/strong&gt; Every Surah page was using the same generic title and description. I rebuilt this using &lt;code&gt;react-helmet-async&lt;/code&gt; so every single page gets unique, dynamic meta tags pulled from page-specific data instead of one static template.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No structured data.&lt;/strong&gt; I added JSON-LD breadcrumb schema across all Surah pages, plus FAQ schema on relevant pages, which helped pages qualify for richer search results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No internal linking strategy.&lt;/strong&gt; Pages existed in isolation. I restructured navigation and added contextual internal links between related Surahs and blog content, which is one of the simplest things you can do and one of the most overlooked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this is glamorous work. It's the unsexy part of SEO that doesn't show up in a screenshot, but it's the part that actually lets Google crawl and understand a site in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Building a Real Blog System, Not Just a Blog
&lt;/h2&gt;

&lt;p&gt;A lot of indie projects bolt on a basic blog and call it a content strategy. I went a different direction and built a full blog system on top of the SERN stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend on Supabase with content managed through the Table Editor&lt;/li&gt;
&lt;li&gt;Express API serving blog data to the React frontend&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;react-helmet-async&lt;/code&gt; for per-post SEO meta, same as the Surah pages&lt;/li&gt;
&lt;li&gt;JSON-LD schema and FAQ schema on blog posts too, not just the static pages&lt;/li&gt;
&lt;li&gt;An AI Overview feature powered by the Groq API, generating a quick summary block at the top of each post for both users and search engines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I started with a topical authority cluster around &lt;strong&gt;"Surah Benefits"&lt;/strong&gt; content — pages explaining the virtues and benefits of reading specific Surahs, which is a high-intent, well-searched topic in the Islamic content space. The first two posts, on Surah Kahf and Surah Yaseen, were both written and structured specifically to rank for long-tail searches around those Surahs.&lt;/p&gt;

&lt;p&gt;This is the part most people skip: a topical cluster works because it signals to Google that you have depth on a subject, not just one isolated post. Each new post in the cluster makes the others stronger too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Title and Meta Optimization at Scale
&lt;/h2&gt;

&lt;p&gt;Once the foundation was solid, I went through all 114 Surah pages and rewrote every single meta title and description using keyword data pulled from Semrush and Ahrefs. A few constraints I held myself to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Titles capped around 50 characters&lt;/li&gt;
&lt;li&gt;Descriptions capped around 150 characters&lt;/li&gt;
&lt;li&gt;Action-first phrasing instead of passive descriptions&lt;/li&gt;
&lt;li&gt;No mention of features the site doesn't actually have, to avoid mismatched search intent and high bounce rates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Doing this manually across 114 pages is tedious, but it's also where a lot of the indexing and impression growth actually came from. Generic, duplicate-feeling meta descriptions are one of the fastest ways to get a page ignored or deprioritized by Google, even if the content itself is solid.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Backlinks From Real Platforms, Not Link Farms
&lt;/h2&gt;

&lt;p&gt;I avoided any paid backlink schemes entirely. Instead, I built a backlink presence the slow way, by publishing genuine, original content on platforms with strong domain authority:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dev.to (where you're reading this)&lt;/li&gt;
&lt;li&gt;Medium&lt;/li&gt;
&lt;li&gt;Hashnode&lt;/li&gt;
&lt;li&gt;about.me&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each platform got its own version of relevant content, not copy-pasted duplicates, with natural internal links back to specific pages on Al-Quran Hub rather than just the homepage. A link to a specific feature page, like the &lt;a href="https://alquranhub.org/tasbih" rel="noopener noreferrer"&gt;tasbih counter&lt;/a&gt;, carries more contextual relevance than a generic homepage link buried in an author bio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Infrastructure That Doesn't Get in the Way
&lt;/h2&gt;

&lt;p&gt;None of the content work matters if the technical infrastructure is unreliable. The current setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Domain via Hostinger&lt;/li&gt;
&lt;li&gt;Frontend and API (&lt;code&gt;api.alquranhub.org&lt;/code&gt;) deployed on Vercel&lt;/li&gt;
&lt;li&gt;Cloudflare for DNS, CDN, and SSL set to Full Strict&lt;/li&gt;
&lt;li&gt;GA4 and Search Console wired in from day one for actual data, not guesses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fast, stable infrastructure isn't an SEO trick, but it removes friction that would otherwise quietly tank rankings over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Results
&lt;/h2&gt;

&lt;p&gt;Going from 3 to 130+ indexed pages didn't happen from one big change. It came from stacking small, deliberate fixes: structural SEO first, then a real content system, then scaled-up meta optimization, then genuine backlinks. Search Console impressions and clicks have climbed steadily in parallel with the indexed page count, which is the actual signal that matters more than the indexing number itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd Tell Another Solo Developer
&lt;/h2&gt;

&lt;p&gt;If you're building a side project and wondering why Google isn't picking it up, check the boring stuff first. Unique meta tags. Structured data. Internal links. Most developers want to skip straight to "writing more content," but content poured into a structurally broken site doesn't get indexed fast, no matter how good it is.&lt;/p&gt;

&lt;p&gt;And if you're building something non-commercial, like I am, growth still matters. More indexed pages means more people finding something useful, even if there's no ad revenue or business metric attached to that growth. That alone made every hour of this worth it.&lt;/p&gt;

&lt;p&gt;If you want to see the actual site this was all built for, it's live and free at &lt;a href="https://alquranhub.org" rel="noopener noreferrer"&gt;alquranhub.org&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Building something similar? Happy to answer questions about the SERN stack setup, the Supabase blog architecture, or the SEO process in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <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>
