WordPecker: Open-Source Personalized Duolingo

5 points by arbayi 19 hours ago

Hello HN!

6 months ago I shared my project here (https://news.ycombinator.com/item?id=42770200) and got some really helpful feedback. Life got in the way and I couldn't work on it much, but now my friend and I are hoping to make a mobile version to earn some side income. Since this is basically a GPT wrapper, I thought I should clean up the open source version first.

Looking back at my code after 6 months was embarrassing. The backend was a complete mess and really hard to set up. I had authentication which made no sense for an open source project, so I removed that and I also switched to MongoDB for DB. I also wanted to try OpenAI's new Agent SDK in TypeScript, which helped me organize backend code better.

Then I tackled what I think was the main problem - the app didn't help people discover new words at all. Users had to create all the lists themselves and manually add every single word. I added some template lists to help people get started, but I realized that wouldn't work for everyone.

I saw this Google experiment called "Say What You See" By Jack Wild where people look at AI images and try to guess the prompt. I thought maybe this could work for language learning. So I tried making something I call "Vision Garden" - users pick a context, look at images, describe what they see, and the app tries to suggest vocabulary words they might not know. Then they can add those words to their lists if they want.

I also added a simple "Get New Words" feature where users pick a topic and difficulty level, and the app shows them words and asks if they know them. If they don't, it tries to explain with examples and images.

Each word now has its own page where users can see examples, find similar words, and generate images. For practice, I added multiple exercise types - multiple choice, fill-in-the-blank, matching, true/false, and sentence completion. Users can configure which types they want in their settings. Since it was asked for different languages before, I tried to make it so users can learn any language using any language as their base.

While experimenting with OpenAI's Agent SDK, I noticed it was so easy to add voice features. Now users can talk to the app about their vocabulary. The voice agent knows what they're learning and tries to help with pronunciation. It can even add new words to their lists during conversation. I also added ElevenLabs for audio pronunciation. There's also a "Light Reading" feature that tries to generate reading passages using words from the user's lists, so they can see their vocabulary in context.

I know it's still just a wrapper around existing AI tools, but I'm hoping it might be useful for some people who want to learn vocabulary in a more interactive way. I wished there was a way to simply host this version and people can use it with their ChatGPT subscription, until I figure a way, the easiest way to try the app is cloning the repository and running with OpenAI API Key. Next steps I'm planning is to support other LLMs, it's already available in the code thanks to OpenAI Agent SDK but I need to make it more clear and I also want to make this app fully free using local solutions.

I'd love to hear some suggestions, criticisms. I really wish people to use this app, host on their own machines, use on their mobile or create their own versions. Vocabulary is hard, and I have this problem and I really want to have a solution for it :)

The repository is here: https://github.com/baturyilmaz/wordpecker-app

The demo is here: https://www.youtube.com/watch?v=jS8r7J65fXY