All projects
Personal project · Android app and PWA

povseDnev: everyday tracker for habits, tasks and notes

2026Mobile appTypeScriptReactCapacitorAndroidPWAOffline-firsti18n

An offline-first, English and Russian life organiser that puts habits, tasks, reminders, notes, a journal and money tracking in one calm app. It runs as an installable web app and as a native Android app with home-screen widgets, and keeps every byte of data on the device.

The idea

I was using a habit tracker, a to-do app, a notes app and a spending log, and none of them talked to each other. povseDnev ("for every day") brings them into one place, with a Today screen that shows the day at a glance: habit progress, the week, countdowns, goals, a quote of the day and a single agenda of tasks and events.

It has no accounts and no server. Everything stays on the phone.

povseDnev banner: Every day, in one calm place. Habits, tasks, notes, journal, money, with two phone screens
Store banner: the Today and Habits screens.

Features

  • Habits of six kinds: check-offs, counts, timed habits, things to avoid, specific weekdays and "N times a week", with streaks and 15 presets.
  • Tasks and reminders with natural-language dates in both languages: typing "Dentist fri 17:30" or "завтра в 7 вечера" sets the date and time. Repeating reminders and calendar export as .ics.
  • Notes with a markdown subset, #tags, [[wiki links]], version history, a trash, checklists, sketches and voice notes.
  • Journal, money, subscriptions, birthdays and goals, plus an Eisenhower matrix, inbox and search.
  • Focus timer (Pomodoro) with a live countdown in the notification.
  • Reviews: monthly and yearly summaries, insights, a "year in pixels" and 22 achievements.
Three povseDnev phone screens: Today with habit ring and agenda, Habits with streaks, and Money with monthly spending by category
Today, Habits and Money with demo data. Each habit row shows its recent history, completion rate and current streak.

Native Android

The same React and TypeScript build runs as a PWA and inside a Capacitor 8 Android shell. On Android, my own Java plugins add what a web app can't do:

  • exact alarms with action buttons, scheduled 60 days ahead
  • 11 home-screen widgets drawn from a data snapshot the app sends them, with taps queued and applied when the app opens
  • an app lock using the fingerprint or screen lock, with screenshots blocked
  • dictation, document scanning with Google ML Kit, and a daily backup to a folder the user picks
povseDnev Android home-screen widget showing 3 of 5 habits done and the next event
One of the 11 Android home-screen widgets: today's habit progress and the next event.

How data flows

From a tap to a widget

  1. 01
    Input
    Tap a habit or add an item; dates are parsed from plain English or Russian
  2. 02
    State
    One typed data object for the whole app
  3. 03
    Persist
    Saved to local storage, photos to IndexedDB, all on the device
  4. 04
    Derive
    Pure functions compute streaks, stats, reviews, awards and recurrence
  5. 05
    Schedule
    Reminders for the next 60 days go to Android's alarm manager
  6. 06
    Widgets and backup
    A snapshot updates the widgets; a daily JSON backup goes to a chosen folder

Privacy and quality

There are no accounts, analytics or network calls in the app. Data is a single JSON document in local storage, with photos in IndexedDB, and can be exported as JSON, CSV or .ics. Locked notes are hidden behind the device lock rather than encrypted, and the app says so. The core logic (habits, streaks, date parsing, recurrence, reviews) is pure TypeScript covered by unit tests, and one GitHub Actions workflow tests, builds and ships the web app, the landing page and a signed Android build.

22
Screens and routes
11
Android home-screen widgets
54
Unit tests, all passing
2
Languages, English and Russian, including date parsing

Source: src/core, src/screens, android/ and test files in the repository (version 0.9.0)

← Back to all projects