Spent the last 4 months building SourdoughCalc.com — a free sourdough
hydration calculator + 36 hand-written SEO articles. Solo dev, $0/mo
infra, no marketing budget. Here's what I learned, in case it helps
anyone starting a niche content site in 2026.
The stack: Next.js 14 + Tailwind + Cloudflare Pages. SEO was the entire
strategy — no backlinks, no social, no paid ads. Just articles that
answer real questions real bakers Google.
Things that worked:
- Targeting long-tail calculation queries ("65% hydration sourdough",
~7,200 searches/mo) over broad topics ("sourdough recipe",
~50,000/mo but impossible for a new site)
- Writing every article with FAQPage JSON-LD + a comparison table —
Google picked up featured snippets for ~8 of them
- Hand-coded 1200x630 OG images for every article, named
consistently, with proper alt text
- Internal links between related articles (3-5 per post) — this
was the single biggest PageRank win
Things that didn't work:
- Trying to rank for "sourdough" (impossible, every established
site has DR 80+)
- Forgetting FAQPage JSON-LD schema with
dangerouslySetInnerHTML
wraps an object not a string — renders as "[object Object]" in
Google Rich Results Test. Took me 2 weeks to notice 0 impressions
dropping. TypeScript build still passed.
- Waiting for "great content to rank itself." Doesn't work. You
need sitemap, GSC submission, internal linking, and topical
clustering.
Current state after 4 months:
- 36 articles, all hand-written
- 7,800% impression spike on one long-tail article (per GSC
recommendation) but still ranking #57.7 = page 6
- 0 organic clicks YTD (yes, really)
- 1 PH upvote, 1 Dev.to post, 0 Reddit
- Cloudflare: ~50ms TTFB globally, $0
If you're building a niche content site in 2026, AI overviews killed
"what is X" queries but they can't summarize "calculate X for Y with
Z". Pick queries where the answer is a number, formula, or table, not
a paragraph.
Happy to answer questions about the SEO setup, the Next.js + Cloudflare
config, or what I'd do differently next time. Roast me.
The “36 articles, no backlinks, $0 spent” setup makes this much more interesting than a generic SEO checklist.
I’m especially curious about the time dimension here. How long did it take before the rankings started moving, and were the 36 articles targeting mostly low-competition long-tail queries or a mix of difficulty levels?
That seems like an important distinction when trying to reproduce the result on another new site.
Month 3 for first Search Console movement, month 5-6 for meaningful
traffic. Before that, writing into a void.
100% low-competition long-tail — never touched anything with DR > 30
on page 1. Specificity was the whole game.
Bigger unlock than the writing itself: internal linking the 36 articles
into clusters (hydration / starter / crumb / shaping). Made Google treat
the site as a topical authority, not 36 random posts. Probably the
highest-ROI thing we did.
That month-3 → month-5/6 timeline is probably the most useful detail here. It also makes the “topical authority” point much more interesting — the internal links weren't just navigation, they effectively changed how the 36 articles were interpreted as a connected body of content.
One thing I'd be curious to test next is whether the same cluster structure would still outperform a flatter internal-linking strategy if the articles had similar search intent and quality.
It feels like there are really two variables here: content quality + topical relationship, and the second one might be doing more work than most new sites realize.
Honest answer: never A/B tested cluster vs flat with quality held
constant. But I did accidentally break a cluster once mid-experiment —
within 4-6 weeks the cluster pages started cannibalizing each other,
and the parent topic lost a position it had held.
So my read on why cluster wins: it's not just the relationship signal,
it's that the relationship constrains what each page "owns"
semantically. In a flat structure every page competes for every
keyword. In a cluster, each page has a defined territory and the hub
consolidates broader intent.
I think there's a third variable you're not naming: link density.
Same cluster, 2-3 internal links per article vs 8-10 — probably
very different. My bet: density matters more than structure. But
genuinely untested.
Real test: 36 articles, two groups of 18 matched on quality + intent.
A = cluster + high density. B = flat with random cross-links.
Measure at 6 months. If you run it, post results.