demo · v141

Writing Quality Dashboard

Run three different document types — email, product description, support ticket — through the Proofreader API simultaneously. Each panel shows original vs corrected text side-by-side, issue severity badges, and per-category counts. Falls back to a heuristic proofreader when the API is unavailable.

Origin trial Enable chrome://flags/#proofreader-api-for-gemini-nano and download the on-device model via chrome://components. The heuristic fallback runs in all browsers — it catches passive voice, repeated words, and overly long sentences.
probing Proofreader API…

Email draft

ready

Original

Corrected

(press "Proofread all three" to see corrections)

Product description

ready

Original

Corrected

(press "Proofread all three" to see corrections)

Support ticket

ready

Original

Corrected

(press "Proofread all three" to see corrections)

the call

// Feature detection
const apiAvailable = 'Proofreader' in window ||
  ('ai' in window && 'proofreader' in window.ai);

// Create a reusable proofreader instance
const proof = await Proofreader.create({
  expectedInputLanguages: ["en"],
  correctionExplanationLanguage: "en",
});

// Proofread a document
const result = await proof.proofread(text);
console.log(result.correctedInput);          // corrected full text
for (const c of result.corrections) {
  // c.startIndex, c.endIndex — span in the original string
  // c.correction — replacement text
  // c.type — "spelling" | "grammar" | "style" | etc.
}

// Reuse the same instance across multiple calls —
// avoid re-creating it per keystroke (model warm-up cost)

see also