Implements server-side rendering for Vue applications in Node.js via vite-ssr
vitesse-ssr-template — Vue Starter Template
By frandiox
A Vue + Vite starter template based on Vitesse that implements server-side rendering in Node.js via vite-ssr, with preconfigured conventions for file-based routing, component auto-import, layouts, PWA, Windi CSS, i18n, and Markdown.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
File-system-based routing and page layout system
Component auto-import without manual registration
Built-in PWA, Windi CSS, Iconify icons, and Vue I18n
Supports Markdown as components and using components within Markdown
Includes Vercel deployment configuration and local preview scripts
Template Details
vitesse-ssr-template is a Vue + Vite starter template maintained by frandiox. It builds on antfu's Vitesse and integrates vite-ssr to provide SSR capabilities for Node.js environments. The repository uses the MIT license and includes a Vercel demo site, making it suitable for quickly setting up Vue applications with server-side rendering.
The template comes with a fairly complete set of front-end engineering conventions: file-system-based routing (vite-plugin-pages), page layouts (vite-plugin-vue-layouts), component auto-import (vite-plugin-components), PWA (vite-plugin-pwa), on-demand Windi CSS, Iconify icons, Vue I18n internationalization, Markdown support, and TypeScript and ESLint configuration. During development, you can use pnpm dev to start SSR mode, or pnpm dev:spa to run only the SPA.
Before use, note the following: the template author explicitly states that its configuration is strongly opinionated, and the README also lists community-maintained variants (vitesse-lite, vitesse-addons) for different preferences. The template requires pnpm as the package manager, its deployment path is primarily Vercel, and some build output is moved to a serverless directory. The repository was last updated in 2021, so dependency versions and toolchain status should be verified against the actual dependency manifest.
Is it right for your project?
Use Cases
- Starter projects that need to add server-side rendering to a Vue application
- New projects that want to directly use conventions such as file routing, layouts, and component auto-import
- Vue sites that need PWA, internationalization, or Markdown content support
- Projects planned for deployment to Vercel and reuse of its serverless configuration
Suitable For
- Developers familiar with Vue and Vite who accept strong engineering conventions
- Teams using pnpm as their package manager
- Projects that need SSR and run in a Node.js environment
- Sites intended primarily for deployment to Vercel
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
You can generate a repository from the GitHub template, or clone it locally with npx degit frandiox/vitesse-ssr-template my-vitesse-app
- 2
Install pnpm first, then run pnpm i to install dependencies
- 3
Use pnpm dev to start SSR development mode, and pnpm dev:spa to start SPA mode without SSR
- 4
Build with pnpm build; output is in dist, and some files are moved to serverless for deployment
- 5
Before use, follow the README checklist to update the package.json name, LICENSE author, App.vue title, and favicon, and remove example routes and the README
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean that external services or third-party assets are free.
Must comply with when using
- You may use, modify, commercially use, and distribute the code of this version for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Using this template requires pnpm as the package manager; if pnpm is not installed, you must first install pnpm globally via npm before installing dependencies.
- The deployment process given in the README depends on the Vercel platform and its CLI, requiring a Vercel account and installation of its command-line tool; deployment to that platform may be subject to its terms of service and fee policies.
- The template repository's .github directory contains funding information, which must be removed according to the checklist before use to avoid retaining the original author's sponsorship configuration.
- When using the template, you must change the author attribution in LICENSE to your own information according to the checklist, to comply with the MIT license's requirements for retaining and replacing copyright notices.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
pnpm i # If you don't have pnpm installed, run: npm install -g pnpm
Original README
Go to [Vercel](https://vercel.com) and install its CLI. Then:
Original README
Remove the `.github` folder which contains the funding info
Original README
https://github.com/frandiox/vitesse-ssr-template/blob/master/LICENSEhttps://github.com/frandiox/vitesse-ssr-template/blob/master/README.mdChange the author name in `LICENSE`
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 81 / 100
- Technologies
- Vue · Vite
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2021-11-30
- Screenshot last checked
- 2026-10-02
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Vue as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: b0d1e884e0abbc9250241e57055ebb8b47072e67246ffcc9c80427c8afcbfc1d
2026-10-02T11:38:40.296Z
Source file / repository# 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). <p align='center'> <a href="https://vitesse-ssr.vercel.app/">Live Demo</a> </p> ## 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 `<script setup>` 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 routes And, 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)
Explore similar templates
Compare previews and descriptions within the same stack and category.

vitesse
Vitesse is an opinionated Vite + Vue 3 starter template maintained by antfu-collective, offering file-based routing, component and API auto-import, Pinia, UnoCSS, PWA, i18n, Markdown, vite-ssg, TypeScript, Vitest, and Cypress.
Vue · Starter

vitesse-webext
vitesse-webext is a Vite-powered WebExtension starter template using Vue 3 and TypeScript, with built-in popup, options, and content script examples. It targets Chrome and Firefox, integrates webextension-polyfill, webext-bridge, UnoCSS, VueUse, and unplugin tools, and supports hot reload during development.
Vue · Starter

laravel-vue-spa
A Laravel + Vue SPA starter kit for quickly building a decoupled web application skeleton. It includes login, registration, email verification, and password reset flows, uses JWT for authentication, and integrates Laravel Socialite with GitHub as an example provider.
Vue · Starter

vue3-h5-template
A mobile H5 starter template built on Vue3, Vite, and Vant4, with TypeScript by default and JavaScript and i18n branches.
Vue · Starter

tov-template
tov-template is an MIT-licensed Vite + Vue 3 + TypeScript starter maintained by dishait. It bundles file-based routing, layouts, Mock, auto-imports, UnoCSS, Pinia, vue-request, Vitest, i18n, dark mode, Dockerfile, and engineering scripts.
Vue · Starter

shadcn-vue-landing-page
A Vue + Shadcn-Vue + TypeScript + Tailwind landing page template with sections like Navbar, Hero, Pricing, FAQ, Team, and Contact, plus dark mode and responsive layout.
Vue · Corporate Website
