Inspiration

The inspiration for Soma came from a personal failure. I tried learning Korean and took the "all-or-nothing" approach: I changed my phone's entire language setting to Korean. The result? I was completely overwhelmed. I couldn't understand a thing, felt frustrated, and quit within a week.

This experience taught me that traditional learning is a chore, and full immersion can be a shock. I realized there had to be a middle ground—a way to be gradually and comfortably immersed in a language without "drowning."

What it does

Soma is an AI-powered Chrome extension that makes language learning effortless by transforming every webpage you visit into a personalized, interactive classroom.

Here’s how it works:

You Set YourPace: You tell Soma the language you want to learn and your current skill level (Beginner, Intermediate, or Advanced).

It Transforms Your Web: As you browse any website, Soma’s AI intelligently scans the text. Based on your difficulty level, it replaces a select number of words with their translated counterparts. A beginner might see 10 basic words replaced, while an advanced user might see 40 complex, high-value words.

You Learn in Context: When you hover over a translated word, a tooltip appears showing you the original word, a button to hear the correct pronunciation, and an example of that word in a different sentence. This ensures you learn the word's meaning and usage, not just its translation.

It Learns With You: Soma saves words you seem to struggle with (e.g., words you hover over often) and will intelligently re-introduce them in future browsing sessions, creating a natural, spaced-repetition system.

Best of all, this entire process runs 100% offline, protecting your privacy and ensuring it's always fast.

How we built it

Soma is built entirely on the new on-device AI capabilities within Google Chrome, making it fast and private.

Prompt API (The "BRAIN"): This is the core of Soma's intelligence. We use the promptAPI to analyze the content of a webpage. Based on the user's difficulty setting, we send a prompt to the model asking it to identify and select the most appropriate words to replace (e.g., "Select 20 intermediate-level nouns and verbs from this text").

Translator API: Once the promptAPI selects the words, we pass them to the on-device translator API to get an instant, offline translation.

SpeechSynthesis API: We use this standard web API to power the "listen to pronunciation" button on the hover tooltip.

Chrome Extension APIs: We use standard extension features, like chrome.storage, to save the user's settings and their list of difficult words.

Challenges we ran into

Our biggest challenge was twofold. First, as first-time extension developers, we had a steep learning curve just understanding how content scripts, background workers, and popups communicate.

Second, we ran into a significant technical hurdle: the presence of the LanguageModel class wasn't deterministic. At times, we would open Chrome, and our extension would fail with a "LanguageModel is undefined" error. Debugging an API that isn't always available was tricky and forced us to build more robust code that checks for the model's availability before attempting to use it.

Accomplishments that we're proud of

Getting the full loop to run successfully was a massive accomplishment that really motivated us. Seeing our code use the promptAPI to choose a word on a live website, have the translator API swap it, and then have our custom tooltip appear with a working pronunciation button was the "Aha!" moment that proved our idea was not just possible, but powerful.

What we learned

We learned that on-device Chrome AI is the next big thing. The ability to run sophisticated models securely and privately, with no server costs or network latency, is a game-changer. It unlocks a new class of tools that can solve a tonne of user problems "cheaply"—free for the user and with no privacy trade-off.

What's next for Soma

Currently, Soma is a powerful, passive learning tool. The next step is to build a full backend to make it an active learning companion. We plan to implement user accounts to sync progress across devices and introduce new features like daily challenges, gamified leaderboards, and quizzes based on the words you've saved.

Built With

Share this project:

Updates