We use eslint for linting, and we have a private unpublished package called
eslint-config-custom that we share across packages and apps. This package is not meant to be used outside the repository and is not published to npm.

For each type of project we have a different configuration to extend and use from the shared configuration, they are all based on the Vercel Engineering Style Guide. If you want to run linting check on a specific package they all have a lint script that you can run with

inside of any package, or in the react-email project root
pnpm lint

We also use prettier for formatting, and we have just one configuration for all the projects on the root of the repo, if you want to use it you can just run:

react-email project root
pnpm format

Both the linting and formatting are ensured by our GitHub CI so make sure that you have your linting and formatting right before you get to opening a PR or asking for a review on it.