Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,12 @@ jobs:
- name: Install dependencies
run: npm ci

- name: Scan for secrets
run: npx secretlint **/*

- name: Run npm audit
run: npm run security:audit

- name: Validate commit messages
if: github.event_name == 'push'
run: npx commitlint --config config/.commitlintrc.json --from HEAD~1 --to HEAD --verbose
Expand All @@ -100,15 +106,14 @@ jobs:
- name: Run type checks
run: npm run type

- name: Run tests
run: npm test -- --run
- name: Run tests with coverage
run: npm run test:coverage -- --run

- name: Build project
run: npm run build

- name: Run Lighthouse CI
run: npm run lighthouse
continue-on-error: true
env:
LHCI_BUILD_CONTEXT__CURRENT_HASH: ${{ github.sha }}

Expand Down
7 changes: 7 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
echo "🎨 Checking code formatting..."
npm run formatcheck

echo "dY"? Running secret scan..."
npx secretlint **/*

echo "dY"? Running npm audit..."
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in echo statement. Should be an emoji or a proper opening quote.

Suggested change
echo "dY"? Running secret scan..."
npx secretlint **/*
echo "dY"? Running npm audit..."
echo "🕵️ Running secret scan..."
npx secretlint **/*
echo "🛡️ Running npm audit..."

Copilot uses AI. Check for mistakes.
npm run security:audit


echo "🔍 Running linter..."
npm run lint

Expand Down
19 changes: 1 addition & 18 deletions .lighthouseci/assertion-results.json
Original file line number Diff line number Diff line change
@@ -1,18 +1 @@
[
{
"name": "minScore",
"expected": 0.95,
"actual": 0.94,
"values": [
0.94,
0.94,
0.94
],
"operator": ">=",
"passed": false,
"auditProperty": "accessibility",
"auditId": "categories",
"level": "warn",
"url": "http://localhost:4321/architecture"
}
]
[]
2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240660519.html

This file was deleted.

6,873 changes: 0 additions & 6,873 deletions .lighthouseci/lhr-1763240660519.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240673137.html

This file was deleted.

6,856 changes: 0 additions & 6,856 deletions .lighthouseci/lhr-1763240673137.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240684868.html

This file was deleted.

6,851 changes: 0 additions & 6,851 deletions .lighthouseci/lhr-1763240684868.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240696610.html

This file was deleted.

6,855 changes: 0 additions & 6,855 deletions .lighthouseci/lhr-1763240696610.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240708415.html

This file was deleted.

6,851 changes: 0 additions & 6,851 deletions .lighthouseci/lhr-1763240708415.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240720235.html

This file was deleted.

6,851 changes: 0 additions & 6,851 deletions .lighthouseci/lhr-1763240720235.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240732236.html

This file was deleted.

7,056 changes: 0 additions & 7,056 deletions .lighthouseci/lhr-1763240732236.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240744154.html

This file was deleted.

7,052 changes: 0 additions & 7,052 deletions .lighthouseci/lhr-1763240744154.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240756002.html

This file was deleted.

7,053 changes: 0 additions & 7,053 deletions .lighthouseci/lhr-1763240756002.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240768152.html

This file was deleted.

7,220 changes: 0 additions & 7,220 deletions .lighthouseci/lhr-1763240768152.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240780188.html

This file was deleted.

7,216 changes: 0 additions & 7,216 deletions .lighthouseci/lhr-1763240780188.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240792380.html

This file was deleted.

7,216 changes: 0 additions & 7,216 deletions .lighthouseci/lhr-1763240792380.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240804218.html

This file was deleted.

6,878 changes: 0 additions & 6,878 deletions .lighthouseci/lhr-1763240804218.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240815974.html

This file was deleted.

6,878 changes: 0 additions & 6,878 deletions .lighthouseci/lhr-1763240815974.json

This file was deleted.

2,630 changes: 0 additions & 2,630 deletions .lighthouseci/lhr-1763240827825.html

This file was deleted.

6,878 changes: 0 additions & 6,878 deletions .lighthouseci/lhr-1763240827825.json

This file was deleted.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292506024.html

Large diffs are not rendered by default.

8,386 changes: 8,386 additions & 0 deletions .lighthouseci/lhr-1767292506024.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292520823.html

Large diffs are not rendered by default.

8,372 changes: 8,372 additions & 0 deletions .lighthouseci/lhr-1767292520823.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292534342.html

Large diffs are not rendered by default.

8,368 changes: 8,368 additions & 0 deletions .lighthouseci/lhr-1767292534342.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292547684.html

Large diffs are not rendered by default.

8,409 changes: 8,409 additions & 0 deletions .lighthouseci/lhr-1767292547684.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292561032.html

Large diffs are not rendered by default.

8,426 changes: 8,426 additions & 0 deletions .lighthouseci/lhr-1767292561032.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292574499.html

Large diffs are not rendered by default.

8,414 changes: 8,414 additions & 0 deletions .lighthouseci/lhr-1767292574499.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292587891.html

Large diffs are not rendered by default.

8,540 changes: 8,540 additions & 0 deletions .lighthouseci/lhr-1767292587891.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292601374.html

Large diffs are not rendered by default.

8,544 changes: 8,544 additions & 0 deletions .lighthouseci/lhr-1767292601374.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292614731.html

Large diffs are not rendered by default.

8,544 changes: 8,544 additions & 0 deletions .lighthouseci/lhr-1767292614731.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292628544.html

Large diffs are not rendered by default.

9,040 changes: 9,040 additions & 0 deletions .lighthouseci/lhr-1767292628544.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292642386.html

Large diffs are not rendered by default.

9,027 changes: 9,027 additions & 0 deletions .lighthouseci/lhr-1767292642386.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292656167.html

Large diffs are not rendered by default.

9,124 changes: 9,124 additions & 0 deletions .lighthouseci/lhr-1767292656167.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292669510.html

Large diffs are not rendered by default.

8,408 changes: 8,408 additions & 0 deletions .lighthouseci/lhr-1767292669510.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292682871.html

Large diffs are not rendered by default.

8,414 changes: 8,414 additions & 0 deletions .lighthouseci/lhr-1767292682871.json

Large diffs are not rendered by default.

2,895 changes: 2,895 additions & 0 deletions .lighthouseci/lhr-1767292696236.html

Large diffs are not rendered by default.

8,403 changes: 8,403 additions & 0 deletions .lighthouseci/lhr-1767292696236.json

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions .lighthouseci/links.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"http://localhost:4321/": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1763240831299-4847.report.html",
"http://localhost:4321/about": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1763240831681-44523.report.html",
"http://localhost:4321/projects": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1763240831984-80516.report.html",
"http://localhost:4321/architecture": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1763240832362-36732.report.html",
"http://localhost:4321/contact": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1763240832697-45421.report.html"
"http://localhost:4321/": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1767292700789-34338.report.html",
"http://localhost:4321/about": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1767292702303-61835.report.html",
"http://localhost:4321/projects": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1767292703246-87315.report.html",
"http://localhost:4321/architecture": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1767292704103-24838.report.html",
"http://localhost:4321/contact": "https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1767292704810-38649.report.html"
}
7 changes: 7 additions & 0 deletions .secretlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"rules": [
{
"id": "@secretlint/secretlint-rule-preset-recommend"
}
]
}
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Personal website for Chris Lyons — developer, architect, and builder — hosted at [chrislyons.dev](https://chrislyons.dev)

A modern, performant portfolio built with Astro, React, and TypeScript. Features static site generation, island architecture, and Lighthouse CI scores of 95+ across all metrics.
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](https://chrislyons-dev.github.io/home/)**

Expand Down Expand Up @@ -32,9 +32,9 @@ npm run preview

## Key Features

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

Expand Down
Loading