Raption
A cross-platform focus and distraction-blocking app that helps you reclaim your time. Built with Tauri for native performance on macOS, iOS, and Android.
The Problem
Distractions cost knowledge workers an average of 23 minutes to recover from each interruption. Existing focus apps either lock you into rigid timers or are easily bypassed.
What I Built
Raption is a cross-platform focus app that blocks distracting apps and websites at the OS level — not just in the browser. It combines Pomodoro-style sessions with real enforcement: when you start a focus session, the apps you’ve blocked become genuinely inaccessible.
Technical Approach
The core challenge was building native-level blocking across three platforms from a single codebase:
- Rust handles all business logic, state management, and the blocking engine via Tauri commands
- Angular powers the UI with signal-based state management (NgRx Signal Store)
- Swift integrates with Apple’s Screen Time API (FamilyControls/DeviceActivityMonitor) for iOS/macOS blocking
- Kotlin uses Android’s AccessibilityService for app-level blocking on Android
- PostgreSQL backend handles auth, sync, and subscription management via .NET API
The architecture is layered: Angular never talks to the network directly — all HTTP goes through Rust commands that attach auth headers and handle token refresh automatically.
What I’d Do Differently
Start with a single platform (macOS) and nail the UX before going cross-platform. Building for three platforms simultaneously meant spreading thin on platform-specific polish.