From a Theme Translation to a Location-Based Search Tool: The Story Behind camiler.org

This idea wasn’t born out of a religious epiphany. It started—believe it or not—while translating a WordPress theme. My friend Emre Erkan and I were working on a church-oriented theme when he casually suggested, “Why don’t we make a mosque theme too?” It sounded intriguing. But I was skeptical. “Mosques in Turkey are very different from churches,” I replied. “They’re centrally managed, rarely have individual websites, and don’t operate as community hubs the way churches often do.”

Still, that comment stuck with me. Later, I recalled a recent moment of frustration: trying to find a mosque in the city for a funeral prayer. Google Maps let me down. Either the mosque didn’t appear or the location was wrong. A manual Google search didn’t help much either—mostly outdated info, tourist sites, or no results at all.

That’s when I realized: this wasn’t a rare problem. And though I don’t define myself as religious—I’m more of a secular person living in a largely religious society—I saw real value in solving this issue. This project wasn’t about faith. It was about utility. And, admittedly, a little technical curiosity.

From Prompted Ideas to Public Problems

We quickly dropped the idea of a mosque “theme” and pivoted to something broader: a mosque locator and directory. Diyanet, Turkey’s religious authority, provides a public list of registered mosques. I cross-checked the keyword “cami” (mosque) on Google Trends—turns out there was a healthy volume.

Yet the search engine results pages (SERPs) were lacking. You’d find plenty about Hagia Sophia or Süleymaniye, but very little on local, everyday mosques. There was demand, but no real supply.

The Domain Was Free, the Idea Took Hold

I found out camiler.org (which means mosques in Turkish) was available and shared it with Emre. We hyped it up for a night, but in the following days, other priorities took over on his end. That’s life. So, I decided to move forward on my own.

I hadn’t built anything in a while, and this seemed like a low-stakes, high-value playground. Here’s what made the idea technically exciting:

  • Diyanet’s dataset gave me a head start.
  • Google Maps API could help locate and visualize mosques.
  • I could pull visuals and reviews and use OpenAI’s API to generate clean content.
  • A nice playground for testing SEO and content strategies.

The Stack and Structure

I built the backend with Fastify (Node.js) and the frontend with Nuxt 3. For caching, I used Redis and compressed the payloads to save memory on a small server. MariaDB handled persistence. I used Cloudflare R2 for object storage—Free Tier was more than enough.

SEO-wise, I implemented a JSON-LD schema and structured the URLs hierarchically, Google loves that kind of structure—and honestly, so do I.

OpenAI, Maps, and the Limits of Automation

I started with a basic prompt for content generation. But Google Maps API only gives you a few top reviews—often low quality. Early results from the LLM were messy: hallucinated facts, generic prose. I iterated on the prompt, tightened it up, and saw improvement—but the process is far from perfect.

Sometimes there just isn’t enough quality input to generate decent content. And that’s the thing: automation is nice in theory, but fragile in practice.

Data Quality and Manual Labor

Turns out Diyanet’s data has plenty of inconsistencies—duplicate addresses, missing fields, even entire districts misaligned. Google Maps doesn’t recognize many of the mosques in small towns and villages.

Photos? Often missing. Or worse—totally unrelated images pulled in. So, I built a review workflow in the admin panel. If the system guesses right, I approve with one click. If not, I search manually, input coordinates, pick better visuals, and clean up the content.

What I imagined as a fully automated system became semi-manual. That’s real-world engineering, I guess.

Launch and Unexpected Momentum

Once live, I submitted the sitemaps to Google. Within days, hundreds of pages were indexed. It’s only been 2–3 weeks, but the results are promising:

  • ~2,000 impressions per day
  • ~30 clicks daily

No paid ads. No social media push. Just structure, content, and clean implementation.

What’s Next?

Some ideas are already brewing:

  • Let users find the nearest mosque via location
  • Turn the admin approval flow into a gamified community task
  • Allow users to contribute images and reviews
  • Build a “visited mosques” tracker or wishlist
  • If legal constraints allow, create verified imam profiles for posting announcements/events
  • Eventually, reach out to Diyanet for collaboration.

On Monetization and Audience Targeting

Most visitors aren’t deeply religious. Some are like me—secular, but occasionally navigating religious customs out of social or cultural necessity. That said, camiler.org is a Turkish-language website, built for a predominantly Muslim audience living in Turkey.

So while the project isn’t religious in intent, it inevitably intersects with religious behavior patterns and search needs. That opens up ad potential:

  • Ethical banks (interest-free), housing initiatives like FuzulEv
  • Grocery chains, modest clothing brands, Islamic finance tools
  • Thanks to the geographic URL structure, hyperlocal ad targeting is easy Some are like me—secular but navigating religious rituals occasionally. Still, it’s fair to assume a baseline of religious or cultural intent.

That opens up ad potential:

  • Ethical banks (interest-free), housing initiatives like FuzulEv
  • Grocery chains, modest clothing brands, Islamic finance tools
  • Thanks to the geographic URL structure, hyperlocal ad targeting is easy

For now, I’m just observing. It’s too early to scale. But the initial traction suggests there’s real value here.

camiler.org is filling a quiet but persistent gap. Not loudly, not urgently—but with intent.