AJM FIT — Personal Training Website
A premium personal training website for AJMFit (ISSA Certified Personal Trainer). Built with Next.js 14, TypeScript, and Tailwind CSS 3 with Framer Motion animations. Deployed at ajmfit.com.
What It Is
A fully custom personal training website featuring a bold, high-energy design with custom dumbbell cursor, grain texture overlays, and cinematic hero video. The site serves as a lead generation funnel from landing page to application form.
Key Metrics
- 5 Pages — Home, About, Programs, Newsletter, Apply
- Beehiiv Integration — "Brains & Gains" newsletter
- Framer Motion — Smooth page transitions & scroll animations
- Deployed — ajmfit.com via Vercel
Tech Stack
User Flow
Design System
A carefully crafted design language featuring Barlow + Barlow Condensed fonts, a navy/blue/orange brand palette, and distinctive visual treatments including a custom dumbbell cursor and grain texture overlay.
Brand Colors
#1B2D50
#2E6AB0
#F08B1E
Typography
| Font Usage | |
|---|---|
| Barlow Condensed | Headlines, hero text, section titles — all-caps, bold |
| Barlow | Body text, paragraphs, UI elements — clean sans-serif |
Both loaded via Google Fonts. Barlow Condensed creates the strong, athletic feel.
Signature Effects
- Dumbbell cursor — Custom SVG cursor replacing default pointer sitewide
- Grain overlay — Subtle noise texture on backgrounds for tactile depth
- Scroll reveals — Framer Motion whileInView animations on all sections
- Gradient accents — Orange-to-blue gradients on CTAs and highlights
tailwind.config.ts under the theme.extend section. All brand colors, fonts, and spacing are centralized there for consistency.Pages Tour
Five pages that form a funnel — from awareness (Home) to conversion (Apply). Each page is purpose-built for its role in the journey.
Home (/) — The Hook
- Hero section — Full-width background video with sound toggle button
- CTA overlay — Bold headline + "Start Your Journey" button
- Social proof — Client testimonials and transformation stats
- Scroll reveal — Sections animate in on viewport entry via Framer Motion
About (/about) — The Credibility
- Trainer photo with parallax effect
- ISSA Certification badge
- Dumbbell-styled bullet points for bio highlights
- Training philosophy section
Programs (/work-with-me) — The Offer
- Monthly/yearly pricing toggle (animated)
- Tiered program cards with feature lists
- Highlight "most popular" tier
- "Apply Now" CTA links to application form
Newsletter (/newsletter) — The Nurture
- "Brains & Gains" branded newsletter signup
- Beehiiv embed/API integration
- Email input + subscribe button
- Social proof: subscriber count badge
Apply (/apply) — The Conversion
- Multi-field application form
- React Hook Form for state management
- Zod schema validation (client-side)
- Success confirmation with next steps
Newsletter Integration
Beehiiv powers the "Brains & Gains" newsletter. Free tier (2,500 subscribers, unlimited sends). API integration for seamless subscribe flow.
How It Works
Configuration
| Environment Variables (Vercel) | |
|---|---|
| BEEHIIV_API_KEY | API key from Beehiiv dashboard |
| BEEHIIV_PUBLICATION_ID | Must include pub_ prefix (pub_eaa49601-...) |
Architecture
A standard Next.js 14 App Router project with TypeScript, Tailwind CSS 3, and Framer Motion. Deployed on Vercel with environment variables for Beehiiv.
Project Structure
| Key Directories & Files | |
|---|---|
| app/ | Next.js App Router pages — layout.tsx, page.tsx, and route directories |
| app/work-with-me/ | Programs page with pricing toggle component |
| app/newsletter/ | Newsletter signup page |
| app/apply/ | Application form with React Hook Form + Zod |
| app/api/newsletter/ | API route proxying to Beehiiv V2 subscriptions |
| components/ | Shared UI components (navbar, footer, buttons, animations) |
| assets/ | Images, video files, custom cursor SVGs |
| tailwind.config.ts | Brand tokens — colors (#1B2D50, #2E6AB0, #F08B1E), fonts (Barlow) |
Deployment
Platform: Vercel
Domain: ajmfit.com
Build: next build (automatic on push)
Env Vars:
- BEEHIIV_API_KEY
- BEEHIIV_PUBLICATION_ID