<?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: Эрдем Сонмез</title>
    <description>The latest articles on DEV Community by Эрдем Сонмез (@likable03).</description>
    <link>https://dev.to/likable03</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%2F4025465%2Feb4cded5-336d-4ce0-ab06-a0679a7816a1.jpg</url>
      <title>DEV Community: Эрдем Сонмез</title>
      <link>https://dev.to/likable03</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/likable03"/>
    <language>en</language>
    <item>
      <title>I built a Stack Overflow for gamers as a solo dev — here’s the stack and why</title>
      <dc:creator>Эрдем Сонмез</dc:creator>
      <pubDate>Sun, 12 Jul 2026 04:13:12 +0000</pubDate>
      <link>https://dev.to/likable03/i-built-a-stack-overflow-for-gamers-as-a-solo-dev-heres-the-stack-and-why-33dp</link>
      <guid>https://dev.to/likable03/i-built-a-stack-overflow-for-gamers-as-a-solo-dev-heres-the-stack-and-why-33dp</guid>
      <description>&lt;p&gt;Most gaming help lives in three bad places: a Reddit thread that’s archived before you find it, a Discord message that scrolled into the void, or a YouTube video where the fix is at 7:42 and you have to sit through an intro to get there. None of it is searchable six months later, which is exactly when the next person hits the same crash.&lt;/p&gt;

&lt;p&gt;So I built LootQuery — a Q&amp;amp;A site for PC gaming problems, structured like Stack Overflow. One question, accepted answers, permanent URLs, tags. I’m a solo developer, so every decision had to keep the maintenance surface small. Here’s what I picked and why.&lt;/p&gt;

&lt;p&gt;The stack&lt;/p&gt;

&lt;p&gt;Next.js (App Router) + Prisma + PostgreSQL. Nothing exotic on purpose. The App Router lets me server-render question pages so they’re indexable the moment they’re posted — critical for a Q&amp;amp;A site where SEO is the growth channel. Prisma keeps the schema honest as it grows, and Postgres does everything I need without a second datastore for relational data.&lt;/p&gt;

&lt;p&gt;Meilisearch for search. This was the one place I didn’t want to compromise. On a Q&amp;amp;A site, if search is bad, users bounce and post duplicates. Postgres full-text search got me 70% of the way, but typo-tolerance and instant-as-you-type ranking are where Meilisearch earns its keep. Indexing questions on write and querying it from an API route was a half-day of work, and the UX difference is night and day.&lt;/p&gt;

&lt;p&gt;Docker Compose + Caddy, self-hosted. I deliberately skipped the managed-platform route. The whole thing — Next.js, Postgres, Meilisearch — runs as a Compose stack behind Caddy, which handles TLS automatically with zero config. One docker compose up, one VPS, predictable cost, no per-request pricing surprises. For a side project that might get a traffic spike from a single viral answer, knowing my bill can’t explode overnight is worth the extra ops work.&lt;/p&gt;

&lt;p&gt;What was harder than expected&lt;/p&gt;

&lt;p&gt;Duplicate questions. Two people describe the same bug in completely different words. “Black screen on launch but I hear the menu music” and “game boots to black screen, audio still plays” are the same problem. Meilisearch helps surface likely duplicates as someone types their title, but nudging users toward the existing thread without annoying them is still an open UX problem I’m iterating on.&lt;/p&gt;

&lt;p&gt;Making empty pages not feel empty. A brand-new Q&amp;amp;A site has the cold-start problem baked in: no answers means no reason to visit, no visitors means no answers. I’ve been seeding genuinely useful questions from problems I’ve actually hit, so early visitors land on something solved rather than a ghost town.&lt;/p&gt;

&lt;p&gt;What I’d tell another solo dev&lt;/p&gt;

&lt;p&gt;Pick the boring stack for everything except the one thing that defines your product. For me the search experience was the non-negotiable, so that got the special tool; everything else stayed as vanilla as possible so I don’t spend weekends debugging infrastructure instead of shipping features.&lt;/p&gt;

&lt;p&gt;If you want to see how it turned out, it’s live at lootquery.com — questions, answers, and a Loot Score system for people who help out. Happy to answer anything about the build in the comments.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>postgres</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
