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
AlarmManagerfor reliable background scheduling and aForegroundServicefor 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, andBroadcastReceiverwork 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
Built With
- api
- atlas
- brevo
- dart
- express.js
- flutter
- jwt
- kotlin
- mongodb
- node.js
- nominatim
- openstreetmap
- railway
Log in or sign up for Devpost to join the conversation.