Inspiration
We believe that language is the most powerful bridge to understanding other cultures. Our team built Little Language Learner (LLL) to make language acquisition an accessible, immersive, and everyday experience. We want to transform a user's daily browsing into a seamless learning opportunity, opening the door to new worlds and the millions of people who inhabit them.
What it does
Little Language Learner (LLL) is a browser extension that transforms your daily web browsing into a dynamic language lesson. It intelligently translates parts of any webpage into the language you're learning, based on your skill level.
Getting started is simple: -Choose your language (from 60+ supported options). -Select your CEFR difficulty level. -Decide on the translation frequency (how much of the page you want to see translated).
LLL handles the rest. As you browse, you'll see a mix of your native language and your target language. If you're ever unsure, just hover over a translated word to see its original definition and meaning.
How we built it
LLL is a browser extension built primarily with JavaScript. To meet our demanding performance goals, we integrated C++ and compiled to WebAssembly (Wasm).
The core logic resides in the content script injected into each page. Here’s the technical flow:
- The script first parses all text elements from the website's DOM.
- It intelligently filters these elements down to complete, meaningful sentences.
- Sentences are passed to the background worker. This is where our WebAssembly module shines: it instantly classifies the CEFR difficulty of each sentence against a 100k-word database.
- Sentences matching the user's selected difficulty are sent to translation through Anthropic's Claude Sonnet.
- Once received, the translations are dynamically inserted back into the webpage, replacing the original text.
Challenges we ran into
Our two biggest challenges were performance and precision.
Modern websites are incredibly complex, with thousands of individual text nodes. Parsing and filtering this content in a non-standardized DOM to accurately identify complete sentences—all without slowing down the user's browsing—was a significant engineering hurdle.
Our goal is near-instant translation. However, our reliance on a comprehensive AI prompt (which handles both translation and definitions) to ensure quality also introduced latency. Balancing the richness of the AI's output with the need for speed was a constant trade-off.
Accomplishments that we're proud of
Analyzing thousands of words against a 100k-entry database in JavaScript would have crippled performance. We solved this by implementing Bloom filters in C++ and compiling them to WebAssembly. This allows the extension to classify the difficulty of every sentence on a page almost instantaneously, eliminating this process as a performance bottleneck.
We architected LLL for global reach. Our system is designed so that adding a new language is trivial, often taking just seconds. This design enabled us to launch with support for over 60 languages at submission time.
What we learned
Our team gained hands-on experience in: -Building complex, multi-component browser extensions. -Integrating C++ with JavaScript using WebAssembly for performance-critical tasks. -Implementing advanced data structures like Bloom filters to solve optimization problems. -Leveraging modern AI APIs for complex linguistic tasks.
What's next for Little Language Learner
Our top priority is to make LLL even faster. We plan to:
Implement a Caching Layer: By building our own self-hosted database, we can cache common translations. This will dramatically reduce API calls, cutting both latency and cost.
Optimize Prompts: By hosting definitions in our own database, we can significantly shorten our AI prompts, leading to faster responses from the model.
We also have a backlog of features to make LLL an even more powerful learning tool: -An audio pronunciation button for translated words. -Language-specific helpers, such as Pinyin for Chinese or gendered nouns for Romance languages. -Smarter difficulty detection that analyzes grammar and sentence structure, not just individual words.

Log in or sign up for Devpost to join the conversation.