<?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: Mehmet Karpuz</title>
    <description>The latest articles on DEV Community by Mehmet Karpuz (@mkarpuz).</description>
    <link>https://dev.to/mkarpuz</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3810206%2Ffe16bbb9-3d16-46aa-9048-04552ee7ec6f.jpeg</url>
      <title>DEV Community: Mehmet Karpuz</title>
      <link>https://dev.to/mkarpuz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mkarpuz"/>
    <language>en</language>
    <item>
      <title>I vibe-coded a free German learning app — here's what I actually ended up with</title>
      <dc:creator>Mehmet Karpuz</dc:creator>
      <pubDate>Fri, 06 Mar 2026 16:27:13 +0000</pubDate>
      <link>https://dev.to/mkarpuz/i-vibe-coded-a-free-german-learning-app-heres-what-i-actually-ended-up-with-2k92</link>
      <guid>https://dev.to/mkarpuz/i-vibe-coded-a-free-german-learning-app-heres-what-i-actually-ended-up-with-2k92</guid>
      <description>&lt;p&gt;I've been building LinguStream on and off for way too long, and it started as a simple question: why does the best German learning method (LingQ-style immersion) cost money?&lt;/p&gt;

&lt;p&gt;The idea is straightforward — you read real German texts, click words you don't know, save them, and review with spaced repetition. No artificial exercises, just real content and vocabulary in context.&lt;/p&gt;

&lt;p&gt;What I used:&lt;br&gt;
React 19, TypeScript, Vite, Supabase (auth + database + edge functions), shadcn/ui, Tailwind, and DeepSeek for AI features — all proxied through Supabase edge functions to keep keys off the client. For the vibe coding itself, I leaned heavily on Claude Sonnet and Opus from Anthropic — honestly couldn't have got this far without it.&lt;/p&gt;

&lt;p&gt;What it does:&lt;br&gt;
Import any German text, article, or podcast transcript&lt;br&gt;
Click unknown words to save them instantly&lt;br&gt;
Spaced repetition review (SM-2 algorithm)&lt;br&gt;
10 quiz types&lt;br&gt;
Completely free&lt;br&gt;
I'm at the point where I genuinely can't tell if it's actually good anymore — I've been staring at it too long. If you're learning German or just curious, I'd love honest feedback on what works and what doesn't.&lt;/p&gt;

&lt;p&gt;&lt;a href="//lingustream.com"&gt;Here is the link to the beta test website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to answer any questions in the comments — about the tech stack, the language learning approach, or anything else you're curious about.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqh7kdyayqny790r2vqf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiqh7kdyayqny790r2vqf.png" alt=" " width="800" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwszvwejksowh4r55nzb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwszvwejksowh4r55nzb.png" alt=" " width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5y33979rs22he8prcmhl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5y33979rs22he8prcmhl.png" alt=" " width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
