create-pwa is an official scaffolding tool from the Vite PWA ecosystem that generates production-ready PWA templates for Vite-based frameworks with offline support and automated service worker configuration.
What is create-pwa?
create-pwa is a command-line project generator that scaffolds Progressive Web App templates powered by Vite, Workbox, and TypeScript. It takes a framework choice and project configuration answers from an interactive questionnaire and outputs a fully working PWA project with a service worker, Web App Manifest, and offline caching. The tool is maintained by Anthony Fu and the Vite PWA org, and its templates target Vanilla JavaScript, Vue, React, Svelte, SolidJS, Preact, Lit, Nuxt 3/4, SvelteKit, and Remix.
Key Features
- Zero-config defaults — sensible built-in configs cover common PWA use cases, so you can run the scaffold without tuning Workbox options.
- Offline support via Workbox — generated service workers handle offline caching and stale-while-revalidate logic; new content prompts users to reload.
- Type Strong — the plugin and templates are written in TypeScript, providing full end-to-end type safety.
- PWA Assets Generator — generate all PWA icons and assets from a single source image and a single command; also supports serving and injecting assets on the fly.
- Framework coverage — includes templates for Vanilla JavaScript, Vue, React, Svelte, SolidJS, Preact, and Lit, each with TypeScript variants, plus meta-framework templates for Nuxt 4, SvelteKit, and Remix.
- Meta-framework integrations — works with îles, VitePress, Astro, Nuxt, and Remix for projects that need SSR or static-site generation alongside PWA features.
- Development support — debug custom service worker logic during development, not just at build time.
Who is it for?
- Web developers starting a new Vite project who need offline capabilities can use create-pwa's zero-config setup instead of hand-writing a service worker.
- Framework users — React, Vue, Svelte, SolidJS, Preact, or Lit developers — who want an official PWA starter for their chosen stack get a TypeScript-flavored template with the right integration.
- Meta-framework builders — teams using Nuxt, SvelteKit, or Remix can scaffold a PWA template that preserves SSR/SSG behavior while adding installability and offline caching.
- PWA asset designers — anyone needing many icon sizes and screenshots can generate the complete asset pack from one source image.
What can you do with create-pwa?
- Scaffold a PWA in seconds: run
npm create @vite-pwa/pwa@latestand answer the prompts to get a working project with service worker, manifest, and offline support. - Add offline support to a new app: choose a framework and TypeScript option, and the generated project includes Workbox-based precaching and runtime caching out of the box.
- Generate PWA assets from one image: use the PWA assets generator to produce all required icons and screenshots for Android, iOS, and the web from a single source image.
- Integrate PWA with meta-frameworks: scaffold a Nuxt, SvelteKit, or Remix template that adds web app manifest and service worker without breaking SSR.
How does create-pwa work?
The tool is an npm package with the create- prefix, so it can be invoked as npm create @vite-pwa/pwa@latest, yarn create @vite-pwa/pwa, pnpm create @vite-pwa/pwa, or bun create @vite-pwa/pwa. It launches an interactive command-line questionnaire to capture framework choice, TypeScript preference, and other project settings, then generates the files and configuration.
FAQ
Is create-pwa free?
Yes, the package is distributed under the MIT License and is free to use for personal and commercial projects.
Which Vite versions are supported?
Version v1.0.0 of the templates uses Vite 7, v0.6.0 uses Vite 6, and v0.5.0 supports Vite 5 with earlier framework releases. Check the changelog when upgrading.
Which frameworks are covered?
The completed templates include Vanilla JavaScript, Vue, React, Svelte, SolidJS, Preact, and Lit (with TypeScript variants for most), plus Nuxt 4, SvelteKit, and Remix. Astro, VitePress, and Qwik City templates are still in progress.
Does it include a Web App Manifest?
Yes, the plugin auto-injects a Web App Manifest and is fully tree-shakable, so unused manifest code is removed from production bundles.
Can I debug my service worker during development?
Yes, create-pwa provides development support so you can test and debug custom service worker logic while running the app locally, not only in production builds.





