vitesse

GitHub

๐Ÿ• Opinionated Vite + Vue Starter Template

AI Prompts & Endpoints
CodeWiki Knowledge Base

Repository: antfu-collective/vitesse


Stars: 9417

README.md

<p align='center'>
<img src='https://user-images.githubusercontent.com/11247099/154486817-f86b8f20-5463-4122-b6e9-930622e757f2.png' alt='Vitesse - Opinionated Vite Starter Template' width='600'/>
</p>

<p align='center'>
Mocking up web app with <b>Vitesse</b><sup><em>(speed)</em></sup><br>
</p>

<br>

<p align='center'>
<a href="https://vitesse.netlify.app/">Live Demo</a>
</p>

<br>

Note: This template is created during the early transition of Vue 3 and Vite. At this moment, if you are seeking for better Vue developer experience and more consistent maintenance, we recommend using Nuxt instead (it also works perfectly with SPA or SSG as needed). This template still serves as a reference, but expect slower updates.

<br>

<p align='center'>
<b>English</b> | <a href="https://github.com/antfu-collective/vitesse/blob/main/README.zh-CN.md">็ฎ€ไฝ“ไธญๆ–‡</a>
<!-- Contributors: Thanks for getting interested, however we DON'T accept new translations to the README, thanks. -->
</p>

<br>

Features

- โšก๏ธ Vue 3, Vite, pnpm, esbuild - born with fastness

- ๐Ÿ—‚ File based routing

- ๐Ÿ“ฆ Components auto importing

- ๐Ÿ State Management via Pinia

- ๐Ÿ“‘ Layout system

- ๐Ÿ“ฒ PWA

- ๐ŸŽจ UnoCSS - the instant on-demand atomic CSS engine

- ๐Ÿ˜ƒ Use icons from any icon sets with classes

- ๐ŸŒ I18n ready

- ๐Ÿ”Ž Component Preview

- ๐Ÿ—’ Markdown Support

- ๐Ÿ”ฅ Use the new <script setup> syntax

- ๐Ÿ“ฅ APIs auto importing - use Composition API and others directly

- ๐Ÿ–จ Static-site generation (SSG) via vite-ssg

- ๐Ÿฆ” Critical CSS via beasties

- ๐Ÿฆพ TypeScript, of course

- โš™๏ธ Unit Testing with Vitest, E2E Testing with Cypress on GitHub Actions

- โ˜๏ธ Deploy on Netlify, zero-config

<br>

Pre-packed

UI Frameworks

- UnoCSS - The instant on-demand atomic CSS engine.

Icons

- Iconify - use icons from any icon sets ๐Ÿ”Icรดnes
- Pure CSS Icons via UnoCSS

Plugins

- Vue Router
- unplugin-vue-router - file system based routing
- vite-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 import
- unplugin-auto-import - Directly use Vue Composition API and others without importing
- unplugin-vue-macros - Explore and extend more macros and syntax sugar to Vue.
- vite-plugin-pwa - PWA
- unplugin-vue-markdown - Markdown as components / components in Markdown
- @shikijs/markdown-it - Shiki for syntax highlighting
- Vue I18n - Internationalization
- unplugin-vue-i18n - unplugin for Vue I18n
- VueUse - collection of useful composition APIs
- vite-ssg-sitemap - Sitemap generator
- @unhead/vue v2 - manipulate document head reactively
- vite-plugin-vue-devtools - Designed to enhance the Vue developer experience.

Coding Style

- Use Composition API with <script setup> SFC syntax
- ESLint with @antfu/eslint-config, single quotes, no semi.

Dev tools

- TypeScript
- Vitest - Unit testing powered by Vite
- Cypress - E2E testing
- pnpm - fast, disk space efficient package manager
- vite-ssg - Static-site generation
- beasties - 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
- 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-nuxt3 - Vitesse for Nuxt 3
- vitesse-nuxt-bridge - Vitesse for Nuxt 2 with Bridge
- vitesse-webext - WebExtension Vite starter template

###### Community

- vitesse-ssr-template by @frandiox - Vitesse with SSR
- vitailse by @zynth17 - Like Vitesse but with TailwindCSS
- vitesse-modernized-chrome-ext by @xiaoluoboding - โšก๏ธ Modernized Chrome Extension Manifest V3 Vite Starter Template
- vitesse-stackter-clean-architect by @shamscorner - A modular clean architecture pattern in vitesse template
- vitesse-enterprise by @FranciscoKloganB - Consistent coding styles regardless of team-size.
- vitecamp by @nekobc1998923 - Like Vitesse but without SSG/SSR/File based routing, includes Element Plus
- vitesse-h5 by @YunYouJun - Vitesse for Mobile
- bat by @olgam4 - Vitesse for SolidJS
- vitesse-solid by @xbmlz - Vitesse for SolidJS, build with SolidStart, includes UnoCSS.
- vue3-vant-mobile by CharleeWa - Like Vitesse but without SSG/SSR, includes Vant

Try it now!

Vitesse requires Node >=14.18

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

bash
npx degit antfu-collective/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

- [ ] Change the author name in LICENSE
- [ ] Change the title in App.vue
- [ ] Change the hostname in vite.config.ts
- [ ] 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

bash
pnpm dev

Build

To build the App, run

bash
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.

Docker Production Build

First, build the vitesse image by opening the terminal in the project's root directory.

bash
docker buildx build . -t vitesse:latest

Run the image and specify port mapping with the -p flag.

bash
docker run --rm -it -p 8080:80 vitesse:latest

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 maintain your own forks. (see community maintained variation forks)