A monthly allowance for the things you want to do less. Each activity gets a number of days per month; marking a day punches one off the ticket.
Static single-page app. Serve the folder with any static file server, over HTTPS (or localhost) so the service worker and home screen install work:
npx serve .
# or
python3 -m http.server 8000
Install on iOS: open in Safari, Share, "Add to Home Screen". The installed app works offline.
Data is kept on the device in localStorage, mirrored to IndexedDB. Use the gear icon to copy a text backup or restore one.
Files: index.html, css/app.css, js/app.js, sw.js, manifest.webmanifest, icons/ (SVG source and PNG renders), fonts/.