All work

Chrome extension

Anki → Migaku Sync

One-click sync of Anki review progress into Migaku, for language learners who use both. 200+ users.

Role
Solo, design to release
Status
Live on the Chrome Web Store, 200+ users
Stack
JavaScript, Chrome Extension MV3, AnkiConnect API, Firebase
Links
Chrome Web Store

The problem

Plenty of language learners review vocabulary in Anki and read or watch in Migaku. Migaku tracks which words you know, so it can highlight the new ones, but it can’t see the years of progress sitting in your Anki decks. Getting it across meant marking words by hand, thousands of them.

Migaku has no public API for this. The only way in was the one its own app uses.

Mapping a private protocol

I used LLMs to work through Migaku’s obfuscated JavaScript, then confirmed what I found against its network traffic until I had the whole sync protocol mapped:

How it works

The extension reads your cards through AnkiConnect and decides each word’s status from its review history: KNOWN once its interval reaches 21 days, LEARNING before that. It then pushes them to Migaku in batches of 2,000. One click, and a word list that took years to build is there.

Built for the failure cases

Syncing into a service you don’t control means it has to cope when things go wrong, without damaging anyone’s data:

It’s on the Chrome Web Store and used by more than 200 people.

Next projectHowi