- Node LTS support (verified working on 20.x LTS release)
- Express server
- Postgres database with
pg
- Logging with Winston and Morgan
- React client with Vite
- Client-side routing with React Router
- Linting with ESLint and Prettier
- Unit and integration testing with Vitest (with SuperTest and TestContainers)
- E2E testing with Playwright
- Dev mode (watch modes for client and server, proxy to avoid CORS issues)
- Production build (single deployment artifact)
- GitHub Actions pipeline
- Google App Engine, Heroku, Render or Vercel deployment
- Docker build
Various scripts are provided in the package file, but many are helpers for other scripts; here are the ones you'll commonly use:
dev
: starts the frontend and backend in dev mode, with file watching (note that the backend runs on port 3100, and the frontend is proxied to it).e2e
: builds and starts the app in production mode and runs the Playwright tests against it.e2e:dev
: builds and starts the app in dev mode and runs the Playwright tests against it.
lint
: runs ESLint and Prettier against all the relevant files in the project.serve
: builds and starts the app in production mode locally.ship
: runslint
, thentest
, thene2e
; ideal before agit push
.test
: runs the unit and integration tests.test:cover
: runs the tests and outputs coverage data.