Kirill Svavolia

Romanalia

A free Romanian grammar reference. 144 rules, six languages, one rule per page. Built in 2 days.

Romanalia

I noticed that most Romanian grammar content online was inconvenient or incomplete — scattered across forum posts and PDFs, half-finished, or hidden behind a signup.

It looked like something I could just fix, so I gave it 2 days.

The rule I set: one page per rule, with a stable URL.

The Shape

144 rules, A1 to C1, grouped into 14 families — verbs, nouns and articles, cases, negation, tricky pairs, and so on. Each rule is its own page: a short explanation, examples, a table when a table helps, links to related rules, and a five-question exercise at the end.

Rule page

The answers only reveal after all five questions. You can’t nudge your way to the right one.

Exercise

Six Languages

The site is translated into English, Romanian, Russian, German, French, and Turkish — all 144 rules in each. Most people learning Romanian aren’t learning it through English.

If a translation is missing, the page falls back to Romanian rather than breaking, and stays out of the index until the real translation exists.

Word Games

Three vocabulary games — hangman, word search, and crossword — that pull from separate A1, A2, B1, and B2 word pools.

Word games

How It’s Built

Content is JSON files in the repo, not a CMS. That’s what made 144 rules in six languages possible in two days — the content is generated and reviewed in bulk, not typed into an admin panel one page at a time.

Each article is validated with Zod before every build: schema, quiz shape, cross-references, and internal links. A broken link fails the build instead of shipping. At this volume that check matters more than the writing.

Pages are server-rendered with React Server Components. The full article and quiz text is in the HTML — React only handles search, filters, quiz navigation, and device-local progress. No account, no tracking, no paywall.

Status

Live and free. There are also 15 longer guides that walk a family of rules in order, for people who want a path rather than a lookup.

Small project, finished scope. I add rules when I find a gap.