A Jekyll-powered personal website showcasing ML research, tools, and technical guides.
- Ruby 3.0+
- Node.js 18+
- Bundler
# Install Ruby dependencies
bundle install
# Install Node.js dependencies (for testing)
npm install
# Start development server
bundle exec jekyll serve
# Site available at http://localhost:4000uv venv
source .venv/bin/activate
uv add -p 3.12 @playwright/test
bundle install# Development
bundle exec jekyll serve # Start dev server with auto-reload
bundle exec jekyll serve --drafts # Include draft posts
# Testing
npm test # Run Playwright visual tests
npm run test:ui # Run tests with UI
# Building
bundle exec jekyll build # Generate static site to _site/
JEKYLL_ENV=production bundle exec jekyll build # Production build├── _config.yml # Jekyll configuration
├── _layouts/ # Page templates
├── _includes/ # Reusable components
├── _pages/ # Static pages
├── _posts/ # Blog posts & guides
├── _sass/ # Stylesheets
├── assets/ # Static assets
├── img/ # Optimized images
├── tests/ # Playwright tests
└── scripts/ # Build & optimization scripts
- Consolidate Image Assets: Merge
/imgand/assetsdirectories - Optimize Jekyll Configuration: Remove unused plugins and streamline config
- Implement Content Strategy: Organize posts by category/type
- Add Development Tooling: Pre-commit hooks, linting, automated formatting
- Performance Optimization: Implement lazy loading, optimize images
- Testing Infrastructure: Expand visual regression tests
- SEO Enhancement: Improve structured data and meta tags
- Accessibility Audit: Ensure WCAG compliance
- Content Management: Add front matter validation
- Build Optimization: Implement asset minification pipeline
- Documentation: Add contributing guidelines
- Automation: GitHub Actions for deployment and testing
- Analytics: Implement privacy-focused analytics
- Progressive Enhancement: Add offline capabilities
- Internationalization: Prepare for multi-language support
- Lint Configuration: Add Jekyll linting rules
- Asset Pipeline: Modernize CSS/JS handling
- Error Handling: Improve 404 and error pages
- Security: Add CSP headers and security.txt
JEKYLL_ENV: Set toproductionfor production builds
_config.yml: Main Jekyll configurationGemfile: Ruby dependenciespackage.json: Node.js dependencies and scriptsplaywright.config.js: Test configuration
Site is deployed to briancohn.com and hosted on Cloudflare Pages.
JEKYLL_ENV=production bundle exec jekyll build- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
npm test - Submit a pull request
MIT License - see LICENSE file for details.