This repository contains the Next.js implementation of JerrettDavis.com. The site is static-first, keeps content in the repo, and focuses on a clean, readable presentation of writing, projects, and personal notes.
The site uses Next.js (pages router) with React and TypeScript. Markdown content is parsed with gray-matter and rendered through the unified/remark/rehype pipeline, with highlight.js providing syntax highlighting. Styling is handled with CSS modules and targeted Emotion styles. Font Awesome supplies iconography, and Vercel Analytics provides lightweight analytics.
posts/holds blog posts as markdown with frontmatter.docs/holds technical documentation that renders at/docs.data/contains typed content for navigation, projects, tools, and hobbies.pages/defines routes and page composition.public/contains static assets, the RSS/Atom/JSON feeds, and site icons.
The /docs folder is built into the site and also readable directly from the repository. See the
rendered docs at /docs and update the markdown files when architecture or tooling changes.
Prerequisites: Node.js and npm.
npm installnpm run devnpm run buildnpm run start
npm run testfor unit tests.npm run test:e2efor Playwright end-to-end checks (runsnpm run devunlessPLAYWRIGHT_BASE_URLis set).- First time only:
npx playwright installto download browsers.
This project is designed for Vercel hosting. Set NEXT_PUBLIC_SITE_URL to control the canonical
base URL used in sitemap generation.
The site includes automated syndication to Hashnode and Dev.to. See /docs/syndication for detailed setup instructions and configuration options. Key features:
- Automatic publishing to external platforms after deployment
- Per-post syndication control via frontmatter
- Tag/category filtering
- Dry-run mode for testing
- State tracking to prevent duplicates
The site surfaces live build and repo telemetry via API routes under /api. Configure the
following optional environment variables to avoid anonymous rate limits:
VERCEL_TOKEN,VERCEL_PROJECT_ID,VERCEL_TEAM_IDfor preview/build status.GITHUB_TOKENfor GitHub Actions pipelines and project detail snapshots.