Glass Slipper Run

Glass Slipper Run is a mobile-first training app I built for runners preparing for Disney-style race weekends — 5K, 10K, half marathon and multi-race challenge events. You can visit the live app at the end of this page.

The Idea

Training for a runDisney-style event is different from training for a normal race. You’re often juggling multiple distances across one weekend, following a fairly rigid plan, and doing it alongside a community of other people training for the same thing. I wanted a training app built specifically around that — not a generic running tracker with a race date bolted on.

So I built one. No subscriptions, no paywalls — a free, structured training plan generated around your race date and distance.

What It Does

Glass Slipper Run currently offers four structured programmes, ranging from a 13-week beginner 5K plan through to a 19-week multi-race challenge plan. Once you’re signed up, you get:

  • A personalised training plan generated around your race date and distance
  • Weekly and calendar-based training views
  • Run logging with time, distance, effort, notes and photos
  • Progress statistics and completion tracking
  • Pace and Magic Mile tracking
  • An achievement and milestone system
  • Private and public profiles, with follow requests and shared-run invitations
  • A social activity feed with friend reactions and encouragement

Building It

This was a bigger build than a single feature or screen. Underneath the training plans and social feed is a proper data model — users, training plans, sessions, individual runs, followers, shared activities, achievements and uploaded media all need clean relationships to each other for the app to actually make sense as you use it.

The stack is Next.js and React on the frontend, with Prisma over SQLite/libSQL for the data layer, NextAuth for authentication, Cloudflare R2 for object storage (run photos, profile images), and Docker for deployment.

Because it’s a social app with private accounts and user-uploaded content, security and privacy weren’t an afterthought — password hashing, server-side ownership checks on every request, private-account behaviour that actually restricts what’s visible, restricted file uploads, expiring password resets, unique account identifiers and full account deletion all needed to be built in properly, not bolted on later.

The Role of AI

AI was part of the development workflow throughout — helping map out user journeys and application states, working through database relationships, reviewing code and dependency choices, diagnosing bugs, and turning rough notes into implementation instructions. It sped up analysis and iteration considerably. But product decisions, requirements, testing and quality assurance stayed with me — a big part of building something like this is knowing how to describe a problem precisely enough to get a useful answer, and then judging whether the suggested approach is actually right for the product.

Why I Built It

Glass Slipper Run started from a real, personal need, and turning it into a structured product meant working across strategy, UX, data design, development and testing — not just writing screens. It’s the project I point to when I want to show what I can actually build end to end, rather than just talk about.

Try It

Glass Slipper Run is live and free to use.