I'm a solo developer in Istanbul building webgerek.com — a website builder for Turkish small businesses. Restaurants, hotels, dental clinics, law firms. The kind of places that still hand you a paper menu in 2026.
Before a single person paid me $6.99/month, I had:
- 15 fully built templates
- 80+ automated tests across 15 test suites
- A booking system
- An analytics dashboard
- A custom domain system with Cloudflare
- A QR menu generator
- Blog and menu editors
- Full i18n support (Turkish + English)
- A Gemini-powered support chatbot
Was this overbuilding? Probably. Would I do it again? Let me walk you through it.
The Freelancer Trap
Before webgerek, I was a freelance web developer. I built Next.js sites for clients — law firms, hotels, dental clinics, coaching businesses. The work was fine. The cycle was not.
Every project was a one-time payment. Finish the site, hand it over, start hunting for the next client. No recurring revenue. No compounding. Every month started from zero.
I kept noticing the same thing: my clients were small business owners in Istanbul who needed a simple website but couldn't afford a developer and found Wix confusing. They didn't need a drag-and-drop builder with 500 features. They needed something that worked in Turkish, looked professional, and had the tools that actually mattered to them — a booking system, a QR menu, Google reviews.
So I started building.
Why 15 Templates?
Here's the thing about the Turkish small business market — it's incredibly fragmented. A dental clinic needs a completely different layout than a restaurant. A law firm's site has nothing in common with a hotel's.
If I launched with 3 generic templates, nobody would see themselves in the product. A restaurant owner needs to look at a template and think "that's my website" within 5 seconds.
So I built templates for specific use cases:
- Restaurant templates (default, luxury, newspaper, retro, swiss) with built-in QR menus
- Service business templates (card, editorial, sidebar-panel) for clinics, salons, consultants
- Showcase templates for portfolios and creative businesses
- A hotel template with room galleries and booking integration
Each one came with service presets — 28 JSON files mapping to specific business types, pre-loaded with relevant hero images hosted on Cloudflare R2. A dentist picks the dental preset and gets a site that already looks like a dental clinic.
Was 15 too many for launch? Yes. But I wasn't building for developers who appreciate a minimal MVP. I was building for a restaurant owner in Kadıköy who needs to see his menu on screen before he believes the product works.
The Testing Obsession
This is the part where other indie hackers might judge me. I wrote 80+ automated tests before having users.
Here's why: I'm a solo developer. There's no QA team. There's no cofounder to catch what I missed. When a restaurant owner in Istanbul builds their site at 11pm, there's nobody on the other end to fix a broken template.
I built two critical test suites:
template-completeness.test.ts — 39 tests checking that every template has all required files, correct exports, proper metadata, and valid section configurations.
template-deploy-guard.test.ts — catches regressions across all 15 templates. If I change something in the gallery component and it breaks the luxury restaurant template, I know before it ships.
These tests have already saved me multiple times. I once fixed a gallery integration bug that silently broke across 4 templates — duplicate headers, wrong CSS, missing lightbox. Without the test suite, that would've been 4 angry business owners discovering broken sites.
For a solo dev, tests aren't a luxury. They're the only safety net you have.
The Features Nobody Asked For (Yet)
Let me be honest about the features I built before anyone asked:
Custom domains via Cloudflare for SaaS. Full DNS setup, SSL provisioning, the works. I even got a Domain Connect template merged into the official repository. Total overkill for launch. But I knew that for a Turkish business owner, "yourbusiness.com" matters more than any feature list.
A booking system. Zero external cost. Built into the platform. Because every single freelance client I ever had asked for appointment booking, and every existing solution costs extra.
Full i18n. Every string in the app runs through t() on the frontend and msg() on the backend. English and Turkish. Because I want this product to scale beyond Turkey eventually, and retrofitting i18n is a nightmare I've lived through on client projects.
A Gemini-powered chatbot for support, because I can't be online 24/7 and my users aren't technical enough to read a docs page.
Each of these felt necessary in the moment. Looking back, I could have launched with half of this. But here's the uncomfortable truth about building for non-technical users: they have zero patience for "coming soon." If the booking page is broken or the domain doesn't work, they don't file a bug report. They leave and never come back.
What I Should Have Done Differently
I'll be real. Here's what I got wrong:
I should have launched after 5 templates, not 15. The first 5 templates covered 80% of my target market. Templates 6-15 were me avoiding the scarier work of marketing and selling.
I waited too long to try paid acquisition. When I finally ran Google Ads — 100 TL/day on Turkish keywords — I learned fast that "online randevu sistemi" (online booking system) had insane CPC. I paused it after seeing the numbers. But I should have learned that lesson 3 months earlier.
I over-engineered before validating. The Domain Connect PR, the i18n system, the 80 tests — all valuable, all things that could have waited. The first version didn't need to be production-grade. It needed to be in front of real users.
The classic indie hacker trap: building is comfortable, selling is scary. I know this. I still fell into it.
Where I Am Now
webgerek.com is live. The pricing is simple — Free, Pro at $6.99/mo (2 sites), Pro+ at $12.99/mo (15 sites + custom domain). Everything runs on Next.js, Supabase, Cloudflare, and Clerk.
I'm now building a review/rating system — a /puanlama page for each site where happy customers (4-5 stars) get redirected to Google or TripAdvisor, and unhappy customers (1-3 stars) submit private feedback. No email required. Zero cost. QR code on the table.
It's the kind of feature that a Kadıköy restaurant owner actually asks for.
I'm still freelancing part-time to fund the SaaS. I still build more than I sell. But every week the product gets a little more complete, a little more tested, and a little closer to the thing I originally imagined.
What I'd Tell You If You're Building Solo
Ship earlier than you're comfortable with. Five templates would have been enough. Three, maybe. Your first users will tell you what to build next — and it won't be what you expected.
Write tests early if you're solo. You can't afford bugs when there's no one else to catch them. Even 10 well-placed integration tests will save you hours of panicked debugging.
Build for a specific person. Not "small businesses." Not "the Turkish market." A restaurant owner in Kadıköy who wants his menu online and a way to take reservations. When you can picture one person, you stop building features and start solving problems.
Don't be ashamed of the builder's trap. We all fall into it. The key is recognizing it and course-correcting, not beating yourself up about it.
If you made it this far — thanks for reading. I'll keep posting updates as webgerek grows. Or doesn't. That's the build-in-public deal.
You can check out the product at webgerek.com or follow my journey here on dev.to.
I'm Efe — a solo developer in Istanbul building tools for small businesses. I write about SaaS, indie hacking, and the realities of building products in markets that big tech ignores. If this resonated, follow me for more honest updates.
Top comments (0)