{"id":19006513,"url":"https://github.com/vite-pwa/remix","last_synced_at":"2025-04-07T05:08:21.731Z","repository":{"id":229667388,"uuid":"775723419","full_name":"vite-pwa/remix","owner":"vite-pwa","description":"Zero-config PWA Plugin for Remix","archived":false,"fork":false,"pushed_at":"2025-03-30T14:00:16.000Z","size":709,"stargazers_count":64,"open_issues_count":6,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T14:24:17.628Z","etag":null,"topics":["pwa","remix","vite","vite-plugin","workbox"],"latest_commit_sha":null,"homepage":"https://vite-pwa-org.netlify.app/frameworks/remix","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vite-pwa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"antfu","open_collective":"antfu"}},"created_at":"2024-03-21T23:23:25.000Z","updated_at":"2025-03-30T13:31:51.000Z","dependencies_parsed_at":"2024-04-30T12:06:49.903Z","dependency_job_id":"d4b4c23a-d04a-490b-882c-bcd0739194dd","html_url":"https://github.com/vite-pwa/remix","commit_stats":{"total_commits":51,"total_committers":2,"mean_commits":25.5,"dds":"0.019607843137254943","last_synced_commit":"00888e7fd6c67a1425c131c982ae87ce99fd83ca"},"previous_names":["vite-pwa/remix"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vite-pwa%2Fremix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vite-pwa%2Fremix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vite-pwa%2Fremix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vite-pwa%2Fremix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vite-pwa","download_url":"https://codeload.github.com/vite-pwa/remix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247595334,"owners_count":20963943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pwa","remix","vite","vite-plugin","workbox"],"created_at":"2024-11-08T18:32:46.148Z","updated_at":"2025-04-07T05:08:21.687Z","avatar_url":"https://github.com/vite-pwa.png","language":"TypeScript","funding_links":["https://github.com/sponsors/antfu","https://opencollective.com/antfu"],"categories":[],"sub_categories":[],"readme":"\u003cp align='center'\u003e\n\u003cimg src='./hero.png' alt=\"@vite-pwa/remix - Zero-config PWA Plugin for Remix\"\u003e\u003cbr\u003e\nZero-config PWA Plugin for Remix\n\u003c/p\u003e\n\n\u003cp align='center'\u003e\n\u003ca href='https://www.npmjs.com/package/@vite-pwa/remix' target=\"__blank\"\u003e\n\u003cimg src='https://img.shields.io/npm/v/@vite-pwa/remix?color=33A6B8\u0026label=' alt=\"NPM version\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/@vite-pwa/remix\" target=\"__blank\"\u003e\n    \u003cimg alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dm/@vite-pwa/remix?color=476582\u0026label=\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://vite-pwa-org.netlify.app/frameworks/remix\" target=\"__blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/static/v1?label=\u0026message=docs%20%26%20guides\u0026color=2e859c\" alt=\"Docs \u0026 Guides\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca href=\"https://github.com/vite-pwa/remix\" target=\"__blank\"\u003e\n\u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/vite-pwa/remix?style=social\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg\"\u003e\n    \u003cimg src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg'/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## 🚀 Features\n\n- 📖 [**Documentation \u0026 guides**](https://vite-pwa-org.netlify.app/)\n- 👌 **Zero-Config**: sensible built-in default configs for common use cases\n- 🔩 **Extensible**: expose the full ability to customize the behavior of the plugin\n- 🦾 **Type Strong**: written in [TypeScript](https://www.typescriptlang.org/)\n- 🔌 **Offline Support**: generate service worker with offline support (via Workbox)\n- ⚡ **Fully tree shakable**: auto inject Web App Manifest\n- 💬 **Prompt for new content**: built-in support for Vanilla JavaScript, Vue 3, React, Svelte, SolidJS and Preact\n- ⚙️ **Stale-while-revalidate**: automatic reload when new content is available\n- ✨ **Static assets handling**: configure static assets for offline support\n- 🐞 **Development Support**: debug your custom service worker logic as you develop your application\n- 🛠️ **Versatile**: integration with meta frameworks: [îles](https://github.com/ElMassimo/iles), [SvelteKit](https://github.com/sveltejs/kit), [VitePress](https://github.com/vuejs/vitepress), [Astro](https://github.com/withastro/astro), [Nuxt 3](https://github.com/nuxt/nuxt) and [Remix](https://github.com/remix-run/remix)\n- 💥 **PWA Assets Generator**: generate all the PWA assets from a single command and a single source image\n- 🚀 **PWA Assets Integration**: serving, generating and injecting PWA Assets on the fly in your application\n\n## 📦 Install\n\n`@vite-pwa/remix` requires **Vite 5** and **Remix 2.8.0 or above**.\n\n```bash\nnpm i @vite-pwa/remix -D\n\n# yarn\nyarn add @vite-pwa/remix -D\n\n# pnpm\npnpm add @vite-pwa/remix -D\n```\n\n## 🦄 Usage\n\nImport the `@vite-pwa/remix` helper, create the Remix PWA Preset and the PWA Plugin and configure them in your Vite configuration file:\n\n```ts\n// vite.config.js\nimport { vitePlugin as remix } from '@remix-run/dev'\nimport { installGlobals } from '@remix-run/node'\nimport { RemixVitePWA } from '@vite-pwa/remix'\nimport { defineConfig } from 'vite'\n\ninstallGlobals()\n\nconst { RemixVitePWAPlugin, RemixPWAPreset } = RemixVitePWA()\n\nexport default defineConfig({\n  plugins: [\n    remix({\n      presets: [RemixPWAPreset()],\n    }),\n    RemixVitePWAPlugin({\n      // PWA options\n    })\n  ]\n})\n```\nRead the [📖 documentation](https://vite-pwa-org.netlify.app/frameworks/remix) for a complete guide on how to configure and use\nthis plugin.\n\n[//]: # ()\n[//]: # (## ⚡️ Examples)\n\n[//]: # ()\n[//]: # (You need to stop the dev server once started and then run `npm run build \u0026\u0026 npm run preview` to see the PWA in action.)\n\n[//]: # (\u003ctable\u003e)\n\n[//]: # (\u003cthead\u003e)\n\n[//]: # (\u003ctr\u003e)\n\n[//]: # (\u003cth\u003eExample\u003c/th\u003e)\n\n[//]: # (\u003cth\u003eSource\u003c/th\u003e)\n\n[//]: # (\u003cth\u003ePlayground\u003c/th\u003e)\n\n[//]: # (\u003c/tr\u003e)\n\n[//]: # (\u003c/thead\u003e)\n\n[//]: # (\u003ctbody\u003e)\n\n[//]: # (\u003ctr\u003e)\n\n[//]: # (\u003ctd\u003e\u003ccode\u003eAuto Update PWA\u003c/code\u003e\u003c/td\u003e)\n\n[//]: # (\u003ctd\u003e\u003ca href=\"https://github.com/vite-pwa/remix/tree/main/examples/pwa-simple\"\u003eGitHub\u003c/a\u003e\u003c/td\u003e)\n\n[//]: # (\u003ctd\u003e)\n\n[//]: # (\u003ca href=\"https://stackblitz.com/fork/github/vite-pwa/remix/tree/main/examples/pwa-simple\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e)\n\n[//]: # (  \u003cimg src=\"https://developer.stackblitz.com/img/open_in_stackblitz.svg\" alt=\"Open in StackBlitz\" width=\"162\" height=\"32\"\u003e)\n\n[//]: # (\u003c/a\u003e)\n\n[//]: # (\u003c/td\u003e)\n\n[//]: # (\u003c/tr\u003e)\n\n[//]: # (\u003ctr\u003e)\n\n[//]: # (\u003ctd\u003e\u003ccode\u003ePrompt for Update PWA\u003c/code\u003e\u003c/td\u003e)\n\n[//]: # (\u003ctd\u003e\u003ca href=\"https://github.com/vite-pwa/remix/tree/main/examples/pwa-prompt\"\u003eGitHub\u003c/a\u003e\u003c/td\u003e)\n\n[//]: # (\u003ctd\u003e)\n\n[//]: # (\u003ca href=\"https://stackblitz.com/fork/github/vite-pwa/remix/tree/main/examples/pwa-prompt\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e)\n\n[//]: # (  \u003cimg src=\"https://developer.stackblitz.com/img/open_in_stackblitz.svg\" alt=\"Open in StackBlitz\" width=\"162\" height=\"32\"\u003e)\n\n[//]: # (\u003c/a\u003e)\n\n[//]: # (\u003c/td\u003e    )\n\n[//]: # (\u003c/tr\u003e)\n\n[//]: # (\u003c/tbody\u003e)\n\n[//]: # (\u003c/table\u003e)\n\n## 👀 Full config\n\nCheck out the following links for more details:\n\n- [Web app manifests](https://developer.mozilla.org/en-US/docs/Web/Manifest)\n- [Workbox](https://developers.google.com/web/tools/workbox)\n\n## 📄 License\n\n[MIT](./LICENSE) License \u0026copy; 2024-PRESENT [Anthony Fu](https://github.com/antfu)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvite-pwa%2Fremix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvite-pwa%2Fremix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvite-pwa%2Fremix/lists"}