#ServiceWorker

2025-08-07

Как я устал вручную писать сервис-воркеры и сделал next-pwa-pack, чтобы больше не страдать

Сколько лет уже кто-то говорит: «А можно, чтобы оно работало без интернета и ставилось на домашний экран?» И каждый раз после этой фразы начинается медленный спуск в персональный ад — ты лезешь в документацию по PWA, где всё разваливается на ровном месте, service worker живёт своей жизнью, кеш то работает, то ломается, App Router рушит весь твой кастомный пайплайн, а пользователи сидят на старых версиях, потому что вручную обновлять им, конечно, влом. Словом, если ты когда-то пробовал прикрутить оффлайн-режим к Next.js-проекту, ты наверняка вспоминал всех, кто придумал этот стек. Я — точно. Поэтому, как человек, у которого было слишком много кофе и слишком мало терпения, я сделал единственное разумное: написал свою обёртку. Так и появился next-pwa-pack — дроп-ин пакет, который превращает любой Next.js-проект в полноценное PWA, буквально одной строкой. Да, даже с App Router. Просто заворачиваешь свой layout в PWAProvider, и всё: приложение можно установить, оно кэширует страницы, работает оффлайн, синхронизирует вкладки и даже показывает отладочную панель, чтобы не гадать, сработало ли что-нибудь. Воткнул — и живи дальше. А то: Сервис-воркер? Напиши вручную. Кешировать HTML? Сам придумай как. Синхронизация вкладок? Ну это уже магия, удачи. Обновление кеша после деплоя? Ну ты ж senior, сам справишься. 🤡 И ты сидишь, как идиот, с 300 вкладками про Workbox, cache-first , network-only , костылями из Stack Overflow 2019 года, и потеешь. Если раньше каждый запрос «сделай оффлайн» вызывал у меня флэшбэк на тему next-pwa, неподдерживаемых версий, кривого кеша и плясок с бубном вокруг обновлений — теперь всё это ушло. Я хотел простой setup, который просто работает: предзагрузка, нормальные TTL, понятное обновление и синхронизация. Без фокусов, без багов, без “подожди, сейчас DevTools открою”. Погнали дальше!

habr.com/ru/articles/935024/

#nextjs #progressive_web_apps #app_router #serviceworker #reactjs #react

2025-05-26

There's now an #IPFS #ServiceWorker Gateway that supports subdomain resolution!

👉 To make content on the IPFS network accessible in a web #browser, you need a #HTTP gateway. This one automatically adds a service worker, speeding up subsequent access and improving #decentralization:

inbrowser.link/

Here's a link to my "How to host static websites on IPFS" #howto using it:

ipfs--howto-data0-one.ipns.inb

2025-04-17

Разрабатываем PWA. Полная инструкция по работе с Web App Manifest и Service Worker

Привет! Меня зовут Сергей Васильев, я фронтенд-разработчик в AGIMA . Наша команда часто работает с PWA — прогрессивными веб-приложениями. Они стали особо популярны в последние три года, когда из-за санкций некоторым корпорациям пришлось отказаться от мобильных приложений. Но и раньше многие компании с интересом смотрели на это решение. Ниже расскажу, как сделать из обычного веб-приложения прогрессивное: вместе настроим Web App Manifest и Service Worker. Если вам еще не доводилось работать с PWA — текст точно для вас.

habr.com/ru/companies/agima/ar

#pwa #web_app_manifest #serviceworker #javascript #google_chrome #frontend #html

Chee Aun 🤔cheeaun
2025-04-15

Side quest sneak peek: a browser extension that visualizes (Service Worker) Cache Storage for web sites.

Decided to build this after seeing how difficult it is too see what's stored in Service Worker cache. They can (accidentally) take up quite a lot of storage space.

Repo: github.com/cheeaun/stakataka
Not released yet, under review in Chrome Web Store.

A browser window displaying a website titled "Vite PWA" with a large "PWA" logo. The extension button on the toolbar is clicked showing a popup that says "Stakataka" and a button "Visualize Cache Storage"A screenshot of the Stakataka: Cache Storage Visualizer with a user interface displaying cache data in a treemap format. It shows cache storage usage for various assets, with options to view as a sunburst or table.A screenshot of the Stakataka: Cache Storage Visualizer with options for viewing cache as Treemap, Sunburst, and Table. Sunburst view with cache data is displayed.A screenshot of the Stakataka: Cache Storage Visualizer with a table view selected. The table lists cached items, including a "404.html" file, "apple-touch-icon.png," and "asset-generator/api.html," along with their type and sizes.
2025-03-27

The code for this component can be found on GitHub at the following address: github.com/mapcomponents/react

and you can have a look at the demo from the screen recording here: catalogue.mapcomponents.org/en

#serviceworker #react #WebDevelopment #GitHub #GIS

2025-01-30

Est-ce qu’on peut faire une web app sans framework JS aujourd’hui ?
La réponse c'est oui !
ES modules et Service Worker ont changé la donne.
Pourquoi ? alethgueguen.com/une-web-app-s
#webDev #webApp #serviceWorker #sobrieteNumerique

2024-12-20

Todo-лист на максималках: разбираем архитектуру крупного приложения

В этой статье я покажу, как устроена многослойная архитектура крупного реактивного web-приложения, и особенности его запуска под Electron. Материал будет полезен, если вы планируете начать свою разработку, хотите попробовать себя в роли архитектора, вас не пугает Shared Workers, Service Workers или, в конце концов, вы хотите это попробовать или разобраться.

habr.com/ru/articles/868194/

#Electron #sharedworker #worker #тай #фронтенд #serviceworker #s3 #react #redux

Nicolas Hoizeynhoizey@mamot.fr
2024-11-30

“A Local-First Case Study” by @jakelazaroff

🔗 jakelazaroff.com/words/a-local

> It helps a lot that various libraries in the ecosystem compose well. Just snapping together ProseMirror, Yjs and Y-Sweet gave me a collaborative rich text editor with shared cursors. Adding in `yjs-indexeddb` made it work offline. This was all mostly out of the box, with very little setup; the degree to which everything Just Works is…

#PWA #ServiceWorker #offline

⚓️ nicolas-hoizey.com/links/2024/

Screenshot of A Local-First Case Study
Nicolas Hoizeynhoizey@mamot.fr
2024-11-29

“Building a Single-Page App with htmx” by @jakelazaroff

🔗 jakelazaroff.com/words/buildin

> It’s a simple proof of concept todo list. Once the page is loaded, there is no additional communication with a server. Everything happens locally on the client.
>
> How does that work, given that htmx is focused on managing hypermedia exchanges over the network?
>
> With one simple trick: the “server-side” code runs in a service…

#ServiceWorker #htmx

⚓️ nicolas-hoizey.com/links/2024/

Screenshot of Building a Single-Page App with htmx
2024-11-28
If anyone knows someone at #Apple working on #Safari / #WebKit and can get this #ServiceWorker related bug accelerated it would be greatly appreciated 🙏

https://bugs.webkit.org/show_bug.cgi?id=283793
🧿🪬🍄🌈🎮💻🚲🥓🎃💀🏴🛻🇺🇸schizanon
2024-10-10

that occassionally checks an feed and creates a notification if new items have arrived.

Nicolas Hoizeynhoizey@mamot.fr
2024-10-08

“A Local-First Case Study” by @jakelazaroff

🔗 jakelazaroff.com/words/a-local

> It helps a lot that various libraries in the ecosystem compose well. Just snapping together ProseMirror, Yjs and Y-Sweet gave me a collaborative rich text editor with shared cursors. Adding in `yjs-indexeddb` made it work offline. This was all mostly out of the box, with very little setup; the degree to which everything Just Works is…

#PWA #ServiceWorker #offline

⚓️ nicolas-hoizey.com/links/2024/

Screenshot of A Local-First Case Study
Nicolas Hoizeynhoizey@mamot.fr
2024-10-07

“Building a Single-Page App with htmx” by @jakelazaroff

🔗 jakelazaroff.com/words/buildin

> It’s a simple proof of concept todo list. Once the page is loaded, there is no additional communication with a server. Everything happens locally on the client.
>
> How does that work, given that htmx is focused on managing hypermedia exchanges over the network?
>
> With one simple trick: the “server-side” code runs in a service…

#ServiceWorker #htmx

⚓️ nicolas-hoizey.com/links/2024/

Screenshot of Building a Single-Page App with htmx
we compiled differentunspeaker
2024-08-24

@schizanon @phanpy

not bad at all! a lil janky tho. noticeably more so than the standard masto ui 🫠

could be the browser tho. weirdly enough it works fine in firefox wrapper but doesn't load in my usual vanilla 🤔

think is killing the 🤓

saul b :rojava3: :acab: 🎡atompunkray@kolektiva.social
2024-06-30

Turbo pet peeve at work is when a customer acts wayyy too familiar. It’s fine if I see you several times a week, or hell! Even once a week! Just some kind of regularity. But I *just* met this dude today and he’s all “where did ya go? I needed a drink and you’re on break!” Like dude idk you like that. Also he needed attention from either me or the other bartender constantly. We got other customers man, don’t worry I’ll be over to listen to your life story after I clear service bar.

#bartender #restaurant #serviceworker #restaurantworker #casinoworker #OrganizeTheServiceIndustry

Inautiloinautilo
2024-06-11


Full stack web push API guide · A manual on setting up web push notifications ilo.im/15z55c

_____

:mima_rule: Mima-samamima@makai.chaotic.ninja
2024-05-04

Why is #Fennec #FDroid still stuck in version 124 ​:youmu_squint:​

I need the
#ServiceWorker support in #Firefox 125 ​:TenshMelt:​

Sono praticamente 36 ore che non posto e lo so che siete in astinenza, ma avevo la questione importantissima inderogabile tra le mani di risolvere quel #problema con le #PWA una volta per tutte. E ora, nonostante un’altra frazione di sanità mentale sottrattami dagli spiritelli del silicio, dolori perché sto seduta per ore alla scrivania e tutta storta, e sonno perché ieri sera ho perso un sacco di tempo a debuggare un errore stupidissimo rimanendo sveglia fino alle 2 per poi arrendermi perché stavo veramente morendo, quantomeno ce l’ho fatta… 🤯️

Cercando con estrema #disperazione ieri mattina, mi accorgo di una cosa documentata alla bene e meglio, trovando prima una menzione su MDN ad un permesso webRequestFilterResponse.serviceWorkerScript, che servirebbe a regola per permettere alle #estensioni di intercettare i caricamenti dei Service Worker, e poi un thread bugzilla (#1636629) che pare abbia portato proprio all’introduzione di questa separazione di permessi. Ho scaricato il #codice dimostrativo per il bug, l’ho un attimo sistemato per tenere conto di questa misura di sicurezza poi introdotta e, certo abbastanza, il coso riusciva a fare quello che io volevo dall’inizio, senza ricorrere a bruttissime e fragilissime #hack (che a questo punto io nemmeno divulgo visto che non ho dovuto implementarle, per non sporcarmi la reputazione come developer, che già è molto bassa visto che prediligo il #webdev). 🔮️

A questo punto era quasi solo questione di rifiniture, un po’ creare il popup per le impostazioni della mia #estensione (che però mi ha richiesto diverse ore di design e implementazione fatti in contemporanea, perché volevo farle bene, non buttarci dentro bottoni a cazzo per il gusto di), e un po’ capire come #programmare il worker che gestisce #cache e richieste di rete #offline. Solo che qui ho sclerato perché… inizialmente con il codice preso da Chrome for Developers non andava, e pensavo fosse un problema mio, ma invece sembra proprio colpa loro, le loro demo non vanno proprio in #Firefox (ma non ho testato nemmeno in Chromium)… quindi ho provato quello offerto da MDN, ma anche qui nada, solo che ormai stavo crollando e quindi vado a mimir… stamattina vedo meglio e quest’ultima implementazione in effetti scopro che funziona, ma a me non andava perché, nel modo in cui iniettavo il #ServiceWorker trasformandolo da oggetto a stringa, una variabile che referenziavo non era accessibile nel contesto di esecuzione effettivo dello script, e quindi l’accesso alla cache falliva, ma io non me ne sono accorta subito perché già gli strumenti di #debugging del #browser sono mezzi scassati per questi casi speciali, ma io poi avevo pure un try-catch di mezzo che quindi sopprimeva gli errori alzati dall’interprete… la #pazzia. 😫️ 😩️

C’è un #casino di mezzo con la pubblicazione di #addon per #Mozilla, quindi praticamente ora il mio è in revisione, ma se tutto va bene dovrebbe prossimamente apparire sulla pagina https://addons.mozilla.org/en-US/firefox/addon/offline-caching/; in ogni caso, chi volesse usarlo da subito (come me sul telefono in primis) può scaricare da qui il file firmato da installare a mano. Edit: un’oretta dopo, l’estensione è approvata! 💖️

Btw, mi serviva un’icona per l’add-on, perché tenere quella generica mi da fastidio (così come per quando creo app Android), e quindi ecco qui, letteralmente #OfflineCaching scritto a manina con uno stile un po’ buffo. Graphic design is my passion, ma non è roba mia, non son proprio capace. Penso comunque sia meglio di niente, quindi l’ho usata… (quella in basso sul foglio, che è stata la seconda; ho fatto prima quella in alto, ma poi non mi è piaciuta) 😬️

https://octospacc.altervista.org/2024/03/28/pwgoduriaaaa/

#addon #browser #cache #casino #codice #debugging #disperazione #estensione #estensioni #Firefox #hack #Mozilla #offline #OfflineCaching #pazzia #problema #programmare #PWA #ServiceWorker #webdev

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst