Documentation
Dev Tools

Dev Tools

These tools are also set up in the project. Usually, setting up these parts is time-consuming and the least pleasure of all, but everyting is alreadt done for you. Enjoy!

TypeScript

The codebase is 100% TypeScript (opens in a new tab). Path aliases are available for apps/web[basic|pro]. Shared tsconfigs are located at packages/tsconfig-custom. TypeScript is used per-package.

ESLint

ESLint (opens in a new tab) is preconfigured with all the recommended React.js, Next.js and Turbo rules. For the style guide it uses the Airbnb config (opens in a new tab). Shared ESLint configs are located at packages/eslint-config-custom.

Secretlint

Secretlint (opens in a new tab) is a linting tool to prevent committing credentials (API keys, etc.). Secretlint is used for the whole monorepo.

commitlint

commitlint (opens in a new tab) is a tool to enforce a commit structure convention for the team. commitlint is used in the root.

Jest

Jest (opens in a new tab) is a JS testing framework for unit and snapshot testing, configured to work with Next.js and React.js out of the box. Shared Jest configs are located at packages/jest-config-custom. Jest is used per-package.

Prettier

Prettier (opens in a new tab) is a code formatter to write beautiful code. Prettier is used for the whole monorepo.

lint-staged

lint-staged (opens in a new tab) is a tool to run linters and other scripts only against staged files before committing. It works well in combination with Husky. lint-staged is used per-package.

husky

husky (opens in a new tab) is a tool to configure Git hooks. husky is used in the root. Currently 2 hooks are added

  • pre-commit - run lint-staged on the staged files before committing;
  • commit-msg - run commitlint to verify the commit message.

manypkg

manypkg (opens in a new tab) is a linter for package.json files in Yarn, Bolt or pnpm monorepos. For example, it is useful for keeping dependency versions in sync across all packages in the project. manypkg is used in the root.