🌟 Inspiration
In a world of notification overload, we didn't want to build just another to-do list. The release of Serverpod 3 gave us the perfect opportunity to build a true digital assistant. We were inspired to create Flutter Butler—not a tool that demands your attention, but a silent partner that automates your chaos, organizes your day, and serves you with the efficiency of a real butler.
🧠 What it does
Flutter Butler is a cohesive digital assistant ecosystem that helps users regain control of their time.
- ✅ Task Management: Intelligently captures and organizes to-dos.
- 🔔 Smart Notifications: Context-aware alerts that know when to nudge you and when to stay silent.
- 🕸️ Web Command Center: A dedicated web dashboard (TypeScript) for deep-focus planning and administration.
- ⚡ Routine Automation: Chains simple actions into powerful daily workflows.
🛠️ How we built it
We adopted a multi-platform approach to ensure the Butler is available everywhere:
- The Backend (The Brain): We used Serverpod (Dart) to handle the heavy lifting—database management, API endpoints, and authentication.
- The Mobile Experience: Built with Flutter for a seamless, 60fps native experience on iOS and Android.
- The Web Dashboard (The Repo): This is where the magic of this repository lies. We built a comprehensive TypeScript & CSS web client that acts as the "Command Center" for the Butler. It connects to the Serverpod backend, allowing users to manage complex workflows on a larger screen.
This hybrid stack allowed us to leverage the type safety of Dart for the core logic while utilizing the rich ecosystem of TypeScript for the web interface.
🚧 Challenges we ran into
- Bridging Ecosystems: Connecting a TypeScript web frontend seamlessly with a Dart/Serverpod backend required careful API design to ensure data consistency across languages.
- UI/UX Consistency: Ensuring the CSS-driven web dashboard felt visually consistent with the Material/Cupertino design of the Flutter mobile app.
- Scope Creep: It was tempting to build every feature a real butler has. We had to ruthlessly prioritize the "MVP" (Most Valuable Butler) features to finish on time.
🏆 Accomplishments that we're proud of
- ✅ Full-Stack Success: We didn't just build an app; we built a platform. The 90%+ TypeScript web dashboard is a testament to the flexibility of the Serverpod backend.
- ✅ Clean Architecture: The separation of concerns between the mobile view and the web administration layer.
- ✅ Design Polish: Creating a UI (using pure CSS and Flutter widgets) that feels calm, professional, and "premium."
📚 What we learned
- Serverpod's Flexibility: We learned that Serverpod isn't just for Flutter apps—it serves as a robust backend for modern web frameworks (TypeScript) as well.
- The Power of Types: Moving between Dart and TypeScript highlighted the importance of strict typing for preventing bugs in a distributed system.
- Less is More: The best automation tools are the ones you don't have to configure constantly.
🚀 What's next for Flutter Butler
- 🤖 LLM Integration: Adding a chat interface to "talk" to your Butler naturally.
- 📱 Unified Codebase: Exploring Serverpod's generated client libraries to further tighten the integration between the Dart and TypeScript layers.
- 🌍 Public API: Opening up the Butler's API so other developers can write plugins for their own habits.
Built With
- apis
- auth
- calendar
- css
- dart
- devpost
- firebase
- flutter
- github
- notifications
- openai
- postgresql
- serverpod
- serverpod-cloud
- sqlite
- state-management
- supabase
- typescript
- vercel



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