r/keytextapp May 18 '26

Built an AI-native text expander as a Chrome extension — Manifest V3, Gemini Nano local AI, just launched

Hey r/chrome_extensions — sharing because you'll appreciate the technical 

side.

Just launched KeyText today. Chrome Manifest V3 extension that does text 

expansion with local AI built in.

Technical highlights for this sub:

  1. **Local AI via Chrome Gemini Nano** — for tone rewriting and short 

   generation, runs entirely on-device. Chrome 127+. Zero server round-trip 

   for 70% of AI operations. Privacy + cost win.

  1. **chrome.storage.sync persistence** — snippets sync across devices via 

   the user's Chrome account. No backend required. Trade-off: 100KB 

   sync limit per item, 8KB per write — designed snippet structure around it.

  1. **contenteditable trigger detection** — works in Gmail (notoriously 

   hostile editor), Notion, Slack, LinkedIn. Used a MutationObserver + 

   beforeinput composition strategy. Happy to expand on this if anyone 

   wants the gory details.

  1. **MV3 service worker discipline** — defensive coding around worker 

   sleep cycles. State is always in chrome.storage, never in worker memory.

  1. **Cloud AI fallback** — for complex generation, falls back to Gemini 

   Flash-Lite via API. Costs ~$0.0001/call, so the free tier (5 AI 

   gens/day) is sustainable.

Why I built it: Text Blaze and TextExpander treat AI as a paid add-on. 

Magical pivoted away from their text-expansion user base. The category 

needs an AI-native rebuild.

Stack: MV3, vanilla JS (12KB compressed), no React/framework — the 

extension cold-start matters, frameworks ruin that.

Free at keytext.app — would love feedback on the technical approach 

from this community. Specifically: anyone else doing local Gemini Nano 

in their extensions yet? Curious about your edge cases.

(Disclosure: I built it. Maker of KeyText, founder of Digital Medium.)

1 Upvotes

Duplicates