most language apps bolt a chatbot onto a course. I did the opposite: there is no course - the model is the methodologist, and the app is just its hands.
Here's what that means concretely. Before it gives me anything, the tutor reads state: which curriculum phase I'm in, this week's plan, and a report of every skill where I score high on drills but never produce the pattern when I write freely. Then it picks what to focus on. That's a methodologist's loop - look at the learner, decide what's next - not a chatbot answering a prompt.
It also keeps its own gradebook. I write a journal entry in Swedish; it grades it, logs the errors, records a per-skill audit of what I used correctly vs. avoided, and updates two separate mastery scores - recognition and production. Then it recomputes what to teach next. I never touch any of that.
The mechanism that makes this possible is unglamorous: the Go app exposes every data-mutating operation as a tool - read the error bank, write a grade, advance the curriculum phase, leave a note about me in a tutor's notebook. ~45 of them. The Claude Agent SDK runs as a persistent process and calls those tools. Same tool-use loop that's behind Claude Code, here it's pointed at a SQLite database of one learner.
So the teaching method isn't in my code. It's a plain-text file the model loads every session - editable, no redeploy. The app is the system of record; the model does the pedagogy.
stack: Wails (Go + webview), Lit, local SQLite, Claude Agent SDK as a sidecar, MCP for the tools.
@hinterregherr@greentony я тебе больше скажу, жертвы европейской бюрократии это в первую очередь украинцы и твоё стремление им немного лизнуть - странноватое
Одна из основных причин, почему мы уехали - чтобы ребенку не потребовались такие пожертвования.
По возможности поддержите сбор Мемориала "Помогите подросткам-политзаключённым" раз уж тараканище никто не в силах остановить
https://t.co/qlHph0wWVo
Навальному сегодня исполнилось бы 50 лет. Если честно очень сложно подобрать правильные слова. И кажется, что все уже сказал
Он был надеждой для миллионов людей. При этом вот прямо здесь, живой, пишет реплаи в твиттере, шутит
Пиздец это все, до сих пор не верится, что все так
@coolgadgetru Go мой рабочий язык вместе с TypeScript.
Можно было все сделать на нем с Electron, все равно есть Node для AgenSDK, но так веселее.
А для Tauri нужен Rust с которым я не хочу вайбкодить
новые языки начинает учить то, кто не может перелезть через стену B->С. прогресс от нуля до B1–B2 ощущается быстрым, а от B2 к C1 кривая уплощается.
поэтому собрал свой протокол и навибрировал его в маленькое приложение