Skye
A gym companion app: log sessions, track progression, build the habit.
- Next.js 15
- TypeScript
- Tailwind v4
- Neon Postgres
- Drizzle
- better-auth
- Vercel
- Resend
What it is
A mobile-first PWA for live workout logging with autosave, reusable templates and splits, a time-boxed workout generator, history and progression stats, and a seeded library of around 75 exercises.
Why it's interesting
A complete product owned end-to-end: schema, auth, API, UI, deployment and cost. It runs in production for about a pound a month.
What I built
- Next.js 15 App Router with strict TypeScript and Tailwind v4, designed mobile-first with PWA install for a near-native feel.
- Relational schema on Neon Postgres via Drizzle ORM and drizzle-kit migrations: exercises, workout_templates, template_exercises, sessions with snapshotted plans, and a sets_log of weight, reps, RPE and time.
- Email and password authentication with better-auth; deployed on Vercel with Resend powering an in-app bug-report flow that captures session context.
- Cost-aware infrastructure: Vercel Hobby plus Neon’s free tier with autosuspend, so a single-user product costs roughly the domain fee.
Engineering concepts
- Full-stack product ownership
- Relational schema design
- Authentication
- PWA
- Cost-aware infra