Skip to content

guillaumecrespel/website

Repository files navigation

Deploy

Guillaume CRESPEL Portfolio

Modern and high-performance professional portfolio built with the latest web technologies.

πŸš€ Requirements Met

  • βœ… Very Fast : Multiple optimizations for maximum performance
  • βœ… Best Lighthouse Score : Architecture optimized for Core Web Vitals metrics
  • βœ… Best SEO : Meta tags, sitemap, and optimized semantic structure
  • βœ… Light Analytics : Minimal and privacy-respecting tracking
  • βœ… Single page with scroll interactions : Smooth navigation and animations

πŸ› οΈ Technical Stack

Core

  • Astro 5.10 : Modern framework for ultra-performant static sites
  • React 19.1 : Interactive components with latest features (Actions, useOptimistic, etc.)
  • TypeScript : Static typing for robust code

Styling & UI

  • Tailwind CSS 4.1 : Utility CSS framework with custom design system
  • CSS Animations : Smooth transitions and micro-interactions
  • Responsive Design : Mobile-first with optimized breakpoints

Internationalization

  • Localized URLs : /fr/ and /en/ with automatic fallback

Content & CMS

  • MDX : Professional experiences in enriched Markdown
  • Content Collections : Typed content management with Zod validation
  • Optimized Images : Progressive loading and WebP formats

Performance & SEO

  • Automatic Sitemap : XML generation for search engines
  • Dynamic Meta Tags : Open Graph and Twitter Cards
  • Lazy Loading : Deferred component loading
  • Code Splitting : Automatic bundle division

Deployment

  • Fly.io : Modern and performant cloud platform
  • Docker : Containerization for reliable deployment
  • Automatic HTTPS : SSL certificates managed automatically

πŸ“ Project Structure

src/
β”œβ”€β”€ components/          # Reusable components
β”‚   β”œβ”€β”€ Header.astro    # Main navigation
β”‚   β”œβ”€β”€ Hero.astro      # Home section
β”‚   β”œβ”€β”€ About.astro     # About section
β”‚   β”œβ”€β”€ Experience.astro # Professional experiences
β”‚   β”œβ”€β”€ Projects.astro  # Project portfolio
β”‚   β”œβ”€β”€ Contact.astro   # Contact form
β”‚   β”œβ”€β”€ Footer.astro    # Footer
β”‚   β”œβ”€β”€ ThemeToggle.tsx # Light/dark theme toggle
β”‚   └── LanguageToggle.tsx # Language toggle
β”œβ”€β”€ content/            # MDX content
β”‚   β”œβ”€β”€ experiences/    # Professional experiences
β”‚   └── config.ts       # Collection configuration
β”œβ”€β”€ i18n/              # Internationalization
β”‚   β”œβ”€β”€ ui.ts          # French translations
β”‚   β”œβ”€β”€ en.ts          # English translations
β”‚   └── utils.ts       # Types and utilities
β”œβ”€β”€ layouts/           # Page layouts
β”‚   └── Layout.astro   # Main layout with SEO
└── pages/             # Application pages
    └── index.astro    # Home page

πŸš€ Installation and Development

Prerequisites

  • Node.js 22+
  • pnpm

Installation

# Clone the repository
git clone <repository-url>
cd website

# Install dependencies
pnpm install

# Start development server
pnpm dev

Available Scripts

pnpm dev             # Development server
pnpm build           # Production build
pnpm preview         # Build preview
pnpm lint            # Linting with Biome
pnpm format          # Code formatting

🎨 Features

Design System

  • Dark/Light Theme : Automatic toggle with localStorage persistence
  • Color Palette : Coherent system with CSS variables
  • Typography : Inter font for text, JetBrains Mono for code
  • Animations : Smooth transitions and micro-interactions

Performance

  • Core Web Vitals : Optimized for LCP, FID, CLS
  • Bundle Size : Automatic code splitting
  • Images : WebP formats with fallback
  • Caching : Optimized caching strategies

SEO

  • Meta Tags : Dynamic tags for each page
  • Structured Data : Structured data for search engines
  • Sitemap : Automatic XML generation
  • Robots.txt : Configuration for crawlers

Accessibility

  • ARIA Labels : Complete screen reader support
  • Keyboard Navigation : Complete keyboard navigation
  • Contrast : WCAG compliant contrast ratios
  • Focus Management : Focus management for accessibility

🌐 Deployment

Fly.io (Recommended)

# Install Fly CLI
curl -L https://fly.io/install.sh | sh

# Login
fly auth login

# Deploy
fly deploy

Environment Variables

# Production
NODE_ENV=production
SITE_URL=https://guillaumecrespel.fr

πŸ“Š Performance Metrics

  • Lighthouse Score : 95+ on all criteria
  • First Contentful Paint : < 1.5s
  • Largest Contentful Paint : < 2.5s
  • Cumulative Layout Shift : < 0.1
  • First Input Delay : < 100ms

πŸ”§ Configuration

Astro

The astro.config.mjs file configures:

  • Integrations (React, Tailwind, Sitemap, MDX)
  • Internationalization
  • Build optimizations
  • SEO configuration

Biome

The biome.json file defines:

  • Linting rules
  • Code formatting
  • TypeScript configuration

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.

πŸ“ž Contact

Project Link: https://guillaumecrespel.fr

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •