Loading project case study
Back to Portfolio

Personal Projects / 2026

Liftroom

Personal Projects • 2026 • AI/ML

Designed and built Liftroom, a home gym app that plans each workout around the equipment you own, runs it under one thumb, and lets AI suggest changes that a rules engine checks before anything is saved.

Personal Software Fitness Agentic UX AI/ML
Liftroom

Product Film

Liftroom: Built for the set you’re in

Open video directly

Checked AI
AI proposes, the rules engine checks every edit
Your Gym
Plans built from the equipment at your place
30
Free AI requests per person, per month

Design Highlights

A plan that bends to the day

One thumb between sets

Goals, gym and history

AI changes, checked in context

Focus mode

A goal with a pace

History at a glance

Overview

Liftroom started as Workout Companion, a personal app that ran the sessions a coaching agent wrote from my Obsidian notes. In October 2026 I rebuilt it as a product anyone can use at liftroom.app: it plans each workout itself from the equipment at your place, your goal, and what you logged last time, then runs the session with the same one-thumb logging. AI is there to adjust the plan, never to write the loads.

Challenge

The first version depended on me: my notes, my agent, my home server. To work for someone else, the app had to plan a sensible workout on its own, from whatever is in a basement or a garage, on the first day with no history. AI could make planning feel personal, but a model that invents weights or picks a machine you don't own breaks trust fast. AI also costs money, and a public app can't hand everyone an open tab.

Approach

I split planning into two jobs. A deterministic rules engine owns the plan: session shape by length, focus balanced against the last session, double progression that reads logged effort, and only exercises your equipment allows. AI only proposes edits through a few tools (swap, change sets and reps, remove, add), and the engine checks each one and sets the weight. Around that I made a Gym tab led by the place, Goals with a real target and pace, and accounts that stay optional, so the app still works offline on one device.

Solution

Today offers a few workout cards and a quick check-in: energy, sore spots, and time bend the plan by rule, with each change and its reason shown. Plan a workout takes a length, a focus, a note, or a photo of a workout sketched on paper. Adjust with AI and a coach review run in the background, then show each proposed change next to the exercise it touches, to keep or set aside. Gym builds a place's equipment from a description or up to three photos. Goals shows pace, what is carrying the gains, and what is stuck; a lift stalled for three sessions rotates out for a variation. Rest can run on the lock screen. Signing in with Clerk backs training up to Convex and syncs devices; anyone signed in gets 30 free AI requests a month, or connects their own OpenRouter, OpenAI, or Claude account for more.

Impact

Liftroom now runs on its own at liftroom.app, on a Cloudflare Worker that works offline, with no notes or home server behind it. Every AI change passes the same checks as the engine's own plan, so a suggestion can reshape a workout but never put an unknown exercise, an unavailable machine, or a made-up weight in front of someone mid-set. The free allowance has a per-person and a global monthly cap, so AI cost stays bounded as more people sign up.

Key Learnings

Deciding what the model is not allowed to do mattered more than the prompt. Once AI could only propose edits and the engine had the final word, I could add AI to planning, check-ins, sketches, gym setup, and reviews without each one becoming a new risk. Moving from a tool for me to a product for others was mostly about defaults: what the app does on day one, with no history, no account, and no AI.

Explore More Work

See more case studies and projects from my portfolio.

View All Projects