Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/frandiox/vitesse-ssr-template
π Opinionated Vue + Vite Starter Template with SSR in Node.js
https://github.com/frandiox/vitesse-ssr-template
ssr vite vite-starter vite-template vue
Last synced: 9 days ago
JSON representation
π Opinionated Vue + Vite Starter Template with SSR in Node.js
- Host: GitHub
- URL: https://github.com/frandiox/vitesse-ssr-template
- Owner: frandiox
- License: mit
- Created: 2021-02-22T11:30:37.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-11-30T17:06:21.000Z (almost 3 years ago)
- Last Synced: 2024-05-21T12:43:36.169Z (6 months ago)
- Topics: ssr, vite, vite-starter, vite-template, vue
- Language: TypeScript
- Homepage: https://vitesse-ssr.vercel.app/
- Size: 657 KB
- Stars: 188
- Watchers: 3
- Forks: 30
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-vite - vitesse-ssr-template - Vitesse with SSR (Variations / Dev tools)
- stars - frandiox/vitesse-ssr-template - π Opinionated Vue + Vite Starter Template with SSR in Node.js (TypeScript)
README
# Vitesse SSR
> Vue + Vite + SSR template based on [@antfu](https://github.com/antfu)'s [Vitesse](https://github.com/antfu/vitesse) with [`vite-ssr`](https://github.com/frandiox/vite-ssr).
## Features
- β‘οΈ [Vue 3](https://github.com/vuejs/vue-next), [Vite 2](https://github.com/vitejs/vite), [pnpm](https://pnpm.js.org/), [ESBuild](https://github.com/evanw/esbuild) - born with fastness
- π [File based routing](./src/pages)
- π¦ [Components auto importing](./src/components)
- π [Layout system](./src/layouts)
- π² [PWA](https://github.com/antfu/vite-plugin-pwa)
- π¨ [Windi CSS](https://github.com/windicss/windicss) - on-demand Tailwind CSS with speed
- π [Use icons from any icon sets, with no compromise](./src/components)
- π [I18n ready](./src/i18n/translations)
- π [Markdown Support](https://github.com/antfu/vite-plugin-md)
- π₯ Use the [new `` style](https://github.com/vuejs/rfcs/pull/227)
- π¨ Server-side rendering (SSR) in Node.js via [vite-ssr](https://github.com/frandiox/vite-ssr)
- π¦Ύ TypeScript, of course
- βοΈ Deploy on Vercel, minimal [config](./serverless/vercel.json)
<br>
## Pre-packed
### UI Frameworks
- [Windi CSS](https://github.com/windicss/windicss) (On-demand [TailwindCSS](https://tailwindcss.com/)) - lighter and faster, with a bundle additional features!
- [Windi CSS Typography](https://windicss.netlify.app/guide/plugins.html#typography) - similar to [Tailwind CSS Typography](https://github.com/tailwindlabs/tailwindcss-typograph) but for Windi CSS### Icons
- [Iconify](https://iconify.design) - use icons from any icon sets [πIcΓ΄nes](https://icones.netlify.app/)
- [`vite-plugin-icons`](https://github.com/antfu/vite-plugin-icons) - icons as Vue components### Plugins
- [Vue Router](https://github.com/vuejs/vue-router)
- [`vite-plugin-pages`](https://github.com/hannoeru/vite-plugin-pages) - file system based routing
- [`vite-plugin-vue-layouts`](https://github.com/JohnCampionJr/vite-plugin-vue-layouts) - layouts for pages
- [`vite-plugin-components`](https://github.com/antfu/vite-plugin-components) - components auto import
- [`vite-plugin-pwa`](https://github.com/antfu/vite-plugin-pwa) - PWA
- [`vite-plugin-windicss`](https://github.com/antfu/vite-plugin-windicss) - WindiCSS support
- [`vite-plugin-md`](https://github.com/antfu/vite-plugin-md) - Markdown as components / components in Markdown
- [`markdown-it-prism`](https://github.com/jGleitz/markdown-it-prism) - [Prism](https://prismjs.com/) for syntax highlighting
- [`prism-theme-vars`](https://github.com/antfu/prism-theme-vars) - customizable Prism.js theme using CSS variables
- [Vue I18n](https://github.com/intlify/vue-i18n-next) - Internationalization
- [`vite-plugin-vue-i18n`](https://github.com/intlify/vite-plugin-vue-i18n) - Vite plugin for Vue I18n
- [VueUse](https://github.com/antfu/vueuse) - collection of useful composition APIs
- [`@vueuse/head`](https://github.com/vueuse/head) - manipulate document head reactively### Coding Style
- Use Composition API with [`<script setup>` SFC](https://github.com/vuejs/rfcs/pull/227)
- [ESLint](https://eslint.org/) with [@antfu/eslint-config-vue](https://github.com/antfu/eslint-config), single quotes, no semi.### Dev tools
- [TypeScript](https://www.typescriptlang.org/)
- [pnpm](https://pnpm.js.org/) - fast, disk space efficient package manager
- [`vite-ssr`](https://github.com/frandiox/vite-ssr) - Server-side rendering
- [Vercel](https://vercel.com/) - deploy
- [VS Code Extensions](./.vscode/extensions.json)
- [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar)
- [Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify)
- [i18n Ally](https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally)
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-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 are also welcome!
- [vitesse-lite](https://github.com/kn0wn/vitesse-lite) by [@kn0wn](https://github.com/kn0wn)
- [vitesse-addons](https://github.com/JohnCampionJr/vitesse-addons) by [johncampionjr](https://github.com/johncampionjr) - additional options for integrations, including [Prettier](https://prettier.io) and [Storybook](https://storybook.js.org)## Try it now!
### GitHub Template
[Create a repo from this template on GitHub](https://github.com/frandiox/vitesse-ssr-template/generate).
### Clone to local
If you prefer to do it manually with the cleaner git history
```bash
npx degit frandiox/vitesse-ssr-template 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
- [ ] Add a `name` field in `package.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 routesAnd, enjoy :)
## Usage
### Development
Just run and visit http://localhost:3333
```bash
pnpm dev # SSR development
pnpm dev:spa # SPA without SSR
```### Build
To build the App, run
```bash
pnpm build
```And you will see the generated files in `dist`, and some of these files will be moved to `serverless` for deployment.
### Deploy on Vercel
Go to [Vercel](https://vercel.com) and install its CLI. Then:
```bash
pnpm preview # Simulate Vercel environment locally
pnpm deploy
pnpm deploy:prod
```## 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)](#variations)