Build mornings around something that matters.
Paper Clock is a private, offline Android alarm clock for turning a meaningful goal into a morning routine. Set an alarm, link it to the reason you want to get up, choose a wake-up sound, and keep everything on your device.
- Wake with intent — connect an alarm to a goal and see the reason behind the ring.
- Make the morning yours — set a time, repeat schedule, label, sound, and vibration.
- Build a goal in four steps — name the target, pick a date, set the alarm, and choose its sound.
- Private by default — goals, alarms, and settings stay on the device. There are no accounts or cloud sync.
- Ready when it matters — uses Android's exact alarm scheduling, survives device restarts, and presents a lock-screen-safe dismissal screen when an alarm rings.
![]() 1. Give tomorrow a target |
![]() 2. Build the alarm around it |
Paper Clock includes three offline Android home-screen widgets:
- Next Reason (4×2, resizable) shows the next alarm, its linked goal, a live countdown, and an on/off control.
- Quick Alarm (2×2, resizable) opens a new Paper Clock alarm immediately.
- Goal Countdown (4×2, resizable) shows the nearest goal, target date, progress, and linked-alarm count.
- Goal Focus (2×2, resizable) is a compact days-left tile for the nearest goal.
Widget content refreshes when alarms or goals change, after reboot, and when the device date, time, or time zone changes.
Requirements: Android SDK platform 36, JDK 21+, and an Android device or emulator running API 26+.
export ANDROID_HOME=/path/to/Android/sdk
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apkThe debug APK is written to app/build/outputs/apk/debug/app-debug.apk.
- Tap ADD ALARM to set a time, repeat days, label, optional linked goal, sound, and vibration.
- Tap GOALS and create a goal with its target date and first alarm.
- Allow exact-alarm access when Paper Clock presents the system card. Android 13+ also requests notification access at launch.
- When an alarm rings, Paper Clock loops the selected sound until DISMISS ALARM is pressed.
GitHub Actions builds an installable debug APK for every pull request targeting main and publishes it as a workflow artifact. Pushes to main also create a GitHub Release tagged as v<versionName>-build.<runNumber> with the APK attached.
These builds use the standard Android debug signing key and are intended for personal device installation—not Play Store distribution.
Paper Clock packages its sounds with the app. The source tracks are MP3s at 44.1 kHz / 192 kbps, with durations of about 10.5–19.4 seconds. Their raw Android resources and display names are defined in SoundCatalog.kt.
| Resource | Display name |
|---|---|
beep_beep_beep |
Beep Beep Beep |
good_morning_sunshine |
Good Morning Sunshine |
harp_smash |
Harp Smash |
iron_paradise |
Iron Paradise |
lovely_flute_wakey_wakey |
Lovely Flute (Wakey Wakey) |
old_school |
Old School |
ring_ring |
Ring Ring |
the_roar |
The Roar |
Play Store-ready 9:16 images and the full native captures are in screenshots/.




