Skip to content

Personal website for Chris Lyons — developer, architect, and builder — hosted on chrislyons.dev

License

Notifications You must be signed in to change notification settings

chrislyons-dev/home

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chris Lyons Personal Website

Personal website for Chris Lyons — developer, architect, and builder — hosted at chrislyons.dev

A fast portfolio built with Astro, React, and TypeScript. Uses static site generation, island architecture, and Lighthouse CI scores of 95+ across all metrics.

📖 Full Documentation

Quick Start

# Install dependencies
npm install

# Start dev server (localhost:4321)
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

Tech Stack

  • Astro 5.x - Static site framework
  • React 19.x - Interactive components
  • Tailwind CSS 4.x - Styling
  • TypeScript - Type safety
  • Vite - Build tool

Key Features

  • Fast: Static generation, minimal JavaScript, optimized assets
  • Accessible: WCAG compliant with keyboard navigation and screen reader support
  • Responsive: Mobile-first layout across common breakpoints
  • Dark Mode: System-aware theme with manual toggle
  • SEO Optimized: Complete meta tags, sitemap, and structured data

Project Structure

/
├── src/
│   ├── components/       # React components
│   ├── layouts/          # Astro layouts
│   ├── pages/            # File-based routing
│   ├── services/         # Business logic (ThemeManager, etc.)
│   └── styles/           # Global styles + Tailwind
├── docs/                 # MkDocs documentation
├── public/               # Static assets
└── .github/workflows/    # CI/CD pipelines

Commands

Command Action
npm run dev Start dev server
npm run build Build for production
npm test Run tests
npm run lighthouse Run performance audits
npm run docs:arch Generate architecture docs

Deployment

Primary deployment: Cloudflare Pages (automatic on push to main)

npm run build  # Output in dist/

See .docs/DEPLOYMENT.md for platform-specific guides.

Security Headers

Strict transport and isolation headers are defined in public/_headers. They enforce:

  • Hardened CSP aligned with current assets (self-hosted scripts plus hashed inline theme bootstrap)
  • Frame protection via frame-ancestors 'none' and X-Frame-Options: DENY
  • COOP/CORP for process isolation, plus HSTS, Referrer-Policy, and restrictive Permissions-Policy

During CD, scripts/generate-csp-headers.mjs re-builds the CSP hash list after every npm run build, so the deployed _headers file always matches the inline scripts emitted by Astro without requiring manual updates.

Cloudflare Pages automatically picks up this file at deploy time.

Contributing

See .docs/CONTRIBUTING.md for guidelines.

git clone https://github.com/chrislyons-dev/home.git
cd home
npm install
npm run dev

For detailed development workflows, see .docs/DEVELOPMENT.md.

Documentation

License

MIT

About

Personal website for Chris Lyons — developer, architect, and builder — hosted on chrislyons.dev

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages