<?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: Raymond Marr</title>
    <description>The latest articles on DEV Community by Raymond Marr (@ray_).</description>
    <link>https://dev.to/ray_</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%2F3858012%2F7156d88b-9c5d-4521-b7a7-a287f15da0b4.jpg</url>
      <title>DEV Community: Raymond Marr</title>
      <link>https://dev.to/ray_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ray_"/>
    <language>en</language>
    <item>
      <title>Building my own language learning app</title>
      <dc:creator>Raymond Marr</dc:creator>
      <pubDate>Tue, 07 Apr 2026 09:27:54 +0000</pubDate>
      <link>https://dev.to/ray_/building-my-own-language-learning-app-5hjb</link>
      <guid>https://dev.to/ray_/building-my-own-language-learning-app-5hjb</guid>
      <description>&lt;p&gt;After a 3 year streak of daily Duolingo, I decided to build my own app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;p&gt;I actually quite like Duolingo. I completed the entire German language track &lt;strong&gt;twice&lt;/strong&gt; (they rebuilt it some years back) and it got me to a conversational level of German. So why wasn't I satisfied? &lt;/p&gt;

&lt;p&gt;A few reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;constant ads&lt;/li&gt;
&lt;li&gt;having to dismiss 10 animations after every lesson&lt;/li&gt;
&lt;li&gt;Being shown the same lessons day after day &lt;/li&gt;
&lt;li&gt;Most importantly, no content above a B1 language level&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What did I build
&lt;/h2&gt;

&lt;p&gt;A language learning app with a bunch of features I thought could help me with progressing my German. It's not very useful for someone learning from level zero, but to go beyond what Duolingo offers, I think it's great.&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%2F7ov7uukchjydlrw9g3sa.gif" 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%2F7ov7uukchjydlrw9g3sa.gif" alt="Animation of Marques Brownlee saying " width="640" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  App features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AI chat bot
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Corrects your mistakes without breaking the conversation (easy to ignore when you just want to focus on the conversation)&lt;/li&gt;
&lt;li&gt;Instant translations to english available with every message.&lt;/li&gt;
&lt;li&gt;Toggle the language level to the level you want at that moment&lt;/li&gt;
&lt;li&gt;Translation exercises with constructive feedback geared at your level&lt;/li&gt;
&lt;li&gt;TELC/Goethe exam style writing prompts, with feedback on your answers.&lt;/li&gt;
&lt;/ul&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%2Fdfb8au6wjif9qbp0uvxj.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%2Fdfb8au6wjif9qbp0uvxj.png" alt="AI Chat selection options" width="800" height="1795"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Translate game
&lt;/h3&gt;

&lt;p&gt;This is basically Duolingo's main feature (click to build sentences) with some extras.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;↕️ Change the language level between A1-C2&lt;/li&gt;
&lt;li&gt;🐜 Generate sentences based on a specific topic you choose. Want to practice insect vocabulary, sure why not!&lt;/li&gt;
&lt;li&gt;🃏 Use words from your own flashcards (more on this later)&lt;/li&gt;
&lt;/ul&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%2Fd0rt811j5ohiqssyd96o.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%2Fd0rt811j5ohiqssyd96o.png" alt="Translation game with a B1 level sentence" width="800" height="1796"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Stories game
&lt;/h3&gt;

&lt;p&gt;Fill in the blank words in a short story. Has all the same features of the translate game, but a bit more focus on reading comprehension.&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%2Fdtanm6aue40a2gp7hose.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%2Fdtanm6aue40a2gp7hose.png" alt="Stories game with a C2 level short story about insects" width="800" height="1796"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Flashcards
&lt;/h3&gt;

&lt;p&gt;A simple and effective way to learn vocabulary, with a few extras.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a collection of 19,000 built-in flashcards with example sentences for every word (thanks to open source project &lt;a href="https://github.com/vbvss199/Language-Learning-decks" rel="noopener noreferrer"&gt;here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Spaced repetition to show you words you got wrong more often&lt;/li&gt;
&lt;li&gt;A collection of common sentence structure scraped from millions of published books &lt;a href="https://github.com/orgtre/google-books-ngram-frequency/tree/main?tab=readme-ov-file#the-underlying-corpus" rel="noopener noreferrer"&gt;open source project here&lt;/a&gt;. P.S. The most common 5 word phrases in books is not always a common phrase in everyday speech. A great example of this is the highly ranked phrase "er biss sich auf die Unterlippe" (he bit his lower lip 🫦)... Not sure I will be using that one!&lt;/li&gt;
&lt;li&gt;An auto-generated deck which collects words you struggled with while using the app&lt;/li&gt;
&lt;li&gt;Create my own custom flash card decks&lt;/li&gt;
&lt;li&gt;Mass edit or copy cards between decks&lt;/li&gt;
&lt;li&gt;Auto-generated translations and example sentences for any new vocabulary you add&lt;/li&gt;
&lt;/ul&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%2Fce7huhw25f070mmdd9xv.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%2Fce7huhw25f070mmdd9xv.png" alt="A flashcard with the common sentence chunk " width="800" height="1796"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Integrated dictionary
&lt;/h3&gt;

&lt;p&gt;Throughout the app, you can long press any word to see a translation of that word, and save it to one of your flashcards if you wish.&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%2Fwqi1iagfh28gu7aw629u.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%2Fwqi1iagfh28gu7aw629u.png" alt="Dictionary translation of the word " width="800" height="1796"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I started this project thinking of just building the AI chat feature with integrated corrections. But as I've built out more features, I've found that's what I use the least.&lt;/p&gt;

&lt;p&gt;Having a huge collection of flashcards and the ability to easily create my own collection has helped a ton. Im using this every day and constantly adding new words to my decks. (Today I added Rohre and Röhren, which means pipes and tubes, or was it tubes and pipes? Definitely going to mix those up...)&lt;/p&gt;

&lt;p&gt;In the last 30 days it has cost me $2.10 for AI usage. Not bad in comparison to what I'd pay for a Duolingo, Anki, or Memrise subscription.&lt;/p&gt;

&lt;p&gt;There are few more features I'd like to add or improve but so far I'm psyched about it.&lt;/p&gt;

&lt;p&gt;I've also spent more time building it than using it so far, so... Wir werden mal sehen ob es wirklich hilft!&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
