What it does
An Anki add-on that integrates the Janulus method into daily review by: Emphasizing pronunciation practice during card review Personalizing vocabulary based on user prompts Adding grammar flags to target specific structures for focused practice Supporting structured output exercises rather than passive recognition
How we built it
Built as a Python-based Anki add-on using Anki’s add-on API Integrated Google Gemini for sentence generation and vocabulary personalization Used Google Translate API for multilingual support Integrated Google Text-to-Speech and ElevenLabs for pronunciation audio Designed and enforced a clean architecture to separate generation, translation, audio, and Anki-layer concerns Built and optimized an asynchronous processing pipeline to handle API calls efficiently without blocking the Anki UI
Challenges we ran into
Optimizing the asynchronous pipeline while keeping the UI responsive Managing multiple external API calls (generation, translation, TTS) reliably Designing a clean architecture within Anki’s plugin constraints Avoiding tight coupling between AI services and the core review workflow Handling latency and failure cases gracefully
What we learned
Clean Architecture principles. A LOT about grammar.
What's next for Janulus.ai
Improving pronunciation feedback (not just playback) Expanding personalization and user grammar learning. Exploring deeper adaptive learning based on user performance
Built With
- clean-architecture
- eleven-labs-text-to-speech
- google-gemini
- google-translate
- google-web-speech-api
- python
- sqlite
Log in or sign up for Devpost to join the conversation.