Kent C. Dodds' site
April 6, 2026 ยท View on GitHub
This repository contains the source code for kentcdodds.com, built with Remix, React, TypeScript, Vite, and an Express server.
Tech stack
- React Router + React + TypeScript
- Vite build pipeline
- Express runtime server
- Prisma + SQLite
- Tailwind CSS
- Vitest and Playwright for testing
Prerequisites
Setup
- Clone the repository.
- Copy environment variables:
cp services/site/.env.example services/site/.env
- Run the full setup script:
npm run setup -s
The setup script installs dependencies, resets the local database, validates the project, primes local cache data, installs Playwright browsers, and runs end-to-end tests.
This repo now uses npm workspaces. Install dependencies from the repository root
so the site and worker packages share one lockfile and one node_modules tree.
The site itself lives in services/site, while root npm run ... commands
forward to that workspace for convenience.
Local development
Start the development server:
npm run dev
Then open http://localhost:3000.
Git hooks
This repo uses Husky + lint-staged from the repository root.
- On
git commit, staged files are formatted with Prettier, then the repo runsnpm run lint:all,npm run typecheck:all, andnpm run build:all. - On
git push, the repo runsnpm run test:all.
If hooks stop running after a fresh clone, run npm install from the repo root
to reinstall them via the prepare script.
Useful scripts
npm run dev- start local development servernpm run format:staged- format staged files the same way pre-commit doesnpm run test- run unit/component testsnpm run test:all- run workspace tests used by pre-pushnpm run test:e2e:dev- run Playwright tests against dev servernpm run lint- run Oxlintnpm run lint:all- run lint across the site and workspace packagesnpm run typecheck- run TypeScript checksnpm run typecheck:all- run TypeScript checks across all workspacesnpm run build- build the appnpm run build:all- run workspace builds used by pre-commitnpm run nx:graph- inspect the Nx workspace graph
Contributing
For contribution guidelines and manual setup details, read
CONTRIBUTING.md.