Skip to main contentSkip to navigation
Year Progress

Year Progress

A year progress tracker built with no framework at all, scoring 100 across every Lighthouse category. Five themes, and you can verify the scores yourself.

TypeScript
Vite
PWA
Performance
Accessibility
No Framework
Open Source
GitHub

VISUAL SHOWCASE

Year Progress in the cyberpunk theme with neon yellow and cyan on black, over a perspective grid
Expand image

Cyberpunk

Chromatic aberration on the title, perspective grid floor, hazard striping.

Zero to 100

Lighthouse
100 / 100 / 100 / 100 / 100
Stack
TypeScript + Vite, no framework
Themes
5
Check mark

How the scores were earned

Inline synchronous script prevents cumulative layout shift before first paint
DOM updates throttled to 30fps rather than running every frame
GPU-accelerated CSS only, so nothing triggers layout or paint on the main thread
FOUC-free theme switching across all five themes
Fonts preconnect and use display=optional so they never block render

Why no framework

A progress bar does not need a virtual DOM. Reaching for React here would have meant shipping a runtime, a reconciler, and a hydration step to animate a single number. Going framework-free meant the entire payload is the thing the user actually came for, which is most of how the performance score got to 100. Run Lighthouse against the live site and check it yourself.

Cookie Consent

We only use cookies for site functionality and avoid any kind of tracking cookies or privacy invasive software.

Privacy-First Approach

Our optional Cloudflare analytics is privacy-focused and doesn't use cookies or track personal data.