Max Basev.
← All Projects
Pet Project

Lived

Your life as a grid of dots — days, weeks, months or years from your date of birth to a horizon you choose. Filled dots are behind you, the pulsing one is today, the outlines are what's left. No sign-up, no backend, nothing leaves the browser; export as PNG/SVG/PDF. In the spirit of Tim Urban's 'Life in Weeks' and Timestripe, without the account.

⏳ Lived — Your Life, Drawn as a Grid

🚀 About the Project

Lived draws your life as a grid of dots — one per day, week, month, or year, running from your date of birth to a horizon you set (90 years by default). Dots already behind you are filled in solid, the one you're living right now pulses, everything ahead is an empty outline. Type a birth date, and that's the whole app.

🛠️ What's Inside

  • Four time scales (day/week/month/year) — switching morphs the grid instead of just redrawing it
  • Two layouts: a flowing stream with gaps at week/month/year boundaries, or compact calendar-style blocks (an actual Mon–Sun page per month for Days)
  • Drill-down: click a dot to jump to the next finer scale, focused on that exact moment
  • Light/dark themes, dark by default
  • PNG, SVG, configurable PDF, and a 1080×1920 Stories card export, plus direct printing
  • Per-dot Todo notes and milestones (weddings, moves, births — marked in color, carried into every export)
  • Installable, offline-capable PWA

🤔 Why It Exists

Tim Urban's "Your Life in Weeks" and the app Timestripe both turn an abstract number ("60 years left, maybe") into something you can actually see — a shrinking grid instead of an abstraction. Timestripe has since grown into a full productivity suite with accounts and subscriptions. Lived stays narrow on purpose: just the picture, no login, and nothing about your life ever leaves the browser.

📈 Tech Stack

Next.js 16 + TypeScript, Tailwind CSS 4, and a <canvas> renderer shared by the on-screen chart, the exports, and print — one pipeline, so everything stays visually consistent. Settings live in localStorage and mirror into the URL query string, so the address bar is always a shareable link back to your exact view. PDF export via jsPDF; the offline service worker is hand-written, since Turbopack doesn't hook into the webpack-based next-pwa.

🔗 Visit

lived.m-b.app

Follow the experiments.

Lab Notes — occasional emails when something ships. No schedule, no fluff.

Subscribe →