Activation Layer Logo
← Back to blog

Published on Thu Apr 09 2026 12:00:00 GMT+0000 (Coordinated Universal Time) by Ryan Williams

I was an unusual kid. I loved Napoleon Dynamite and Spyro the Dragon and LOST and all the other hopelessly millennial-coded media that is the subject of ten thousand nostalgic TikToks. But I also had this bizarre, but durable, fascination with Russian literature. I knew, with the bone-deep certainty that only teenagers have about things they haven’t tried yet, that I would learn Russian so I could read the originals.

I did learn Russian. Quite a lot of it, actually. I studied in Moscow twice — first in the summer of 2014.

That July, Malaysia Airlines Flight MH17 was shot down over eastern Ukraine. I remember the strange days that followed: our university chaperones quietly working through the relative merits of sending us home versus keeping us in Moscow in the middle of an unprecedented diplomatic situation. We stayed. A few weeks later we visited Yasnaya Polyana — Tolstoy’s estate — and I stood in the room where he wrote Anna Karenina and thought, with the reverence of a twenty-year-old who has read a lot of Constance Garnett, that I would come back here someday.

I don’t think I will. The years since 2014 (and my work with organizations disfavored by the Russian government) have closed that door. I will probably never be back in the country. I will never get to show the people I love my favorite places in Moscow — the winding streets behind Arbat, the statue garden across the street from Gorky park, late afternoon in sparrow hills. What remains accessible to me is the language and its literature. Those don’t need a visa.

So I read. I took Russian courses. I read large chunks of War and Peace, Anna Karenina, Chekhov, Gogol, Akhmatova — in Russian, with a dictionary open. It was gratifying in the specific way that difficult things are gratifying. But I never finished one of the “big ones” cover-to-cover. Life intervened. My Russian atrophied. The dictionary collects dust. But the wonder lingers and the itch remains: I want to finish one in Russian!

What prevents me from making progress?

Vocabulary is solvable — you look up a word, you write it down, eventually it sticks. The deeper problem is morphology. Russian words shapeshift. A noun looks different depending on whether it’s the subject of a sentence, the object, the thing being addressed, the thing something is moving toward, or the thing something is resting on. There are six cases and each one bends the word into a different form. If you’re reading at the edge of your ability, this means you encounter a word you technically know but can’t parse in context, because its ending has changed and you can’t tell what it’s doing in the sentence. And somewhere in between looking up the right conjugation and consulting your flashcards the narrative dissolves and you’re no longer reading Tolstoy.

I used to be able to power through this. In grad school I could sit down in the evening and read Russian for two, three hours. I’d lose the thread and find it again. I had the patience for it, or maybe just the right kind of stubbornness. I don’t know when exactly I lost that, but its absence bothers me. The attentional texture of 2026 has made that kind of sustained engagement feel archaeological. A practice from a previous edition of my own life.

So there are really two problems. The linguistic one, which is technical and specific. And the attentional one, which is personal and diffuse. And for a long time I thought about them separately.


The question that got me started wasn’t “how do I build a language learning app.” It was something more like: what would it mean for a text to be aware of your confusion? A physical book can’t afford this awareness. The words just sit there, beautiful and inert. A dictionary is a blunt instrument. You leave the text, find the word, parse the entry, go back, relocate your place, try to reconstruct the sentence. Every lookup is a small interruption, and interruptions compound.

What if the text itself could show you its own grammar? A quiet visual layer underneath the words you’re already reading, making the structure of each sentence visible without demanding that you stop and decode it.

That’s what Anna does. You open a chapter of Anna Karenina and the text is there — the same text, Tolstoy’s words, nothing added or simplified. But each word carries a faint color that tells you its grammatical case. Nominative is one hue, accusative another, dative another. I can read, and the colors sit at the periphery of my attention.

Tap a word and it opens up. You see the lemma — the dictionary form — and the full morphological analysis. Part of speech, case, gender, number, aspect. The engine that produces this isn’t trivial: two independent Russian NLP models analyze each sentence, one for context-aware tagging and one for the full spectrum of possible parses, and the smarter model’s answer gets promoted to the top. Below that, stress marks drawn from an open dictionary of Russian inflected forms, because knowing where the stress falls is half the battle of reading aloud in your head.

Anna — the opening lines of Anna Karenina with morphological case coloring and a word detail popup for "бывшею"


Here is a true thing about this project: ten years ago I couldn’t have built it. I mean that almost literally. The NLP models that make context-aware case tagging possible for Russian barely existed in usable open-source form in 2016. The frontend frameworks that make a responsive, theme-able, static reading experience trivial to deploy were less mature. The whole pipeline — fetch the novel text, split it into 239 chapters, run dual-engine morphological analysis, attach stress marks from a dictionary, export everything as JSON, render it as a static site on Cloudflare — would have been a serious engineering effort requiring either a team or a grant or both.

I built a working prototype over the course of a single AI coding agent session conducted on my iPhone while out for an evening run. The novel text is public domain. The NLP models are open source. The dictionary data is community-maintained. The hosting is free-tier.

This is the thing I keep thinking about. The cost of building a bespoke reading tool for a single book has collapsed. A tool shaped precisely around one person’s relationship with one text. The economics of software used to make this absurd. You wouldn’t build a house to read one book in. But the lumber is cheap now, and the house goes up fast, and the book is Anna Karenina, and you’ve been carrying it around for twelve years.

We’re entering a period where individuals can build singular tools around specific cultural objects — a particular novel, a composer’s catalogue, a filmmaker’s body of work — designed to reduce exactly the barriers that keep people on the outside. The difficulty of reading Tolstoy in Russian is different from the difficulty of hearing what’s happening in a late Beethoven quartet, which is different from the difficulty of following the visual grammar of Ozu. Generic tools — dictionaries, textbooks, explainer videos — address generic problems. But the barriers that actually stop you are almost always particular, shaped by the intersection of this work and the shape of your specific ignorance.

A tool built for that intersection has a strange property: if it’s working, it should eventually disappear.

The case colors in Anna are training wheels. Right now, when I read Part One, I lean on them — they’re information, they’re telling me something I don’t yet know. But three hundred pages from now, if the tool has done its job, I will reach for its help less often. I built around this expectation: the UI has a slider that removes the grammatical annotation based on how frequent a word is used in the book.

I wonder what else could work this way. What if someone who loved late Coltrane built a listening tool that made the harmonic structure visible, and the tool got quieter as your ear got sharper? What if someone built scaffolding around The Phenomenology of Spirit that made Hegel’s sentence structure navigable, and the scaffolding dissolved as you internalized his rhythm? What if many difficult, beautiful, important things that people bounce off of — not because they lack the capacity to appreciate it, but because the entry cost is too high — had someone who loved it enough to build the way in?


I’m reading Anna Karenina in Russian. The goal is to finish by December 31, 2026 — or, if I’m feeling ambitious, by September 9, which is Tolstoy’s birthday. I have a tool that makes the grammar visible, a plan that starts slow, and approximately 350,000 words of Tolstoy ahead of me.

The tool is called Anna. You can try it at anna.activationlayer.org. Tap a word.

Written by Ryan Williams

← Back to blog