Thanks! that's certainly my plan for the physical version (I'm thinking an OLED display in a murky jar) and I probably will dress up the UI for this web version at some point but for now I wanted to keep things simple... otherwise I'll procrastinate doing the tasks I need to get done by endlessly fiddling with this!
I made this for myself. My problem isn't doing tasks, it's choosing between them. Given a list I'll stall on the choice and drift off to something else. This removes the decision: you add tasks to a jar and it picks one at random, which you either do or skip. It works for me, and it might work for a few other people wired the same way.
The concept isn't novel. Simone Giertz's 3D-printed task picker [1] was the inspiration, and it turns out random task selection is a small genre I was unaware of when I started.
Build notes: it's Go, HTMX and SQLite, heavily AI-assisted. As a rule I try to build things small and decoupled enough that I don't mind throwing them away and starting again. It lets me move fast and experiment before things eventually crystallise, and AI-assisted development fits neatly with that because it reduces the cost of binning stuff off. The initial version took a couple of days, and I've spent longer since then using it daily and refining it.
You can use it with an ephemeral session, or sign in with an emailed magic link if you want your jar to persist and sync across devices. It also supports things like daily recurring tasks. It runs on a k3s cluster under my desk (a Turing Pi 2 with four RK1 nodes, if anyone's interested) and is exposed to the web with a Cloudflare tunnel.
Eventually I'd like to make a physical version. I do embedded hardware for a living, and a desk device that shows your next task at the press of a button appeals to me. This was the cheap way to test whether the mechanic sticks before committing to that.
Author here. Happy to answer questions on any part of this project whether that's the physics simulation, the RP2040 PCB design (including the rev 1 mistake that cooked a few chips), or the firmware optimisation journey.
The interactive simulations in the post run the same algorithm as the firmware if you want to poke at the parameters. GitHub has everything to build your own, and there's a small run of finished units on my store too.
Currently in the works are a digital sand timer which can be used to track pomodoros (or any sequence of time intervals), and a Jovian orrery which displays the positions of Jupiter’s moons on a strip of addressable LEDs.
I've been making and selling my electronic social battery pin badges for a while now (https://hortus.dev/products/social-battery) and I'm expanding the range with seasonal versions like a Christmas mood badge, and a halloween themed ghost badge that's coming soon. I'm lucky enough that these projects have gone down well and are making enough money to fund some more complicated (and expensive) projects that I wouldn't have otherwise had the guts to try. Currently I'm working on an RGB digital sand timer with customizable timing sequences so that you can use it for things like the pomodoro technique - I have a working prototype and at the moment I'm experimenting with interfaces for setting the sequences. I wanted to use a combination of buttons and an accelerometer for this but it's not as intuitive as I'd like so I may end up making a small smartphone app to configure it.
I'm making and selling a couple of LED pin badges on my site https://hortus.dev.
I wrote about my experience doing these last year (previous hn post here: https://news.ycombinator.com/item?id=38904255) and since then it has really taken off! Not enough to live off, but certainly enough to sustain itself and fund some more projects in the future.
I never expected it to turn into anything more serious than a novelty and I've learned a tonne about running a small business as a result. I'm really looking forward to (hopefully) learning how to grow this into something bigger over 2025!