This monorepo acts as boilerplate for a full stack project written using TypeScript.
The project as a whole uses a single Prettier configuration, while client
and server
each have their own ESLint rules.
- Vite development tool
- React as a frontend library
- TailwindCSS as a CSS utility framework
- Jest as a test framework
- Node.js runtime environment
- Express.js as a backend framework
- Mocha as a test framework
- Chai as an assertion library for testing
Scripts are named in package.json
in a way that makes running npm
commands targeting a specific package directory easier. It involves prepending either run <my_directory>
or run <my_directory>:run
depending on the command we want to run, rather than having to add -w packages/<my_directory>
to each command.
To install dependencies for the project:
# `i` or `install` doesn't need the `run` keyword in order to execute
npm run client i # installs `client` packages
npm run server i # installs `server` packages
After the dependencies are installed, the dev servers can be started using:
# `dev` DOES need the `run` keyword in order to execute
npm run client:run dev # starts the frontend dev server
npm run server:run dev # starts the backend dev server