Inspiration

I'm a 15-year-old high school student in Turkey. Every time I sat down to study, I ended up on my phone five minutes later — and all my friends had the same problem. Existing apps were easy to cheat, so I wanted to build one that actually makes you keep your promise to yourself. That's where the name comes from: an oath you can't break, because it's locked.

What it does

Oathlock is an Android focus app:

  • Real app blocking – pick distracting apps from the list of apps installed on your phone; during a focus session, opening them shows a block screen.
  • Math alarm – built on Android's native alarm system; to turn it off you have to solve math problems, so you're actually awake.
  • Tasks with deadlines and reminders – notifications arrive on time, even after a restart.
  • AI coach – powered by Gemini; tell it "I can't start studying" and it gives you a short, practical plan.
  • Screen time stats – see how much time you spend on your phone.
  • 3 languages – English, Turkish and German.
  • Oathlock Pro – $4.99/month or $40/year, powered by RevenueCat.

How I built it

  • React 19 + TypeScript + Vite + Tailwind, wrapped with Capacitor 8 for Android.
  • A custom native Java plugin for the parts the web can't do: Accessibility Service (app blocking), AlarmManager (alarms), UsageStats (screen time), foreground services and boot receivers.
  • RevenueCat SDK for subscriptions: one "pro" entitlement with monthly and yearly products, shown through an offering in the paywall.
  • Google Sign-In for accounts and the Gemini API for the AI coach.
  • I used AI coding assistants to learn and move faster, while I designed the app, tested every feature on my own phone and made the decisions.

Challenges I ran into

  • Making app blocking reliable on Android with the Accessibility Service.
  • Making the alarm ring like a real alarm even when the phone is locked or the app is closed.
  • Setting up RevenueCat products, entitlements and offerings correctly for the first time.
  • Translating both the app interface and the native Android notifications into 3 languages.

Accomplishments that I'm proud of

Building

Built With

Share this project:

Updates

Submission history