Inspiration

We've all been in that embarrassing moment — phone ringing loudly during a meeting, a lecture, or Friday prayer. We kept forgetting to silence our phones at the right time. We thought: why should this be manual? Your phone already knows what time it is and where you are. That frustration became the spark for Silenz.

What it does

Silenz automatically silences your phone based on your schedule and location. You can create:

  • Time-based schedules"Silent every weekday 9am–5pm"
  • Location-based zones"Silent whenever I'm near the mosque"

It supports three modes — Silent, Vibrate, and Do Not Disturb — and works completely in the background even when the app is closed. It also syncs your schedules to the cloud so you never lose them.

How we built it

  • Frontend: Flutter with a Carbon dark theme and electric lime accent (#C8FF00)
  • Backend: Node.js + Express hosted on Railway, MongoDB Atlas for cloud storage, Brevo for OTP email authentication
  • Android Native: Kotlin using AlarmManager for reliable background scheduling and a ForegroundService for continuous location monitoring
  • Maps: OpenStreetMap with flutter_map — completely free, no API key required

Challenges we ran into

The biggest challenge was keeping the app alive in the background. Android aggressively kills background processes, so we had to combine AlarmManager, ForegroundService, and BootReceiver to ensure everything keeps working after the app is closed or the phone restarts.

Separating Silent mode from DND mode was also tricky — Android treats them very differently under Android 6+, requiring careful native Kotlin handling.

We also ran into Railway blocking SMTP ports for email, which forced us to switch from nodemailer to Brevo's REST API for OTP delivery.

Accomplishments that we're proud of

  • The core feature actually works — phone silences itself without you touching it
  • Location zones using completely free OpenStreetMap with no API key
  • Clean Carbon UI design system with dark/light mode
  • Full production-ready backend with OTP authentication and cloud sync
  • Built end-to-end in a short hackathon timeframe

What we learned

  • How Android's background execution restrictions work and how to bypass them properly
  • How ForegroundService, AlarmManager, and BroadcastReceiver work together
  • Flutter MethodChannel for native Kotlin–Dart communication
  • Deploying to Railway and integrating Brevo for transactional email
  • Structuring a clean REST API with JWT authentication and MongoDB

What's next for Silenz

  • AI suggestions — learns your routine and auto-suggests schedules
  • Google Calendar integration — silences during your calendar events automatically
  • iOS support
  • Home screen widget for quick toggling
Share this project:

Updates