Skip to content

Changelog

Jonathan Sharpe edited this page Aug 24, 2024 · 1 revision

The main entrypoint scripts for development and use (dev, e2e, lint, test, serve) have deliberately remained the same, but some of the underlying details have changed. The following table summarises the main changes between v1 and v2.

What Why Notes
Dropped support for Node <20.9 and npm <10 Encourage LTS use, brings more native functionality (e.g. node --watch instead of Nodemon) -
Repo setup now uses npm workspaces Makes each workspace's package.json more manageable, clearer dev/prod split for each one You can install a dependency/run a script for a specific workspace with npm --workspace {name} ...
Base directories changed from client/ -> web/ and server/ -> api/ Support more deployment options (Vercel requires api/ directory) -
Client transpiling/bundling has migrated from a custom Babel+Webpack setup to Vite Faster, fewer files to maintain Similarly tests moved from Jest to Vitest, which is mostly API-compatible
Server transpiling no longer happens Node 20+ JS syntax support is now good enough it's not really needed dist/ directory is gone, everything now runs from api/ in production mode
Global test watching has been dropped No longer using Jest for everything Use npm --workspace {api-or-web} run test:watch to run one or the other in watch mode
Content Security Policy has been disabled by default It caused a disproportionate amount of confusion Update configuredHelmet as needed, according to the docs
E2E tests migrated from Cypress to Playwright Partly experimenting with new tools, partly to avoid some of the limitations of Cypress (see Cypress's trade offs) -
Postgres database/migration support is now in the core Most apps will need a DB, this now shows all the moving parts needed -
Clone this wiki locally