As Google Chrome completes the transition from Manifest V2 to Manifest V3, Chrome extension development has fundamentally changed. Persistent background pages have been replaced with event-driven service workers, and the synchronous webRequest API has largely given way to the declarative declarativeNetRequest API.
These changes require more than simple API replacements—they demand a different architectural approach.
While building SaveYourself, a productivity-focused Chrome extension that blocks distracting websites, intercepts network requests, and enforces focus sessions, I had to redesign the extension around Manifest V3's constraints while maintaining responsiveness and keeping resource usage low.
This article explains some of the engineering decisions behind that architecture.
1. Designing for Ephemeral Background Service Workers








