Joaquín Sánchez

@userquin.bsky.social

A fullstack and android developer, Vite's fanatical follower. Core team → @unocss.dev • @vitest.dev • @vuejs.org • elk.zone • @tresjs.org • vuetifyjs.com Ecosystem Team → @nuxt.com Mantainer → nuxt.vuetifyjs.com • https://vite-pwa-org.netlify.app

This is amazing, I'm speechless, this is the new `@vite-pwa/unplugin-pwa` UI Service Worker UI Switcher when enabling dev options, just a few HMR @vite.dev plugins and some client logic. We need to add support for @webpack.bsky.social and @rspack.dev , stay tuned. streamable.com/ue4qx1 #pwa

Watch Vite App — Mozilla Firefox Navegación privada 2026-06-23 14-48-06 | Streamable

Watch "Vite App — Mozilla Firefox Navegación privada 2026-06-23 14-48-06" on Streamable.

streamable.com

The workbox fork at Vite PWA Org. is ESM only (all its packages). Here a CJS example with webpack 5 using require(<esm>) to load the workbox-build webpack plugin (node ^22.14.0, and @rolldown.rs ^1.0.0.0-0 required for the build): #webpack #pwa

webpack CJS configuration using require to load workbox-build ESM plugin to build the service worker
patak@patak.cat · 2mo ago

Massive jump on ESM-only adoption! The difference with previous years growth shows how important @joyeecheung.bsky.social pragmatic require(esm) approach is going to be for the npm ecosystem (thanks a ton, once more!). If you are a maintainer, drop your dual setup and move to ESM-only, too 🙏

Massive jump on ESM-only adoption! The difference with previous years growth shows how important @joyeecheung.bsky.social pragmatic require(esm) approach is going to be for the npm ecosystem (thanks a ton, once more!). If you are a maintainer, drop your dual setup and move to ESM-only, too 🙏

Titus 🇵🇸@wooorm.com · 2mo ago

Hello friends and welcome to another “how’s ESM vs CJS doing?!” A big win this time, at a year of `require(esm)` available! 38.0% of the popular npm packages now have ESM, up from 33.4% half a year ago. ESM-only is up from 12.6% to 16.0%. Particularly this non-dual, “vanilla” growth is very big!

Graph showing the status, in raw CSV:

```csv
date,total,esm,dual,faux,cjs
2021-08-24,5617,341,95,832,4349
2021-11-09,5647,411,119,809,4308
2022-08-01,5734,496,207,791,4240
2022-11-04,5747,518,216,785,4228
2023-05-29,6240,630,417,783,4410
2023-11-22,6818,734,510,881,4693
2024-05-27,7042,819,736,826,4661
2024-11-27,8087,942,1152,843,5150
2025-06-05,8677,995,1573,859,5250
2025-12-04,14159,1779,2947,1522,7911
2026-06-08,16231,2590,3574,1689,8378
```

The Vuetify project has experienced a major hack of it's Discord server, which has served as the glue for a thriving OSS community for a decade. The scope and scale of the damage that has been done is hard to describe.

🐐 Here @rspack.dev app building the service worker via @rolldown.rs with the workbox fork at @vite.dev PWA. Thank to Néstor (ZEPH) for the webpack/rsbuild examples and plugins review ❤️.

rsbuild app build output using vite-pwa workbox via rspack plugin
Joaquín Sánchez@userquin.bsky.social · 2mo ago

🐐 Building dual service worker with webpack v5 via @rolldown.rs : - workbox runtime code splitting - import.meta.env using generateSW strategy (only ESM version) - env vars working: added those starting with VITE_ and PUBLIC_ prefix - SW build manifest (ala @vite.dev manifest) - tree shakeable #pwa

an screenshot with 3 parts using webpack plugin on a webpack app v5 using type module (.mjs config file) using dual service worker build: on the left generated output with workbox runtime chunk code split; on the center some proces.env variables; and on the right, the classic service worker chunk showing those env variables, only exposing those starting with VITE_ and PUBLIC_

Daniel is amazing! After his talk at MadVue, he sat next to me and I watched him testing the new workflow live. I finally met some friends in person yesterday at MadVue, great day.

Picture at MadVue: Juan Nuñez, Alex Jover, Eduardo, Daniel and me
danielroe@danielroe.dev · 3mo ago

💥 just released a github action: `uppt` it aims to be a very simple, secure release workflow for maintainers that adheres to best security practices ⚪ trusted, staged publishing on npmjs.com ⚪ github environment protection ⚪ generated release PR + changelog ⚪ automatic release + publish on merge ✨

💥 just released a github action: `uppt` it aims to be a very simple, secure release workflow for maintainers that adheres to best security practices ⚪ trusted, staged publishing on npmjs.com ⚪ github environment protection ⚪ generated release PR + changelog ⚪ automatic release + publish on merge ✨

What do you think of a dev tool that helps you inspect components in your live app and then save that snapshot as a story in Storybook? 🤔 Backed by the incredible Vite devtools of course @antfu.me <3

Recent supply-chain poisoning incidents made one thing obvious: CI should not blindly trust floating @main refs. actionspack brings a pnpm-like lockfile to GitHub Actions: author in .github/workflows/src, inline safe workflows/actions, pin the rest to SHAs, and review updates with git diff.

GitHub - sxzz/actionspack: Lockfile-first GitHub Actions workflow packer

Lockfile-first GitHub Actions workflow packer. Contribute to sxzz/actionspack development by creating an account on GitHub.

github.com

Looks like we've got @rolldown.rs working natively with: ✅ envDir & envPrefix support. ✅ Full import.meta.env injection. ✅ Aggressive Tree-shaking (Dead Code Elimination). The best part? This isn't just for manual scripts. We can now use import.meta.env even with the generateSW strategy! 🤯

screenshot with the code for generate service worker strategy using import.meta.env inside a runtimeConfig handler and the classic-sw generated with the import.meta.env data inside the registerRoute callbackscreenshot with the code for build service worker strategy using import.meta.env.DEV inside an if statement and the classic-sw generated with the if using import.meta.env.DEV  removed
Joaquín Sánchez@userquin.bsky.social · 3mo ago

We're adding legacy support for Vite < 8 via Rolldown, but we need to add the following features to Rolldown manually: - envDir and enfPrefix - import.meta.env

PWA Plugin v2 will be a necessary "clean break": Vite 8 + Rolldown required. ⚡️ 🚀 Native "Dual Service Worker" support: we serve native ESM to modern browsers and automatically fallback to Classic for the rest. The best of both worlds with zero config! ✅🚀 @vite.dev #PWA