Inspiration

Modern smartphones are powerful, but they demand constant attention. We’ve all experienced important meetings interrupted by forgotten ringtones, or deep focus sessions broken by unnecessary notifications. The inspiration for Contextual LifeFlow Butler came from a simple question:

Why should we adapt to our phones, instead of phones adapting to our lives?

We wanted to build a system that understands life situations—work, focus time, night routines—and quietly handles phone behavior in the background, without manual toggles, complex rules, or constant user intervention.


What it does

Contextual LifeFlow Butler is an intelligent automation assistant that automatically adapts your Android phone based on the situations you define.

Users create life-based automations such as:

  • “Work Mode”
  • “Morning Focus”
  • “Night Routine”

When a trigger occurs (manual or scheduled):

  • The phone switches to silent/vibrate mode
  • A confirmation vibration occurs
  • A notification confirms the action
  • The execution is logged and visible in the app

All actions are real system-level automations, not simulations. The phone genuinely changes behavior at the correct time—even if the app is closed.


How we built it

We built Contextual LifeFlow Butler using a three-layer architecture:

  • Flutter for a smooth, production-quality UI and user experience
  • Native Android (Kotlin) for accessing real system features like ringer mode, vibration, notifications, and background scheduling
  • Serverpod for authentication, data persistence, execution logging, and syncing across sessions

Flutter communicates with native Android using platform channels, ensuring a clean separation between UI logic and system-level automation. Serverpod provides a fully typed backend with PostgreSQL storage, allowing every automation and execution to be securely persisted and auditable.

This architecture ensures reliability, transparency, and real-world usability.


Challenges we ran into

One of the biggest challenges was working within Android’s strict system permission model. Certain actions—like changing silent mode—require explicit user consent and cannot be granted programmatically.

We solved this by designing a clear, user-friendly permission onboarding flow that explains why permissions are needed and guides users safely to system settings.

Another challenge was ensuring scheduled automations run even when the app is closed. This required careful use of Android’s AlarmManager and BroadcastReceiver system, combined with backend synchronization to maintain accurate execution history.


Accomplishments that we're proud of

  • Built real Android automation, not mocked behavior
  • Designed a product-focused UX that explains why automations exist
  • Implemented background execution that works even when the app is closed
  • Created human-readable execution history that tells a story, not just logs
  • Used Serverpod deeply for authentication, persistence, and execution tracking
  • Delivered a production-ready app, not just a demo prototype

What we learned

We learned that great automation is not about complexity—it’s about clarity and trust.

Users don’t want dozens of rules; they want their phone to quietly behave correctly during important moments. From a technical perspective, we learned how powerful Flutter becomes when paired with native system access and a strong backend like Serverpod.

Most importantly, we learned how to design automation that feels human, not mechanical.


What's next for Contextual LifeFlow Butler

Future improvements include:

  • Location-based triggers (arriving at work, home, gym)
  • Calendar integration for automatic meeting detection
  • More system actions like brightness, connectivity, and focus modes
  • Cross-device sync for multi-phone users
  • iOS exploration via supported Focus Mode integrations

Our long-term vision is to make Contextual LifeFlow Butler a truly invisible assistant—one that respects attention, reduces friction, and adapts naturally to daily life.

Built With

Share this project:

Updates