Building a Writing Assistant for the Celtic Languages
English has widely used spelling and grammar tools. Irish and the other Celtic languages have far fewer, and their spelling changes often depend on the surrounding words rather than a dictionary lookup alone.
The blas. writing assistant is our answer: a checker for the six Celtic languages plus English, running in the browser, where you already write. This is the honest version of that build — how it works, what it does, and where it fails.
Why a Celtic language needs its own checker
An English checker fails an Irish sentence in two ways at once. It does not know the words, and it does not know which mistakes are even possible here.
- Mutations change the spelling of a correct word. In Irish, an bean becomes an bhean; in Welsh, y merch becomes y ferch. A spellchecker cannot flag a form that is correct in one place and wrong in another. Only a rule about the word before it can.
- Context carries the grammar. The Irish copula versus tá, genitive case and noun-adjective agreement live between neighbouring words, not inside any single word.
- Orthography has its own traps. The fada in Irish and the circumflex in Welsh are not decoration, and apostrophes, hyphens and contractions follow their own rules.
- Dialect is not error. Ulster, Connacht and Munster Irish differ; Welsh formal and colloquial registers differ; Cornish and Manx have competing revival orthographies. Call one variety truth and you will flag correct writing all day.
That is why this is not a generic spellchecker with extra word lists bolted on. Every language gets its own rules and its own data.
What happens while you type
The extension checks the field you are typing in — a text area, a plain input or a rich-text editor — not the page around it. The check itself makes no network request.
| Stage | What it does |
|---|---|
| Find the field | The content script recognises text areas, ordinary inputs and contenteditable editors, and skips password, payment, security-code and read-only fields. Checking runs about 350 milliseconds after you stop typing. |
| Look the words up | Each language ships a packaged lexicon of inflected forms. Irish carries roughly 196,000 of them, built from our own vocabulary, conjugation and declension data plus the BuNaMo morphology database. |
| Run the rules | A per-language rule pack covers mutations after triggers, case and agreement, the copula, a bounded set of English-shaped Irish phrases, and shared typography, punctuation and capitalisation checks. |
| Gate, then draw | Every candidate gets a confidence and a lane before anything reaches your screen: a wavy underline in the field, and a popover with the suggested fix and a short explanation of the rule behind it. |
In the popover you get Accept, Dismiss and Add word, which keeps a term in a personal dictionary inside the browser. The review panel works across a longer message: batch accept where the language allows it, plus dismiss, undo and redo. In rich-text editors corrections go through the editor's own input events, not pasted markup, so the correction stays undoable.
Confidence, and what the checker is allowed to say
Every rule carries one number, and it means one thing: how often that rule has been right when it fired on our labelled samples. We used to ask it to be two things at once — a rule that is right but should not shout got a false probability to keep it quiet. Confidence and visibility are now separate.
The thresholds are deliberately boring. At standard strictness, nothing below 0.5 gets underlined; at relaxed, nothing below 0.7. You can ask to see more; the default is not to.
Two consequences worth stating plainly. Batch accept is switched off for the Celtic languages: no Celtic rule has earned the 0.9 confidence we require before applying many changes at once, so there you accept corrections one at a time.
How it was built
The data came before the interface. Each shipped lexicon is generated by a build script from published sources, and the licence is recorded beside the file: our own curriculum vocabulary and morphology, plus open-licensed third-party data — BuNaMo from Foras na Gaeilge for Irish, Wiktionary-derived Kaikki and Apertium data for the rest. The dictionaries we tell learners to trust, Foclóir.ie and Teanglann.ie and the Geiriadur Prifysgol Cymru, are what that data is built on.
Three kinds of evidence shape what actually ships:
- Labelled rule tests. Each rule is run against hand-labelled examples, and the resulting true-positive rate becomes its confidence. Changing a threshold is a measurement, not a preference.
- Clean text that should stay silent. Openly licensed corpora — Tatoeba sentences in all six Celtic languages, Common Voice transcripts and public-domain text — are pushed through the checker looking for things it wrongly flags. A rule that fires on clean writing gets narrowed.
- Real browser runs. Accept, Undo and dismissal are verified in real sessions — Chrome, Firefox and Safari on macOS — on the pages people write in, and the failures found there become regression tests.
Those are release gates, and they are currently failing. Passing a browser test does not make a language accurate.
What is learned, and what actually ships
Shipped passive checking is rules and dictionaries running inside the extension. The only learned component in the package is a small English dependency parser, bundled locally and hash-pinned, for English alone.
Everything neural for the Celtic languages is research, not runtime. The build compiles the neural grammar candidates and the shared Kotlin engine out of the extension entirely — a build-time decision, not a switch in Settings.
Optional cloud Deep Review is English-only and requires a linked Premium account. It sends the English text you choose only after you grant the current consent and explicitly request a review; you can disable it or withdraw consent in Settings. Its contract prohibits storing raw text or using it for training. Provider availability is separate from local checking, so the extension reports an unavailable review rather than inventing a result.
Passive checking stays on your device and does not train a model on your writing. Optional cloud review has a separate no-storage and no-training contract; saving words and account sync are separate network actions. No Celtic neural model has cleared our review bar, so none runs in the shipped extension, and we claim no validation by human language reviewers. Our evidence comes from published dictionaries and corpora, labelled tests and clean-text screening.
What stays on your machine
Checking needs no sign-in and no connection. The rule data ships inside the extension and the checks run in its background worker.
The account boundary is a separate door you choose to open. Linking an account stores only a scoped, revocable token in the browser, and lets you save words into your blas. library and sync ignored suggestions between devices. Anonymous analytics is a separate opt-in and reports counts, not text. The itemised list is in the privacy policy.
Where it is weak
Seven languages are selectable — English plus the six Celtic languages — and they are not equally covered. Irish and Welsh have the deepest rule sets; Scottish Gaelic, Manx, Cornish and Breton ship a narrower grammar-v1 pack, so the same sentence yields fewer findings there.
The accuracy gates live in the repository, and as of this post they do not pass. On the current harness, paragraph-level checking is correct for one language in six (61 of 64 expected rules, 42 of 49 expected suggestions), and the source-bound gold check passes 579 of 720 cases with every language below its release floor. Those are our own numbers on our own material, and they are why we describe the checker as incomplete rather than done.
- Google Docs is review-and-copy: it checks the document text and lets you copy a corrected version, but does not write changes back into the document.
- It is not a translator. Side-by-side translation is learning support, not a translation product.
- Availability differs by browser, and none of it is a promise. Chrome and Firefox are the shipping path. The Safari extension for Mac has a build approved for distribution; the iPad build has not finished verification and is not released, so assume nothing there.
Try the real thing
The writing assistant page has an editable Irish and Welsh mutation demo. It runs the website's local rule checker, not a scripted reply or the extension's complete checking pipeline. The page also shows browser installation options. The research pages and the dictionary are where the sources live.
Frequently asked questions
Does the extension read everything I type?
Only the field you are actively using, and only after you pause. Password, payment, security-code and read-only fields are never checked, passive checking makes no network request, and each feature that does transmit something is a separate choice you have to make.
Which languages can I check?
English plus Irish, Welsh, Scottish Gaelic, Manx, Cornish and Breton are selectable. Irish and Welsh have the deepest rule coverage; the other four ship a narrower grammar-v1 pack, so the same action finds less in them.
Is the grammar checking AI?
The shipped checking is rules and dictionaries running inside the extension, plus a small local parser for English. Neural Celtic grammar models remain research and are compiled out of the shipped build. Optional English cloud Deep Review requires a linked Premium account, current consent and an explicit request; it is not part of passive checking.
Can I trust it over a dictionary?
No. It is a conservative assistant, not an authority. For anything you publish, cross-check against teanglann.ie or focloir.ie for Irish, geiriadur.ac.uk for Welsh, or the equivalent published source for the other four languages.
Editorial notes
- Review methodology
- Written by the developer of the extension and checked line by line against the code and evidence that ship with it: chromeExtension/README.md for shipped behaviour, docs/grammar-extension-launch-standard.md for the accuracy gates, and the privacy policy for the data boundary. Every number in this post is transcribed from those repository files and is recorded as of 1 October 2026, including the gates that currently fail. No external or native-speaker review was performed, and none is claimed.
Put it where you already write
Try local Irish and Welsh mutation checks in the editable demo, then install the extension for its broader language-specific writing checks.
Keep reading
The 6 Celtic Languages and How They Compare
Irish, Welsh, Scottish Gaelic, Breton, Cornish, and Manx: speaker numbers, the Goidelic and Brythonic split, mutual intelligibility, and what sets each apart.
blas. App Review 2026: What It Does and Doesn't Do
An honest review of blas., the Celtic language app for Irish, Welsh, Scottish Gaelic, Breton, Cornish, and Manx. What it covers, what it doesn't, who it's built for, and whether it's worth your time.
Irish Mutations Explained: Séimhiú and Urú
How Irish initial mutations work: when to use séimhiú (lenition) vs urú (eclipsis), which numbers and words trigger each, and how to pronounce them.