This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady.
What I Built
Unhurried is a local-first web app for the catch-up you keep postponing.
You paste the overnight pile — a Slack dump, a sticky-note wall, an email thread you do not want to reread — pick how long the app should nap, and stop spending attention on it. When it wakes up you get three things and nothing else:
- A two-line morning brief. What needs you, and what can wait.
- An act / park / compost board. At most a few real actions. The rest is either parked without guilt or composted as noise.
- One lazy draft. A single reply you can copy and send, instead of a chatbot that wants to keep talking.
The wait is the product. Nap, doze, or hibernate are real paces, not a spinner with a joke on it. International Sloth Day was the excuse. The actual job is protecting a morning.
Demo
Live app (static build, Moss local in the browser, no account):
https://harshalranjhani.github.io/unhurried/
Try it: Load a sample pile → Quick nap → Hibernate on this.
With Ollama running and a Gemma model pulled (ollama pull gemma3:1b is enough), the status pill switches to that model and the digest is open-weight, still on your machine. The screenshots below were taken that way, against gemma3:1b.
Code
https://github.com/harshalranjhani/unhurried
How I Built It
The UI is Vite, React, and TypeScript. The visual system is a night canopy on purpose: slow type, a hanging sloth, and a ritual that takes four, eight, or fourteen seconds before it asks the model for anything. Speed is easy to fake. Laziness had to be designed.
Inference has two paths, and the open one is the point:
-
Gemma through Ollama. The app probes
localhost:11434(proxied as/ollamain dev) and prefersgemma3:1b, then larger Gemma builds, then any other local model. The prompt demands one JSON object: two brief lines, act/park/compost items, and a single draft. Temperature stays low. Context stays small so a laptop can actually finish. - Moss local. If Ollama is missing, out of memory, or returns a brief that is too thin to sort a pile (one bucket, no draft), a small on-device scorer still plates a full board. Tiny Gemma models wander off the schema. Moss keeps the morning usable without sending the text anywhere.
History is localStorage. There is no account, no analytics, and no server holding the clutter. GitHub Pages hosts the static demo so you can try the ritual without installing anything; the open-weight path is the one you run at home.
I built it in small commits: scaffold, canopy UI, triage engine, hibernation ritual, history, then a pass that stopped gemma3:1b from returning a one-item board.
Why Does Open Innovation Matter?
Overnight clutter is the worst thing to paste into a rented model. It is half-jokes, half client names, half a refund you have not approved. A closed API makes that a habit with a bill and a log you do not control.
Running Gemma locally is better here in four concrete ways:
- The pile stays on the laptop. Group chats and lease deadlines never need to become someone else's training set.
- It still works on a plane. Moss local produces the same three outputs with the network off. The demo site is only the shell.
- Catch-up should not be metered. Summarizing chatter every morning is exactly the workload that turns into a surprise invoice on a closed API.
-
The model is a setting, not a contract.
gemma3:1bfits a small machine. A larger Gemma fits a nicer one. Swapping it isollama pull, not a rewrite.
Closed models are fine at a demo booth. They are a bad default for the messages you were too tired to read.
The Lazy Payoff
Rebuilding context from a messy overnight thread is usually a 15–25 minute tax before any real work starts. Unhurried turns that into a canopy nap and two lines.
The useful part is the refusal. Memes, cake, and jazz tickets get composted. Docs and sticky keyboards get parked. The refund and the flapping healthcheck stay in Act. Then there is one draft, and the app stops talking.
That is the sloth version of an agent: it does the sorting, it does not ask you to manage it, and it is finished before the coffee is.
Prize Categories
- Overall
- Best Use of Gemma
Team
Solo.




Top comments (0)