The brief
TrainBlock is a US product for personal trainers and online coaches. Most coaches run their business across spreadsheets, PDFs, messaging apps and a separate tracking tool, and their clients have to keep up with all of them.
TrainBlock wanted one product that does it all: the coach plans training on the web, the client follows it on their phone, both talk in the same place, and nothing is sold as a paid add-on. It had to be simple for clients who are not technical, and built to grow to tens of thousands of monthly users.
What we built
A marketing site
A site with a blog and a waitlist for the launch, live since October 2026.
The coach web app
- Studios with owner and coach roles, team invites and client invites by email.
- An exercise library: built-in exercises with media, plus the studio's own.
- A workout builder: values per set, rest times, supersets, circuits, interval, EMOM and AMRAP blocks, undo and redo, and saved drafts.
- Programs assigned to clients and scheduled on a calendar. Each client gets their own copy, and changes to the template can be pushed to them.
- Live workout results, with comments from the coach.
- Real-time messaging: one-to-one chats, groups, broadcasts, search, photos, voice notes and read receipts.
The client mobile app, for iOS and Android
- Today's session and the training week at a glance.
- Set-by-set logging that works offline and syncs later.
- A rest timer, and full-screen interval, EMOM and AMRAP timers with sounds and lock-screen alerts.
- Chat with the coach, voice notes included.
- Light and dark mode.
Email notifications tie the two together, from invites to finished workouts.
The stack
TypeScript throughout, in one monorepo with code shared between web and mobile.
- Web: React 19, Vite, React Router, TanStack Query and Tailwind CSS.
- Mobile: React Native with Expo, and SQLite for offline storage.
- Backend: Supabase (PostgreSQL with row-level security, Auth, Storage, Realtime and Edge Functions), with Resend for email.
- Marketing site: Astro with the EmDash CMS, hosted on Cloudflare (Workers, D1, R2 and Turnstile).
- Testing: Vitest, Playwright end-to-end tests and database tests.
Our role
Everything: product definition, UX and UI design, web, mobile and backend development, infrastructure, the product video and ongoing maintenance. It is the kind of work we do as SaaS development and mobile app development.
What comes next
TrainBlock launches in January 2027. Before then we are adding nutrition coaching, progress tracking and weekly check-ins.