Form Lab is a theme for training businesses that sell coaching and results, not a list of equipment. The homepage opens on full-bleed gym photography with TRAIN BETTER set in oversized italic caps, then works through coaching services, membership pricing, transformation goals, and coach profiles. Near-black surfaces let the photography carry the color, and a single acid lime accent does the pointing.
It is a complete site rather than a landing page. Three content collections cover training programs, coach profiles, and a fitness journal, each generating its own grid entry and detail route, so adding a sixth coach is one Markdown file rather than a component edit.
Built on Astro 7 and Tailwind v4 with TypeScript. Every section reads from a single config file, so branding the site is a one-file edit with no component changes needed.
Who it's for
- Gyms and training studios
- Personal trainers and online coaches
- Strength and conditioning specialists
- CrossFit and functional fitness boxes
- Yoga, pilates, and boutique studios
- Any coaching business that needs programs, staff profiles, pricing, and lead capture
What's distinctive
- Three content collections - programs, coaches, and journal, each generating its own listing card and detail page from Markdown with schema validation, so a missing field fails the build with a message naming the field
- An interactive BMI calculator - runs client-side and returns a banded, plain-language result instead of a bare number, giving a first-time visitor something to do before the contact form. Accepts both comma and dot decimal separators
- Fluid display type - oversized italic caps sized from the container and the longest line, so a long page title scales to fit instead of overflowing
- One accent, used with discipline - acid lime on near-black across buttons, eyebrows, and icons, never as a background wash
- Coach cards that reveal name and specialty on hover over full-height portraits
- Animated stat counters that count up on first view, format-preserving so 8k+ and 40+ both work
- A private sections route that previews every block on one page, excluded from the sitemap
Built to be fast
- 143 KB of JavaScript for the whole site. No jQuery, no Bootstrap JavaScript, no vendored plugin bundle
- Motion is GSAP with ScrollTrigger plus Lenis for smooth scrolling, installed from npm and bundled by Vite so it tree-shakes
- All imagery is WebP, 1.9 MB for the entire theme
- Every animation respects prefers-reduced-motion
Agent-ready
Ships an AGENTS.md and a CLAUDE.md at the project root. Claude Code, Cursor, Copilot, and Codex read them on open, so an AI assistant starts with the file map, a task-routing table, the design decisions worth preserving, and the specific things that break the theme quietly.
What's included
- Full source: Astro 7, Tailwind v4, TypeScript, GSAP, and Lenis
- 24 generated pages from 13 route templates: Home, Programs index and detail, Coaches index and detail, Journal index and post, About, Pricing, Contact, Privacy, Terms, and a custom 404
- Four training programs, six coach profiles, and three journal articles as editable Markdown
- 35 reusable sections you can rearrange
- One-file config at src/config/site.ts, no code changes needed for branding
- Contact form wired to Formspree, FormSubmit, Netlify Forms, or a custom endpoint
- Self-hosted Geist and Inter Display fonts, so no Google Fonts request and no third-party font domain
- Deploy configs for Vercel, Netlify, and Cloudflare Pages
- Lifetime updates for this theme
- Documentation at aerolaunch.app/docs/themes/form-lab






