A cozy daily planner. Your day, made manageable.
Tiny Day is a fully offline React Native (Expo) app: no account, no cloud, no analytics. You brain-dump your day in plain language, it shapes a gentle timeline, and a tiny illustrated room lives alongside you — brightening as things get done, dimming into lamplight at night. When life happens, one tap repairs the day without guilt.
- The Room — a layered SVG scene (window sky, lamp glow, tint overlay, tiny character) with four time states plus a rain variant. It follows the real clock and reflects completion.
- Morning planning — brain-dump text is parsed into task cards (name, category, duration, priority, time heuristics), then a priority and energy pass builds a timeline with protected meals and free time kept open on purpose.
- Today timeline — Today keeps the room overview and the complete daily timeline together, including finished tasks, free time, progress, and gentle replanning.
- Room actions — compact Now and Next cards live beside the room, with direct Focus and Done actions without crowding the Today landing page.
- Task control — quick-add accepts natural language or explicit future date/time choices; existing tasks can be edited in place or rescheduled to a specific future date and time.
- Focus — a real countdown timer with pause, +10 minutes, completion, and continuity when the attached task is edited.
- "My day went wrong" — pick what changed (woke late, ran long, too tired, urgent thing); Tiny Day moves optionals, shortens flexibles, protects ▲ musts and fixed appointments, inserts rest, and shows the changes before applying. "Your day has been repaired."
- Evening — mood check-in, gentle stats, leftovers triage (tomorrow / backlog / let go — never auto-carry). "You did enough for today."
- Notifications — ▲ must = remind + one follow-up · ● should = one reminder · ○ optional = silent. Quiet hours, privacy mode ("Important reminder due now"), and at most one gentle replan prompt. No streaks, no guilt.
- Plan tab — Tomorrow, expandable Week days, Backlog, and a Routine builder with per-day scheduling and task recovery.
- Testing data — Profile can load and remove reversible sample tasks, routines, and recent-day history without touching personal content.
- Accessibility — 44px+ touch targets, dynamic type, reduce-motion and high-contrast toggles, screen-reader labels, and priority always shown as glyph + label, never color alone. No haptics: the app never vibrates.
- Tablet — sidebar navigation and wide layouts at ≥768px.
Quicksand (display) + Karla (UI) · 4px spacing grid · radii 12/16/20/pill.
Light: paper #FAF6F0, ink #3A3532, sage #7E9B77, dusty blue #7D97B8, terracotta #C4714F, peach #F2CDB4, beige #E8D8C2.
Dark (never pure black): bg #26232A, surface #312D34, ink #F3EDE6, with 18% tint chip fills and white borders at 6–8%.
The full 65-screen design spec lives in docs/screens/ — see INDEX.txt for the naming scheme (10a is the navigation map, 10b the user journey).
- Expo SDK 57 · TypeScript · expo-router
- Zustand + AsyncStorage (all data local; works fully offline)
- react-native-svg (the Room) · react-native-reanimated
- expo-notifications (local only) · expo-google-fonts (Quicksand, Karla)
Requirements: Node.js 20 or newer and npm. For native device/emulator workflows, install the relevant Android or iOS tooling as described in the Expo docs.
npm install
npx expo start # then press a for Android, i for iOS, w for web
npm run typecheck # tsc --noEmitDownload the APK from the latest GitHub release, allow installation from your browser or file manager when Android asks, and open the downloaded file. Tiny Day currently targets Android 7.0 (API 24) and newer. The v1.1.0 APK is ARM64-only, which covers most modern Android phones and tablets; a 32-bit-only device needs a separately configured build.
Current release: v1.1.0 (versionCode 3), approximately 33.4 MB. Its
checksum and device-test notes are published on the release page.
EAS is the supported path for producing the installable test APK:
npx eas-cli build -p android --profile previewThe preview profile in eas.json produces an APK. Production builds use the
production profile and should only be published after device testing.
For local Android debugging:
npm run androidAn experimental local standalone script is also available:
scripts/build-standalone.sh # -> TinyDay-standalone.apk
adb install -r TinyDay-standalone.apkThis script creates a development-signed diagnostic build and is not the release
pipeline. Set TINYDAY_KEYSTORE, TINYDAY_KEYSTORE_PASS, and
TINYDAY_KEY_ALIAS if you need a specific local signing key.
app/ expo-router screens (tabs, onboarding, planning, replan, evening, focus…)
components/ design-system components (TaskCard, chips, ProgressRing, BottomSheet, Room…)
theme/ light/dark tokens, type scale, ThemeProvider
lib/ types, zustand stores, NL parsing, scheduler, repair engine, notifications
docs/screens/ the 65-screen design reference
For the main modules and data flow, see Architecture.
If text looks outlined or "stroked", especially in light mode, check Settings → Accessibility → High contrast text on the device. Android draws an outline around all text system-wide when that is on, which reads very differently from the design. It is a device preference, not an app setting, and the app cannot (and should not) override it.
Tiny Day stores planning data locally with AsyncStorage. It does not require an account and does not include cloud sync, advertising, or analytics. Local notifications are scheduled on the device. Read the public Privacy Policy and see Security for responsible vulnerability reporting and the current support policy.
Bug reports, accessibility feedback, documentation improvements, and focused pull requests are welcome. Read Contributing before starting, and review the Code of Conduct. Release history is tracked in the Changelog.
Tiny Day is available under the MIT License.







