- 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
- Dev Containers integration
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.format: reformats the code with Prettier.lint:fix: attempts to fix all ESLint and Prettier violations.
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.