This repository contains the source code for kentcdodds.com, built with Remix, React, TypeScript, Vite, and an Express server.
- React Router + React + TypeScript
- Vite build pipeline
- Express runtime server
- Prisma + SQLite
- Tailwind CSS
- Vitest and Playwright for testing
- 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.
Start the development server:
npm run dev
Then open http://localhost:3000.
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.
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
For contribution guidelines and manual setup details, read
CONTRIBUTING.md.