Deployment

This guide covers deploying the framework benchmarks website to various hosting platforms.

Static Site Generation

The project can be built as a static website for deployment to CDNs and static hosting services:

# Build all frameworks first
npm run build

# Generate static website
python scripts/run/build_website.py

This creates a complete static site in dist-website/ with: - Pre-rendered HTML pages for all frameworks - Comparison website with charts and statistics - All static assets (CSS, JS, images) - Framework applications ready to serve

Deployment Platforms

Netlify 1. Connect your GitHub repository to Netlify 2. Set build command: npm run build && python scripts/run/build_website.py 3. Set publish directory: dist-website 4. Deploy automatically on git push

Vercel 1. Import project from GitHub to Vercel 2. Set build command: npm run build && python scripts/run/build_website.py 3. Set output directory: dist-website 4. Configure Node.js and Python runtime

GitHub Pages 1. Use GitHub Actions workflow to build and deploy 2. Build generates dist-website/ directory 3. Deploy to gh-pages branch automatically 4. Enable Pages in repository settings

CDN/S3 Upload contents of dist-website/ to your CDN or static hosting service. All paths are relative and work without server-side processing.

Docker Deployment

For server-based deployment, use the Docker image:

# Pull and run
docker run -p 3000:3000 ghcr.io/lissy93/framework-benchmarks:latest

# Or build locally
docker build -t framework-benchmarks .
docker run -p 3000:3000 framework-benchmarks

The Docker image includes: - All frameworks pre-built - Python Flask server - Google Chrome for benchmarking - All dependencies installed

Environment Variables

For Docker deployments, you can configure: - NODE_ENV: Set to production for optimized builds - PORT: Change server port (default 3000) - HOST: Change bind address (default 127.0.0.1)

Custom Domain

For custom domains: 1. Update config.json with your domain 2. Rebuild static site with correct URLs 3. Configure DNS to point to your hosting platform 4. Set up SSL/HTTPS through your hosting provider

Performance Optimization

Static deployments benefit from: - CDN distribution for global performance - Gzip/Brotli compression - Browser caching headers - Image optimization

Server deployments can use: - Reverse proxy (nginx) for static assets - Load balancing for multiple instances - Database for storing benchmark results - Caching layers for improved performance

Continuous Deployment

The project includes GitHub Actions workflows for: - Building and testing on every commit - Generating fresh benchmark data - Updating charts and statistics - Publishing Docker images - Deploying to production

Set up webhooks or scheduled builds to keep your deployment updated with the latest benchmark results.