- JavaScript 92.2%
- CSS 7.3%
- HTML 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| components | ||
| docs | ||
| lib | ||
| migrations | ||
| test | ||
| .gitignore | ||
| .prettierrc.json | ||
| icon-180.png | ||
| icon-192.png | ||
| icon-512.png | ||
| index.html | ||
| LICENSE | ||
| main.css | ||
| main.js | ||
| manifest.json | ||
| README.md | ||
| submitted.html | ||
| test.html | ||
| test.js | ||
🌼 My Day
Planning your day should take minutes, not half of the day.
Most planning apps assume your day is a neat stack of timeboxed blocks. You know what you're doing, when you're doing it, and exactly how long each thing takes. Then reality shows up.
Things run long. Things get interrupted. Something urgent appears from nowhere. You mix focused work with quick async tasks. You rarely know upfront how long something will take — you just know it needs to happen, and roughly when.
My Day is built around that reality. Tasks have a start time if they need one, but never a required duration. You can prioritize and schedule items, and let the smart sort figure out the order. Todo items and calendar items live in the same list because the line between them is blurry anyway. The app nudges you forward — when a timed task is due, it promotes itself to Doing automatically, so your list stays honest without you having to manage it.
The goal is simple: spend two minutes entering what you need to get done today, then go on and get things done.
How it works
📋 Board — Your day as a kanban. Drag tasks from Todo → Doing → Done. Timed tasks live in the list view and promote themselves automatically — the board stays focused on what you're actively working on.
📝 List — Everything in one place, smartly sorted to interleave your tasks around any timed commitments. The closest thing to an honest picture of your day.
📅 Calendar — A timeline of what's coming up and how much breathing room you have between items. No duration required.
Getting started
No account. No install. No setup.
Just open index.html, add what's on your plate today, and get on with it.
License
PolyForm Noncommercial License 1.0.0 — free for personal, educational, and non-commercial use. Commercial use is reserved for the original author.
Engineering
Designed and engineered by Joel Sebastian Andersson.
Co-authored with Claude by Anthropic.
Architecture and database schema
Your own database
My Day works offline, with your items in this browser: Load and Save read and write them as a file.
Go online takes the address of a db-ws-relay, and My Day then keeps your items in the MySQL or PostgreSQL database behind it, reached straight from the browser through db-connector, with no backend between. Logging in happens on db-auth's user admin page, db-auth-admin, which the 👤 link opens; titles and descriptions are encrypted in the browser. Connecting with local items asks whether to use them or the data in the database. Connected, the file buttons become Import data and Export my data, beside Delete my data.
My Day's database is set up by its migrations, run by webway when the credentials of a database account with all privileges, such as MySQL's root or a PostgreSQL superuser, are entered for them. Users read and change their items only through the stored procedures there. An app usually ships migrations for one server; as a demo, My Day ships both, in migrations/mysql/ and migrations/postgresql/, with procedures that take the same arguments and return the same columns on either, so its browser code is the same.
Tests
test.html runs with a fake MySQL, so no relay or database is needed, but it loads the published db-connector, webway and db-auth, so it needs to be online. Open it locally or online.