BUG REPRO REPO
(see commit history for reproduction steps - they're very simple)
What's different from the Vitesse boilerplate/what's changed?
- Add DaisyUI
- Configure WindiCSS for DaisyUI
- Add simple plugin for safe-area utilities
- Add simple test page
prefix
in windi.config.ts)
Observe WORKING implementation (without using pnpm dev
- navigate to http://localhost:3333/test
- Enjoy the beautiful layout!
π
prefix
config key in windi.config.ts)
Observe BUG (triggered by - Go to window.config.ts --> uncomment ANY of the included prefix options (lines 11 - 13)
pnpm dev
- navigate to http://localhost:3333/test
- All hell has broken loose
π±
Mocking up web app with Vitesse(speed)
Features
-
π File based routing -
π Layout system -
π² PWA -
π¨ Windi CSS - next generation utility-first CSS framework -
π I18n ready -
π Markdown Support -
π₯ Use the new<script setup>
syntax -
π₯ APIs auto importing - use Composition API and others directly -
π¨ Server-side generation (SSG) via vite-ssg -
π¦ Critical CSS via critters -
π¦Ύ TypeScript, of course -
βοΈ Deploy on Netlify, zero-config
Pre-packed
UI Frameworks
- Windi CSS (On-demand TailwindCSS) - lighter and faster, with a bunch of additional features!
Icons
- Iconify - use icons from any icon sets
π IcΓ΄nes unplugin-icons
- icons as Vue components
Plugins
- Vue Router
vite-plugin-pages
- file system based routingvite-plugin-vue-layouts
- layouts for pages
- Pinia - Intuitive, type safe, light and flexible Store for Vue using the composition api
unplugin-vue-components
- components auto importunplugin-auto-import
- Directly use Vue Composition API and others without importingvite-plugin-pwa
- PWAvite-plugin-windicss
- Windi CSS Integrationvite-plugin-md
- Markdown as components / components in Markdownmarkdown-it-prism
- Prism for syntax highlightingprism-theme-vars
- customizable Prism.js theme using CSS variables
- Vue I18n - Internationalization
vite-plugin-vue-i18n
- Vite plugin for Vue I18n
- VueUse - collection of useful composition APIs
@vueuse/head
- manipulate document head reactively
Coding Style
- Use Composition API with
<script setup>
SFC syntax - ESLint with @antfu/eslint-config, single quotes, no semi.
Dev tools
- TypeScript
- pnpm - fast, disk space efficient package manager
vite-ssg
- Server-side generation- critters - Critical CSS
- Netlify - zero-config deployment
- VS Code Extensions
- Vite - Fire up Vite server automatically
- Volar - Vue 3
<script setup>
IDE support - Iconify IntelliSense - Icon inline display and autocomplete
- i18n Ally - All in one i18n support
- Windi CSS Intellisense - IDE support for Windi CSS
- ESLint
Variations
As this template is strongly opinionated, the following provides a curated list for community-maintained variations with different preferences and feature sets. Check them out as well. PR to add yours is also welcome!
Official
- vitesse-lite - Lightweight version of Vitesse
- vitesse-webext - WebExtension Vite starter template
- vitesse-nuxt - Vitesse experience for Nuxt 2
Community
- vitesse-addons by @johncampionjr - additional options for integrations, including Prettier and Storybook
- vitesse-ssr-template by @frandiox - Vitesse with SSR
- vitespa by @ctholho - Like Vitesse but without SSG/SSR
Try it now!
GitHub Template
Create a repo from this template on GitHub.
Clone to local
If you prefer to do it manually with the cleaner git history
npx degit antfu/vitesse my-vitesse-app
cd my-vitesse-app
pnpm i # If you don't have pnpm installed, run: npm install -g pnpm
Checklist
When you use this template, try follow the checklist to update your info properly
- Rename
name
field inpackage.json
- Change the author name in
LICENSE
- Change the title in
App.vue
- Change the favicon in
public
- Remove the
.github
folder which contains the funding info - Clean up the READMEs and remove routes
And, enjoy :)
Usage
Development
Just run and visit http://localhost:3333
pnpm dev
Build
To build the App, run
pnpm build
And you will see the generated file in dist
that ready to be served.
Deploy on Netlify
Go to Netlify and select your clone, OK
along the way, and your App will be live in a minute.
Why
I have created several Vite apps recently. Setting the configs up is kinda the bottleneck for me to make the ideas simply come true within a very short time.
So I made this starter template for myself to create apps more easily, along with some good practices that I have learned from making those apps. It's strongly opinionated, but feel free to tweak it or even maintains your own forks. (see community maintained variation forks)