Грамота — Russian proofreading, on your device
Check and correct Russian text right on your phone. Completely offline. Nothing is sent to a server, everything stays on your device.
You speak fluently, but cases and one-word-vs-two-word spelling trip you up, because you never studied the language in school. Gramota surfaces exactly the rules that everyday conversation leaves out.
Emails, documents, posts: where a typo or a misplaced comma costs you credibility. A fast check without sending your text anywhere.
You see not just the fix, but which rule was broken, so you actually remember it, instead of just accepting the answer.
A separate, more powerful model reads your text sentence by sentence and catches what the regular check misses: badly garbled words, rare punctuation, unusual phrasing. One-time download, then it runs offline like everything else.
Paste or type your text: Gramota finds spelling, punctuation, and grammar mistakes and shows the corrected version right away.
Every fix is shown as a “before → after,” not just rewritten text, so you can see what changed and why.
Every check gets a score from 0 to 100 and a short verdict — “Excellent,” “Good,” “Room to improve” — so you know how ready your text is before you send it.
Every check is saved so you can spot recurring mistakes and watch your writing grow more confident over time. History syncs across iPhone, iPad, and Mac via iCloud.
With the system “Share → Gramota” shortcut, send text from Notes, Mail, or a messenger straight into a check, no copying, no switching apps.
The model runs directly on your device. Your text never leaves the phone, is never sent to a server, and works without internet — on a plane, on the subway, anywhere.
Gramota was built by one person: Andrey Troegubov, a product manager without a formal engineering background, working with AI coding agents. The idea showed up when Apple Intelligence shipped without Russian in late 2024; the serious build ran through 2026, and the app reached the App Store that summer. This is the engineering part of the story, with the real numbers, including the embarrassing ones.
Russian spelling deliberately ignores pronunciation. Unstressed «о» sounds like «а» («молоко» is heard as «малако»), voiced consonants go quiet at the ends of words, and «-тся»/«-ться» are exact homophones told apart only by grammar. A proofreader has to recover the written form from what the writer heard, which is precisely the direction the ear can't check.
Neural models read text as subword chunks, not words. Change a single letter by ear and the whole word re-splits into different chunks: the model doesn't see the same word with one mistake, it sees an unfamiliar word. Russian makes it worse, because meaning sits in the endings, exactly where compression and small models lose precision first.
On real-world text, professional annotators don't agree with each other at anywhere near 99%: many sentences have several defensible corrections. A quality target above that noise floor isn't ambitious, it's undefined. The number that can and must approach 99% is a different one: never damaging text that was already correct.
No servers means the model lives inside a phone's memory and thermal envelope. The first attempt, an 8-billion-parameter model, ran but never left RAM: iPadOS simply wouldn't release it. Every architecture decision since was made against that wall.
The 8-billion-parameter model died on memory. A Russian-adapted 3B model died on quality. An 82-million-parameter model designed from scratch died on capacity: it worked up to a ceiling, then hallucinated on rare word forms. The hard call was to gamble on a pretrained 820M Russian model that scored 0% out of the box. That sounds disqualifying until you understand why: it had been trained to reconstruct masked text, and nobody had ever asked it to fix a sentence. Under the noise, it clearly knew correct Russian. Fine-tuned, it became the first working engine, at 85% on the product benchmark. With one catch.
The catch: the generative engine took about 2,160 ms per sentence, because generating text means one full decoder pass per output token. The fix was architectural. Instead of rewriting the sentence, the model classifies every word into an edit (keep it, delete it, change its case, fix a specific letter) and deterministic code applies the edits. That shape of network is exactly what Apple's Neural Engine runs natively: 246 million parameters, 99.7% of operations on the ANE, about 17 ms per sentence, roughly 130× faster.
It also structurally can't paraphrase you: edits come from a fixed menu, and rewriting isn't on it. The new engine had already pulled ahead on the benchmarks; the final check was a head-to-head on a fresh 212-word text neither engine had seen. It made 13 corrections, all 13 good. The generative one made 21, three of them bad, including one that changed a sentence's meaning. That confirmed the pick, and the old engine's 800 MB left the app.
The most valuable fix in the project wasn't a model change. The evaluation set steering the training loop was periodically rebuilt from the same data the model trained on, so its scores measured memorization, not skill: one category read 22.6% when the honest number was 4.4%. The cure was boring: a frozen benchmark that is never trained on, plus a quarantined slice of every round's fresh data.
The same discipline kept paying. Computing the theoretical ceiling (46.2% for that architecture) exposed a bug nobody suspected: 38.9% of correct answers couldn't be reproduced by the code that reassembles text from edits. And multiplying probabilities along the "self-improving" loop showed the model was seeing about 16 of the 1,400 targeted examples generated each round. The loop was decorative, and nobody had done the multiplication. All of it is now automated checks that run after every training round, because two regressions once rode along for 49 rounds while I watched a dashboard.
Honest measurement delivered its first insult quickly: the model was editing 41% of sentences that had no errors at all, because every training sentence contained mistakes and the model had learned that text is always broken. About a third of training became clean-to-clean pairs: if a model must sometimes do nothing, doing nothing has to be a trained skill.
Everything downstream is built around precision, because a wrong correction damages your text while a missed one just leaves it as you wrote it. The spelling layer acts only when three conditions line up at once: the word is unknown to a 422,000-form dictionary, the repair matches a mechanism real typos actually have (a by-ear substitution or an adjacent-key slip), and the fix is at least 10× more frequent than the runner-up. False fires on live informal text went from 16.7% to 0.5%.
I don't have an engineering degree, and I've never held an engineering title. The code was written with AI coding agents, and I'd rather say that plainly than let this page imply otherwise. The interesting question is what's left for the human once the typing is free.
Agents produce real fixes and convincing nonsense at the same speed and with the same confidence. One AI-generated test report arrived with tables, counts, and specific "missed corrections": replayed against the actual pipeline, some of its corrections appear in no version of the test text at all. So the human job was to pick the quality bar, design evaluations that can't be cheated, gate the entire Swift rewrite behind byte-exact reference checks (tokenizer 199/199, full pipeline 149/150), and make the calls: pivot the architecture, kill three models, delete the fallback, say no to 99%. That's a product manager's job, executed at engineering depth.
The roadmap is platform-honest: each platform gets what its hardware and habits actually support, not a copy of the other one's app.
The tagging engine stays: on a phone, 17 ms and near-zero false fires beat any amount of extra capability. What's coming on top of it is the Tutor. The app already knows which rules you personally break, so it can turn your own corrected sentences into exercises and space the repetition until the rule sticks. The engine is built and verified (1,120 of 1,120 generated exercises agree with the corrector); what remains is product polish, and it ships on its own timeline.
The privacy rule doesn't move: the Tutor learns from when you accept or undo corrections, never by sending your text anywhere.
Mac apps that grow out of iOS are usually afterthoughts: the same screens on a bigger monitor. That wastes the one thing the Mac actually offers, which is headroom. It has several times a phone's memory and no battery anxiety at a desk, so it can hold a class of model the phone never will.
That's the current research track: a much larger model for the Mac, still running entirely on-device, that goes beyond a fixed menu of edits, toward explaining corrections and rewriting for tone. The tagger keeps the precision work it's structurally best at. The rule stays the same as day one: everything runs on the machine, and nothing leaves it.
«Научиться» answers the question «что сделать?», so it takes the soft sign.
If this section reads like a portfolio piece, that's because it is one. More about me, other work, and how to reach me: troegubov.co.
Gramota is available for iPhone, iPad, and Mac. Download the app and start checking Russian text right on your device — free and offline.