Building camiler.org: A Programmatic SEO Experiment with Google Maps and OpenAI
Written by Evren BalPublished Updated · 6 min read

💡 Quick Summary (TL;DR):
- The Project: A modern, location-based mosque directory and locator built using Fastify and Nuxt 3 to solve outdated or missing map listings: camiler.org.
- The Experiment: Use Diyanet's dataset, Google Maps data, and OpenAI-generated summaries to build useful pages for local searches where I saw demand but weak results.
- The Early Result: After roughly 15-20 days, Search Console showed about 2,000 impressions and 30 clicks per day. A year later, visibility grew far beyond that while revenue did not.
This article captures camiler.org in its first weeks, when the early search numbers looked promising. A year later, the site reached roughly one million monthly impressions and more than 10,000 clicks but produced no revenue. I cover that outcome in the programmatic SEO post-mortem. What follows is the original build story: the problem I noticed, the system I built, and the manual work hidden behind the first signs of traction.
From a Theme Translation to 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. I mostly found outdated information, tourist sites, or no useful result at all.
That’s when I realized this was worth investigating. I don't define myself as religious. I'm more of a secular person living in a largely religious society, but I saw real value in solving this issue. The project wasn't about faith. It was about utility and, admittedly, a little technical curiosity.
From a Theme Idea to a Public Search Problem
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. Google Trends showed recurring interest in the term "cami." That was a demand signal, not a precise keyword-volume study. The search results also looked thin outside famous places such as Hagia Sophia or Süleymaniye. Together, those observations made the directory worth testing.
The Domain Was Free, So I Started Building
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 use available visuals and reviews as inputs for OpenAI-generated summaries.
- It was a useful playground for testing SEO, data processing, and content quality.
The Page Structure
I added JSON-LD and structured the URLs around the relationship between provinces, districts, and individual mosques. The same hierarchy also made the directory easier for people to navigate.
OpenAI, Maps, and the Limits of Automation
I started with a basic prompt for content generation. But the Google Maps data available to the workflow included only a small selection of reviews, and those reviews were often poor inputs. Early results from the LLM were messy: hallucinated facts and generic prose. I iterated on the prompt, tightened it up, and saw improvement, but the process remained 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 Turned Automation into Manual Work
It turned out that Diyanet’s data had plenty of inconsistencies: duplicate addresses, missing fields, and even entire districts misaligned. Many records for mosques in small towns and villages did not have a reliable match in Google Maps.
Photos were often missing. In some cases, the result was completely unrelated to the mosque. So, I built a review workflow in the admin panel. If the system guessed correctly, I approved it with one click. If not, I searched manually, entered the coordinates, chose a better image, and cleaned up the content.
What I imagined as a fully automated system became semi-manual. That’s real-world engineering, I guess.

The First 15-20 Days in Search
Once live, I submitted the sitemaps to Google. Within days, hundreds of pages were indexed. After roughly 2-3 weeks, Search Console showed:
- ~2,000 impressions per day
- ~30 clicks daily
At that point, I hadn't run paid ads, launched a social media campaign, or deliberately built links. These numbers are a snapshot of the launch, not proof that any single technical choice caused the indexing or traffic.

What I Planned Next
The ideas I was considering at that stage included:
- 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.
What I Thought Monetization Might Look Like
At launch, I assumed the audience and geographic page structure might create several advertising options. Most visitors wouldn't necessarily be deeply religious. Some would be people like me, navigating religious customs for social or cultural reasons. Still, camiler.org was a Turkish-language website serving searches in a predominantly Muslim country.
The advertising hypotheses I considered included:
- People navigating funerals or other cultural customs would broaden the audience beyond regular mosque visitors.
- Participation banks, interest-free housing providers, grocery chains, and modest fashion brands might overlap with part of that audience.
- Province and district pages could support local advertising.
At the time, it was too early to know whether any of these ideas would work. The first search numbers showed demand for the pages, not willingness to buy or the existence of a viable advertising model.
That distinction became clear over the following year. Search visibility kept growing, but the commercial assumptions did not hold. The one-year post-mortem covers the result and the validation work I should have done before building at this scale.
If this article was useful
Linking to it from a relevant page on your website or sharing it on social media genuinely helps it reach more people. Thank you for your support.
Linking and brand guidelines →