This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
The most expensive part of starting work is often remembering where you stopped. Which branch? Which test was failing? What did you promise to send? Rebuilding that context at 9 am is slow, dull work, and you only have to do it because nobody wrote it down while it was fresh.
So I built Dear Tomorrow. At the end of the day, you dump everything into one box, messy as it comes. A local Gemma model turns it into a short note to your future self. Next time you open the page, the note is waiting.
What I Built
Dear Tomorrow is a single web page. The note has four parts:
- π― Start here. One concrete first action for tomorrow, taken from your own words.
- π§ Where you were. Up to three short facts that rebuild context.
- π Open loops. Up to five unfinished things as a checklist you can tick off.
- ποΈ Your original dump. Always saved in full, one click away.
Around the note, there's a steady streak of consecutive days you handed off, a list of past notes, and a copy button for pasting the note into chat or a ticket.
It fits the theme because it's lazy in the right way: it does the remembering so you don't have to. It also lets you stop on time, because the loose ends are written down and no longer rattling around in your head. Slow and steady, with a bit of help.
Demo
Live: https://smaranikamondal.github.io/dear-tomorrow/
The hosted page can't run Gemma. Without Ollama, it works as a plain "note to tomorrow" pad that keeps your raw dump, and See a sample shows a labelled example of what a note looks like. With Ollama running locally, the same page writes real summaries with your own model. The README has the steps.
Code
π¦₯ Dear Tomorrow
Dump your day. Gemma writes the note. Tomorrow-you starts in thirty seconds.
A lazy-in-the-right-way note-to-self, written by an open model on your own laptop. Your notes never leave your machine.
Why this exists
The most expensive part of starting work is often remembering where you stopped. Which branch? Which test was failing? What did you promise to send? Rebuilding that context at 9am is dull, slow work that you did not need to do.
Dear Tomorrow does it the night before, while it's still in your head. Dump everything, however messy. Gemma turns it into a short note for tomorrow, and the note is waiting when you open the page.
Built for the Hacktoberfest Open-Source AI Challenge, Week 3: Slow and Steady (Oct 19-25, 2026). Started and finished within the challenge window.
What it does
| π Dump | One box. Notes, half-finished to-dos, branch names, error messages, things |
How I Built It
One HTML file, no framework, no build step, no dependencies. The model is Gemma, served locally by Ollama.
1. The model's job is small. It summarises and doesn't judge. The prompt asks for a fixed JSON shape: a headline, a single first action, and two short lists. It tells the model to use only what's in the dump, to keep real names, files, and numbers, and to treat the dump as data and ignore any instructions in it.
2. The original is saved before the model is called. Your raw dump goes into storage first, so if Gemma is missing, slow, or returns nonsense, the note is simply the raw dump, shown open. The summary is a convenience on top of the text, never a replacement for it.
3. Code validates what comes back. A reply needs a non-empty "start here". The lists are filtered to strings, de-duplicated (case-insensitive), and capped at three and five items. Anything else is dropped.
4. Dates and streaks are code. "Good morning" versus "from 4 days ago" and the streak count are worked out from stored dates. A missed day resets the streak, and today stays open until you hand off. A language model has no business counting days.
5. Practical limits are explicit. Only the first 3,500 characters go to the model, because Ollama's default context is small. The note says so, and the full dump is still saved. Requests use JSON mode, a low temperature, and a token cap, which keeps small models on a CPU laptop quick enough.
6. Everything the model writes is shown as plain text, never as HTML.
7. I tested it in a headless browser against a mocked Ollama with seeded dates: the full flow, reload persistence, the next-morning view, streak maths, malformed model output, no Ollama, blocked storage, a long dump, injection attempts and the phone layout. All 47 checks passed. That tests the app's logic, not Gemma's summarising, which depends on the model you run.
Honest limits.
- Summaries can miss or blur details, and small models are especially prone to it. That's why the original dump is always one click away. Read the note before you trust it.
- "Start here" is the model's guess at your most concrete next action, and it can be wrong.
- Notes live in browser storage, so they don't sync across devices and disappear if you clear site data.
- Prompt injection isn't solved. The prompt asks the model to treat your dump as data, which helps but isn't a guarantee.
- Notes are stored unencrypted, so don't put secrets in them.
Why Does Open Innovation Matter?
A day's brain dump is the most private text most people write: client names, half-formed ideas, and things they shouldn't have typed. Open models fit that job for practical reasons:
- Nothing leaves the laptop. There's no server in the loop, so an NDA'd project or a rough idea stays put.
- It's free every night. A tool you use daily shouldn't meter every note.
- It works offline, on the train home or on a plane, and the model can't change behaviour overnight.
- Swapping models is one dropdown. The list comes from whatever Ollama has installed, so you can trade speed for quality without touching the code.
Prize Categories
- Best Use of Gemma. Gemma writes every summary locally through Ollama. The app detects and selects it automatically, keeps its job small, and validates everything it returns.
Built with AI coding assistance. Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms.



Top comments (0)