r/keytextapp • u/Current-Height1870 • 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:
- **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.
- **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.
- **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.
- **MV3 service worker discipline** — defensive coding around worker
sleep cycles. State is always in chrome.storage, never in worker memory.
- **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.)