Turborepo + pnpm workspace monorepo structure, maintaining three H5 applications (NutUI, Vant, Varlet) in parallel within the same repository
vue-h5-template — Vue Starter Template
By fonghehe
A mobile H5 starter template built on Vue 3, TypeScript, and Turborepo, offering three UI framework versions: NutUI, Vant, and Varlet.
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.
The three applications share views for home, list, member, product detail and cart, request demos, and streaming chat, while retaining their own navigation and component showcases
Built-in Nitro mock backend provides login and product APIs plus user/admin test accounts, allowing startup without a real backend
Includes Pinia persistence, TanStack Vue Query caching and pagination examples, OpenAPI-generated API types, and unified error handling
Comprehensive mobile handling: safe-area, Visual Viewport, pull-to-refresh, Web Share, clipboard, offline status, error boundaries, and persistent cart
Internationalization supports Simplified Chinese, Traditional Chinese, English, and Japanese, with language selection synchronized across documentation language, route titles, UI copy, and mock product language
Template Details
This is a mobile H5 starter template using a Turborepo + pnpm workspace monorepo structure. The repository contains three independent H5 applications under apps/h5-nutui, apps/h5-vant, and apps/h5-varlet, along with backend-mock (a Nitro mock service), docs (VitePress documentation), and shared packages under packages (api-client, stores, locales, styles, utils, ai-chat, @core, etc.). The three applications share views for home, list, member, examples, product detail and cart, request demos, and streaming chat, while each retains its own framework's navigation and component showcase and uses its own theme tokens (Vant blue, NutUI red, Varlet purple).
Technically, it uses Vue 3 + TypeScript + Vite with Pinia (including a persistence plugin), Vue Router, TanStack Vue Query, Axios, Vue I18n, UnoCSS, and postcss-mobile-forever for viewport adaptation (375px design draft, max 600px). The template includes a built-in Nitro mock backend (with login and product APIs, providing user/admin test accounts), an Eruda debug panel in non-production environments, OpenAPI-generated API contracts, a streaming AI chat client using SSE/ReadableStream, and common mobile handling such as safe-area, pull-to-refresh, Web Share, clipboard, offline status, and error boundaries. Internationalization supports Simplified Chinese, Traditional Chinese, English, and Japanese, with English as the default, switchable on the member page.
Usage limitations: Requires Node.js 22.18.0 or higher and pnpm 11.0.0 or higher; production targets Chrome/Android WebView 111+ and Safari/iOS WebView 16.4+, with no support for IE or older Android WebView. Development uses the built-in mock by default; to connect to the companion business-service (:8002) and ai-service (:8001), you need to start the backends separately and use the dev:services:* scripts. The repository is MIT licensed, but third-party assets such as demo images, fonts, and icons require separate license verification, and external services like domains, hosting, and databases may incur additional charges.
Is it right for your project?
Use Cases
- Quickly setting up a mobile H5 project skeleton and choosing one UI component library from NutUI, Vant, or Varlet
- Comparing or maintaining multiple UI framework H5 implementations in the same repository, sharing the request layer, state management, and style foundation
- Introducing infrastructure references such as streaming AI chat, server-state caching, and API contract generation to an existing H5 project
- Needing a mobile engineering starting point that includes a mock backend, documentation site, unified linting, and commit conventions
Suitable For
- Teams or individual developers building mobile H5 with Vue 3 + TypeScript
- Projects that need to choose between NutUI, Vant, and Varlet or maintain multiple UI versions simultaneously
- Frontend engineering that wants to organize multiple applications and shared packages in a monorepo
- Starter projects that need mobile debugging, viewport adaptation, and internationalization capabilities already in place
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Environment requirements: Node.js >= 22.18.0, pnpm >= 11.0.0, and Git
- 2
After cloning the repository, run pnpm install, then use pnpm dev to interactively select an application, or directly run pnpm dev:nutui / dev:vant / dev:varlet
- 3
Development uses the built-in Nitro mock by default; to connect to the companion business-service (:8002) and ai-service (:8001), start the backends first, then run pnpm dev:services:vant|nutui|varlet
- 4
Build with pnpm build or pnpm build:nutui|vant|varlet, run quality checks with pnpm check, and run end-to-end tests with pnpm test:e2e
- 5
Mock test accounts are user/123456 (regular user) and admin/123456 (administrator)
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 this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Permits free use, modification, commercial use, and distribution of this version's code.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full 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
- Development uses the built-in Nitro mock by default; to connect to the companion business-service (:8002) and ai-service (:8001), you must start these two backend services separately and run with the dev:services:* scripts.
- Runtime requires Node.js 22.18.0 or higher and pnpm 11.0.0 or higher; lower versions cannot install or start properly.
- Production targets only support Chrome/Android WebView 111+ and Safari/iOS WebView 16.4+; IE and older Android WebView are not supported.
- Demo images, fonts, icons, and other third-party assets require verification under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payment, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Development uses the built-in Nitro mock by default. To connect the companion `vue-h5-template-business-service` (`:8002`) and `vue-h5-template-ai-service` (`:8001`), start both backends and run `pnpm dev:services:vant`
Original README
- [Node.js](https://nodejs.org/) >= 22.18.0 - [pnpm](https://pnpm.io/) >= 11.0.0
Original README
https://github.com/fonghehe/vue-h5-template/blob/main/LICENSEhttps://github.com/fonghehe/vue-h5-template/blob/main/README.mdThe production target is Chrome/Android WebView 111+ and Safari/iOS WebView 16.4+. Recent WeChat and WeCom WebViews on those engines are supported. IE and legacy Android WebView are not supported.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. 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 · 92 / 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
- 2026-09-11
- Screenshot last checked
- 2026-10-03
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.
Review declaration: [email protected] · 2026-10-04
Inspect the recorded source material
SHA-256: 4e225339e7275fffb8b1983fd4c0db0ea6d20c4c2e4ef8e92a0a7d8998e90031
2026-10-03T18:57:30.719Z
Source file / repository<div align="center"> <h1>Vue H5 Template</h1> Mobile H5 development template based on Vue 3 + TypeScript + Turborepo English | [简体中文](./README.zh-CN.md) | [日本語](./README.ja-JP.md) | [繁體中文(台)](./README.zh-TW.md) | [繁體中文(港)](./README.zh-HK.md) </div> ## Consistent mobile experience All three apps now share Home / List / Member / Examples, product details and cart, Query and request demos, and streaming chat. Native navigation and component showcases retain each framework’s identity; shared views use each app’s own theme tokens. English is the default. Change to Chinese or Japanese from Member; the choice, document language, route titles, UI copy and Mock product language stay synchronized. The floating AI button opens Chat above the bottom tabs and hides on Member and input/checkout routes. Catalog cards preserve real 44px touch targets, including at 320px. Both Mock and the separate AI/business services work with all three targets. Run `pnpm test:e2e` to check Vant, NutUI and Varlet. See [UI architecture](docs/src/guide/v2/ui-framework.md). ## Introduction Vue H5 Template is a free and open-source mobile H5 development template built on Turborepo Monorepo architecture, using the latest Vue 3, Vite, TypeScript, and other mainstream technology stacks. It provides H5 app templates for three UI frameworks: NutUI, Vant, and Varlet. ## Features - **Monorepo Architecture** — Managed with Turborepo + pnpm workspace for multiple H5 apps and shared packages - **Three UI Frameworks** — NutUI, Vant, and Varlet versions available for flexible UI choices - **Independent visual systems** — Coherent Vant blue, NutUI red, and Varlet purple tokens without cross-framework color leakage - **Type-safe infrastructure** — Strict TypeScript, explicit lazy routes, OpenAPI-generated contracts, and normalized API errors - **Streaming AI Chat** — Provider-neutral SSE/ReadableStream client with AbortController and sanitized Markdown - **Server state** — TanStack Vue Query examples for cache, mutation, pagination, and infinite queries - **Mobile production baseline** — Safe areas, keyboard-friendly chat input, optional PWA, and production-only image optimization - **Product-ready mobile patterns** — Error boundary, offline status, Visual Viewport, pull-to-refresh, Web Share, clipboard, and persisted cart flow - **Vite Build** — Vite-based build configuration with auto-import and component auto-registration - **UnoCSS** — Atomic CSS engine for utility-first styling across all apps - **State Management** — Pinia with persistence plugin, AES encryption in production - **Mock Server** — Nitro-based mock backend with authentication and product APIs - **Eruda** — Built-in mobile debugging console (non-production only) - **Unified Standards** — Shared ESLint / OxLint / Stylelint / Oxfmt / Commitlint configurations - **Mobile Adaptation** — postcss-mobile-forever for responsive viewport adaptation (375px design, 600px max) - **Internationalization** — Supports Simplified Chinese, Traditional Chinese, English, and Japanese ## Tech Stack | Technology | Version | Description | | ------------------- | ------- | ---------------------------- | | Vue 3 | 3.5 | Frontend framework | | TypeScript | 6.0 | Type safety | | Vite | 8.1 | Build tool | | UnoCSS | 66.x | Atomic CSS engine | | Turborepo | 2.10 | Monorepo management | | pnpm | 11.10 | Package manager | | Pinia | 4.0 | State management | | Vue Router | 5.0 | Routing | | TanStack Vue Query | 5.x | Server state and cache | | Axios | 1.x | Typed REST transport | | Vue I18n | 11.4 | Internationalization | | Nitro | 2.x | Mock server | | NutUI | 4.3 | UI component library | | Vant | 4.10 | UI component library | | Varlet | 3.19 | UI component library | | VueUse | 14.x | Composition utilities | | Eruda | 3.x | Mobile debug console | ## Prerequisites - [Node.js](https://nodejs.org/) >= 22.18.0 - [pnpm](https://pnpm.io/) >= 11.0.0 - [Git](https://git-scm.com/) ## Getting Started ```bash # Clone the project git clone https://github.com/fonghehe/vue-h5-template.git cd vue-h5-template # Install dependencies pnpm install # Start development (interactive app selection) pnpm dev # Start a specific app pnpm dev:nutui # NutUI version pnpm dev:vant # Vant version pnpm dev:varlet # Varlet version ``` Development uses the built-in Nitro mock by default. To connect the companion `vue-h5-template-business-service` (`:8002`) and `vue-h5-template-ai-service` (`:8001`), start both backends and run `pnpm dev:services:vant`, `pnpm dev:services:nutui`, or `pnpm dev:services:varlet`. See the [request architecture](https://fonghehe.github.io/vue-h5-template/guide/v2/request) for routing and environment variables. ## Build ```bash # Build all apps pnpm build # Build a specific app pnpm build:nutui pnpm build:vant pnpm build:varlet # Build documentation pnpm build:docs # Complete quality gate (lint + types + unit tests + build) pnpm check pnpm test:e2e # Regenerate API contracts / inspect bundles pnpm api:generate pnpm build:analyze ``` ## Project Structure ``` vue-h5-template/ ├── apps/ │ ├── backend-mock/ # Nitro mock server │ ├── h5-nutui/ # NutUI H5 app (port 5777) │ ├── h5-vant/ # Vant H5 app (port 5778) │ └── h5-varlet/ # Varlet H5 app (port 5779) ├── docs/ # VitePress documentation ├── internal/ │ ├── lint-configs/ # ESLint, OxLint, Stylelint, Oxfmt, Commitlint configs │ ├── node-utils/ # Node.js utilities │ ├── tsconfig/ # Shared TypeScript configs │ └── vite-config/ # Shared Vite configuration ├── packages/ │ ├── @core/ # Core packages (base/shared, design, typings, composables) │ ├── ai-chat/ # Provider-neutral streaming chat │ ├── api-client/ # Axios client and OpenAPI-generated types │ ├── locales/ # i18n locale messages │ ├── stores/ # Pinia stores │ ├── styles/ # Shared styles │ └── utils/ # Shared utilities ├── openapi/ # Demo backend contract ├── scripts/ # Build scripts and CLI tools └── AGENTS.md # Architecture rules for coding agents ``` ## Test Accounts The mock server provides the following test accounts: | Username | Password | Role | | -------- | -------- | ------------ | | user | 123456 | Regular user | | admin | 123456 | Admin | ## Documentation - [Online Documentation](https://fonghehe.github.io/vue-h5-template/) ## Browser Support The production target is Chrome/Android WebView 111+ and Safari/iOS WebView 16.4+. Recent WeChat and WeCom WebViews on those engines are supported. IE and legacy Android WebView are not supported. | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | | --- | --- | --- | --- | | Edge ≥ 111 | Firefox ≥ 115 | Chrome ≥ 111 | Safari ≥ 16.4 | ## Contributing Contributions are welcome! Please refer to the [Contributing Guide](https://github.com/fonghehe/vue-h5-template/blob/main/CONTRIBUTING.md). Git commit messages should follow the [Conventional Commits](https://www.conventionalcommits.org/) specification. ## License [MIT](./LICENSE)
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
