- Yarn 3
- Uses TypeScript
- Target application runs in the browser
- Snowpack (uses esbuild)
- EditorConfig + ESLint + Prettier + lint-staged
- QA with GitHub Actions
- Renovate (auto-merge
@types, no dashboard)
- MkDocs-oriented Markdown in mind
Why modern Yarn?
Among other things, Yarn is robust, performant and extremely versatile when it comes to repository management. The given configuration provides a very solid first-time experience. Some of the things that make modern Yarn great can be seen in this project template.
It uses esbuild and it just works.
Dependabot doesn’t play nice with Yarn sometimes. We don’t like Dependabot, we like Renovate.
Why the MkDocs Markdown?
If you’re going to want to build any documentation site, you will appreciate having auto-formatted to this style from the start. Using mkdocs-material for documentation sites is highly recommended. The Python Markdown ecosystem is much more versatile and performant than the JS/TS space.
Why is PnP disabled?
While PnP is generally preferred for its strictness, using it still incurs a lot of friction. Because PnP is enabled by default in modern Yarn, this deters many users from adopting modern Yarn. Thus, this project uses Yarn’s
node-moduleslinker, the behavior of which should be very familiar to most adopters.
Why is telemetry disabled?
Whenever possible, the disclosure of any data should be opt-in. Please refer to the document linked above, and enable telemetry after carefully reading it.
Why not Zero-Installs?
Zero-Installs are purely a
.gitignore-controlled feature. Most new adopters do not expect the behavior of the default configuration and some adopters have raised concerns over long-term effects. Enable it after carefully reading the article linked above.
Why not use Husky for the hook?
Husky is more complex than what is required to install the hook in a modern Yarn repository. We also do not want to hand over control over repository behavior to a dependency.