Oopinionated, fully typed, and production-ready project template for Vite.
The goal of this template is to be practical and batteries included starting point for both quick experiments and projects designed for production quality.
Includes plenty of examples and documentation of how to do things but minimal cruft to delete to get you going.
Please check out the homepage for full docs. A detailed changelog is available.
- Vue 3 with Pinia store and vue-router routing
- Automatic imports via unplugin-auto-import
- Tailwind CSS with the official
typographyplugin, plus automatic icons using Iconify for Tailwind CSS - Comprehensive tooling configs for TypeScript, Eslint, Oxlint, Prettier, EditorConfig and recommended settings and configs for VSCode
- Full testing setup using Vitest (components) and Playwright (e2e) together with Github Actions for CI/CD including code coverage reporting in PRs.
- Project root aliased as
@(import { myUtilsThing } from @/utils/mylib) - Router instance available in the store:
this.router.push('/') - Any of 100000+ Iconify icons available as Tailwind classes:
<span class="iconify mdi--home"></span> - Predefined and fully typed global variables:
VITE_APP_VERSIONis read frompackage.jsonversion at build time and stored to the store asstore.appMeta.versionVITE_APP_BUILD_EPOCHis populated asnew Date().getTime()at build time and stored to the store asstore.appMeta.buildTime
- Delete
src/components/HelloWorld.vueandsrc/components/__tests__/HelloWorld.spec.ts - Delete the content from
@/pages/IndexPage.vue - Delete demo styles from
@/assets/base.css - Profit!11
- Follow @uninen on Twitter or unessa.net on Bluesky
- Read my continuously updating learnings from Vite / Vue / TypeScript and other Web development topics from my Today I Learned site
Contributions are welcome! Please follow the code of conduct when interacting with others.