Consumer Productivity, Mobile Writing ToolsOct 2026

Lexora: Building a Private, Offline Writing Keyboard for Android

Most writing assistants rely on cloud processing, which creates privacy concerns, network dependency, and delays during typing. I wanted to build a writing tool that could help people improve grammar, spelling, clarity, and tone directly inside the apps they already use, without requiring an account or sending their text to a server.

Technologies

Flutter · Dart · Kotlin · Android Input Method Editor · Riverpod · SQLite · Shared Preferences · Flutter Isolates · MethodChannel · GoRouter · Google Play Billing · Android ACTION_PROCESS_TEXT

01

Problem

What had to be solved.

Most writing assistants rely on cloud processing, which creates privacy concerns, network dependency, and delays during typing. I wanted to build a writing tool that could help people improve grammar, spelling, clarity, and tone directly inside the apps they already use, without requiring an account or sending their text to a server.

The challenge was not only building a writing engine. The product also had to work as a keyboard people would genuinely choose to use every day.

02

My responsibility

What I owned.

I led the product and engineering work across the project, including product strategy, UX, Flutter application development, the on-device writing engine, Android keyboard integration, performance optimization, testing, visual design, and technical documentation.

03

Hard part

Where it got difficult.

The hardest part was balancing useful writing assistance with the constraints of a mobile keyboard.

Typing has an extremely low tolerance for latency. Analysis had to be fast enough to feel invisible, while the keyboard needed to provide familiar features such as glide typing, autocorrection, next-word suggestions, emoji support, cursor control, themes, and responsive key interactions.

I also had to make the privacy promise real at an architectural level. That meant no server for the writing engine, no account system, no background overlay, and no accessibility service.

04

What I built

The work that shipped.

I built Lexora as a Flutter application with a native Android input method.

The product includes:

- A custom Android keyboard with glide typing, autocorrect, next-word prediction, emoji search, themes, one-handed mode, and adjustable key settings

- An on-device writing engine for spelling, grammar, punctuation, clarity, concision, tone, readability, and language detection

- Context-aware writing actions such as Fix, Shorter, Friendly, Professional, Simplify, and Rewrite

- A compact suggestion strip above the keyboard, designed to show only the most relevant actions

- An editor for longer documents with individual, explainable suggestions and safe batch correction

- Android text-selection integration through ACTION_PROCESS_TEXT, allowing users to improve selected text and return it to the original app

- A compact lexicon optimized for mobile memory usage using UTF-8 byte storage and binary search

- A worker-isolate path for larger documents to keep the interface responsive

- Automated unit, widget, keyboard, integration, responsive, and performance tests

05

Result

What changed.

Lexora delivers writing assistance without relying on a network connection for its core features.

The writing engine is designed to handle message-sized content within a frame-budget-friendly window, while larger documents run outside the UI isolate. Performance tests track analysis, startup, rewriting, and artifact-size budgets so regressions are caught during development.

The finished product demonstrates that a writing assistant can be useful without collecting drafts, requiring a login, or placing a cloud round trip in the typing path.