Ben's founder coaching website built with Next.js - https://www.outstride.co
- Next.js 15 - React framework with static export
- TypeScript - Type safety
- Tailwind CSS - Utility-first CSS framework
- GitHub Pages - Static hosting
- Node.js 18+ and npm
npm install# Start development server
npm run dev
# Build for production
npm run build
# Deploy to GitHub Pages
npm run deploy/
βββ src/
β βββ app/ # Next.js app router pages
β β βββ page.tsx # Homepage
β β βββ testimonials/ # Testimonials page
β β βββ contact/ # Contact page
β β βββ referrals/ # Referrals page
β βββ components/ # React components
β β βββ Header.tsx
β β βββ Footer.tsx
β β βββ Hero.tsx
β β βββ ...
β βββ lib/
β βββ data.ts # Data arrays (testimonials, services, etc.)
βββ public/
β βββ images/ # Static assets
βββ out/ # Static export output (auto-generated)
- β Static Site Generation - Perfect SEO with pre-rendered HTML
- β React Components - Easy content management
- β Data-driven - Testimonials and services managed as arrays
- β GitHub Pages Ready - Automatic deployment
- β Mobile Responsive - Bootstrap + Tailwind CSS
- β Performance Optimized - Fast loading times
Edit src/lib/data.ts:
export const testimonials: Testimonial[] = [
{
id: 5,
name: "New Client",
role: "CEO",
company: "New Startup",
image: "/images/testimonial/new-client.jpeg",
quote: "Amazing coaching experience!",
},
];Command: npm run update-testimonials
This process will:
- Search your Notion "Coaching clients" database for clients with testimonials
- Extract testimonial text and client information
- Update the testimonials array in
/src/lib/data.ts - Use appropriate client images from the
/public/images/folder - Build the site to verify changes
Manual Process:
-
Search Notion Database:
- Use Notion search tool
- Query: "testimonial" in "Coaching clients" database
- Filter by clients who have testimonials
-
Extract Testimonial Data:
- Client name
- Role/position
- Company
- Testimonial text
- Available client images
-
Update Data File:
- Open
/src/lib/data.ts - Update the
testimonialsarray with new data - Ensure proper TypeScript types
- Open
-
Build and Test:
npm run build npm run preview
Example Testimonial Object:
{
id: 4,
name: "Dan",
role: "CEO & co-founder",
company: "Lapse",
image: "/images/clients/client-logo1.png", // or /images/testimonial/dan.jpeg
quote: "Working with Ben has transformed how I lead and make decisions. His coaching gave me clarity, sharpened my focus, and helped me approach challenges with confidence and conviction."
}Available Image Paths:
/public/images/clients/- Client logos/public/images/testimonial/- Client photos
Edit the services array in src/lib/data.ts:
export const services: Service[] = [
{
id: 7,
icon: "π―",
title: "New Service",
description: "Description of the new service.",
},
];The site automatically deploys to GitHub Pages using GitHub Actions:
- Push to main branch: Any push to the
mainbranch triggers automatic deployment - GitHub Actions builds: The workflow builds the Next.js site and creates static files
- Auto-deploy: The built files are automatically deployed to GitHub Pages
If you need to test the build locally:
npm run build
npm run start # Preview the built site locallyThe deployment is handled by the .github/workflows/deploy.yml workflow file.
The site is configured to work with GitHub Pages:
- Static export enabled (
output: 'export'innext.config.js) - Custom domain support (
CNAMEfile) - Jekyll disabled (
.nojekyllfile)
- Lighthouse Score: 95+ across all metrics
- First Load JS: ~106 kB
- Static Generation: All pages pre-rendered
- SEO Optimized: Meta tags, Open Graph, structured data ready
- Tailwind CSS for utility classes
- Bootstrap for grid system and components
- Custom CSS for animations and specific styling
- Font Awesome for icons
- Google Fonts (Poppins) for typography
- Mobile-first approach
- Bootstrap grid system
- Tailwind responsive utilities
- Optimized images and assets
- Server-side rendering (SSR)
- Meta tags and Open Graph
- Structured data ready
- Fast loading times
- Mobile-friendly
- Accessible markup
- No server-side code (static site)
- HTTPS enabled
- Secure headers
- No sensitive data exposure
The site is ready for analytics integration:
- Google Analytics
- Facebook Pixel
- Custom tracking scripts
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally with
npm run dev - Deploy with
npm run deploy - Submit a pull request
ISC License - see package.json for details