Building 1min: a small reading app for engineering curiosity
I follow AI, Rust and Go, but my reading rarely stays inside those categories. A GPU compiler, a debugging technique, an agent workflow or a small hardware project can all send me down a useful rabbit hole.
The problem is keeping up without opening every link immediately.
1min is my attempt at a smaller reading experience: enough information to understand an idea, with a direct route to the original source when I want more.
Start with something worth reading
The initial inspiration came from Arpit Bhayani’s The Daily Diff. I wanted a similarly curated starting point, with a mobile experience closer to short news cards.
A useful card needs more than a headline rewritten into a paragraph. It should explain what changed, how something works, and where the claim stops. A research preview should sound like a research preview. A repository discovered today should not become a product supposedly launched today.
Each story keeps its source link and original publication date when that date is known. There is additional context for limitations and practical next steps. Images are optional; a relevant illustration can help, but a decorative picture on every story adds noise.
Phones and desktops need different layouts
On a phone, 1min shows one story at a time. The card follows your finger as you drag, revealing the next one underneath. A small swipe hint and an idle nudge make the interaction discoverable.
That detail took iteration. The first nudge could be cancelled by an early touch and never return. The revised cue waits for inactivity and tries again, stopping once the reader has successfully navigated. Reduced-motion settings keep the demonstration still.
On desktop, stories sit in a grid. There is enough space to scan several ideas and choose what to read without turning every interaction into a swipe.
The feed starts with unread stories, then moves into older material. When those run out, it reshuffles eligible cards as labelled revisits. A small library cannot provide infinitely many new stories, and I do not want repetition disguised as news.
Discovery needs a memory
One early gap was NVIDIA’s CUDA Rust announcement. It matched my interests closely, yet the initial collection missed it.
The collector was only looking at the current top fifteen Hacker News submissions. That is a snapshot of one moment, not a way to catch up on the week.
1min now checks a rolling ten-day window alongside the current top forty and direct feeds, including NVIDIA’s technical blog. Collection produces candidates. Curation still means reading the original sources, checking dates, removing duplicates and writing the cards. Popularity helps discovery; it does not establish that a claim is correct.
Cache the reading, keep the updates moving
I wanted people to open 1min without creating an account. Saved stories, interests and reading history live in the browser. The app and downloaded content can be cached for offline reading, while external source pages still need a connection.
That simplicity has tradeoffs: saves do not sync between devices, and clearing site data removes them.
Caching also exposed an annoying problem during development. An old service worker could keep serving an old interface while a new release waited for tabs to close. The updated flow checks app files against the network, falls back to downloaded content when offline, and lets new workers activate. Updated readers apply future releases at an idle point and restore the current story where possible.
Keeping the machinery small
1min runs on Node.js and SQLite behind Nginx on a Hostinger VPS, with its own private repository. The portfolio remains separate.
The daily workflow collects candidates, researches sources, validates an edition and imports it into the database. Reading a card does not trigger a model call. The scheduled curation currently runs through my local Codex setup, so it depends on that machine and app being available. It is not an always-on research service.
There is still plenty to improve, especially source coverage and the feel on actual phones. For now, the question I want each card to answer is simple: is this worth a few minutes of my attention?
Try 1min and follow a story through to its original source.