- Add generate-pdfs.js script using Puppeteer to render HTML pages to PDF
- Update package.json with puppeteer dependency and npm script
- Add dynamic PDF download link to footer (checks if PDF exists, shows link)
- Add docker/resume/pdfs/ to .gitignore (generated at deploy time)
Run 'npm install && npm run generate-pdfs' during deployment
- Simplified Matomo code in header.html to use standard tracking configuration
- Removed tracking-limiting settings (setDocumentTitle, setCookieDomain, setDomains, disableCookies)
- Fixed matomo.js script source to load from metrics.nixc.us domain
- All pages using includes system now have full Matomo tracking enabled
- Updated meta descriptions and titles for all HTML pages with concise, keyword-rich content
- Optimized main pages (index.html, stories/index.html) with compelling descriptions
- Enhanced all 15 story pages with unique, SEO-optimized meta tags
- Improved CSV tool page SEO description
- Updated generate-sitemap.sh to use production domain (https://colinknapp.com)
- Regenerated sitemap.xml with production URLs and current timestamps
- Verified and updated all integrity hashes using update-csp-hashes.sh