Unisex gym website for The Key 2 Fitness, Erode.
- Next.js 14 (App Router, TypeScript)
- Framer Motion (all animations)
- next/font (Bebas Neue, Barlow Condensed, Barlow)
- next/image (optimised images)
- localStorage (CMS persistence — no backend needed)
npm installnpm run devnpm run build
npm start- Push this folder to a GitHub repo
- Go to vercel.com → Import project
- Select the repo → Deploy
- Buy a domain (e.g. key2fitness.in) → Add in Vercel Settings → Domains
Visit /admin (e.g. https://yourdomain.com/admin)
Password: Dynamic (changes daily)
| Section | Fields |
|---|---|
| 🏠 Hero | Headlines, subheading, quotes |
| 👩 Female | Headlines, description, stats |
| 🏋️ Training | All 6 cards (title, icon, desc, tag) |
| 💰 Prices | All 5 membership prices + PT packages |
| 📞 Contact | Address, phone, hours, payment |
| 🖼 Gallery | Add/remove photos by URL |
To add gym photos:
- Upload to imgbb.com (free)
- Copy the Direct Link
- Admin → Gallery → Paste URL → Add Photo → Save
Keyboard shortcut: Ctrl+S to save
Replace Unsplash placeholder images by:
- Going to Admin → Gallery
- Pasting your actual gym photo URLs
For Hero and Female section photos, edit these lines in:
components/HeroSection.tsx— male athlete photo URLcomponents/FemaleSection.tsx— female athlete photo URL
app/
layout.tsx ← fonts, metadata
page.tsx ← main page
globals.css ← CSS variables + global styles
admin/
page.tsx ← full CMS dashboard
components/
Navbar.tsx
HeroSection.tsx
FemaleSection.tsx
TrainingSection.tsx
GallerySection.tsx
PackagesSection.tsx
ContactSection.tsx
Footer.tsx
lib/
cms-data.ts ← data types, defaults, localStorage helpers
Built with ❤️ for The Key 2 Fitness, Erode.