An AI-powered personal fitness dashboard. Built in vanilla JS. No frameworks.
Live — pulse-sepia-ten.vercel.app →Prove product design, frontend craft and AI integration in a single portfolio piece — no frameworks, no libraries, shipped in a few-day sprint. One state-driven vanilla app that an AI populates end to end, polished enough to send to recruiters and attach to proposals.
Claude generates a personalized 7-day training plan from a five-question conversation, then auto-populates the entire app.
Animated activity ring, sleep, calories, streak and a weekly chart — every visual drawn with the Canvas API.
Interactive set tracker with a Canvas rest timer and an end-of-set audio cue via the Web Audio API.
In-app camera with a branded stats overlay, composited on Canvas at native resolution and ready to download or share.
Designed the data schema around Claude's JSON output — onboarding answers flow directly into the state that drives every screen.
Activity rings, charts and the rest timer are drawn programmatically. No SVG libraries, no chart packages — just the Canvas API.
CI/CD via Vercel with every push. Lighthouse score optimised, zero dependencies, sub-second load on 4G.