Inspiration
Writing today happens everywhere — emails, documents, code editors, browsers — but improving text usually means switching apps, copy-pasting, and breaking focus. I wanted a system-wide assistant that works wherever you write, instantly.
That idea became OmniWrite: a one-click Flutter Butler that transforms text in place.
What it does
OmniWrite lets users select any text on their system and instantly:
- Fix grammar
- Rewrite content
- Change tone (formal, friendly, concise, etc.)
- Translate between languages
All without leaving the current app.
How I built it
OmniWrite is built as a Flutter-first application with deep OS integration:
- Flutter provides the main UI and user experience.
- A native macOS Swift overlay enables system-wide text selection and quick actions.
- Serverpod acts as the backend orchestration layer:
- Receives transformation requests from Flutter
- Handles prompt construction, validation, and processing
- Integrates with the Gemini API for AI-powered text transformations
- Flutter communicates with the native layer using method channels, keeping the app fast and lightweight.
This architecture allows the frontend to stay simple while Serverpod centrally manages all AI behavior.
Challenges
- Designing a system-wide experience that feels instant and non-intrusive
- Bridging Flutter with native macOS APIs reliably
- Keeping AI processing consistent and controllable through the backend
- Ensuring Serverpod remained a core part of the system rather than just a proxy
What I learned
- How powerful Flutter can be when combined with native platform features
- How Serverpod simplifies building a clean, Dart-based backend for real-world apps
- The importance of backend orchestration when integrating AI into user-facing tools
What's next
Future improvements include:
- Custom transformation presets
- Usage history and analytics via Serverpod
- Support for additional desktop platforms
OmniWrite explores what a true Flutter Butler can feel like: fast, invisible, and always available.
Built With
- dart
- flutter
- gemini-api
- macos
- method-channels
- rest
- serverpod
- swift-(macos)

Log in or sign up for Devpost to join the conversation.