<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mern-Umair</title>
    <description>The latest articles on DEV Community by Mern-Umair (@mernumair).</description>
    <link>https://dev.to/mernumair</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4207253%2F2d2b4d69-cc1f-4ee3-9a2e-d7ce053963e3.png</url>
      <title>DEV Community: Mern-Umair</title>
      <link>https://dev.to/mernumair</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mernumair"/>
    <language>en</language>
    <item>
      <title>I lost two days of research tabs to a Chrome update, so I built Tabcove: automatic, local-only tab backups</title>
      <dc:creator>Mern-Umair</dc:creator>
      <pubDate>Sun, 25 Oct 2026 19:38:55 +0000</pubDate>
      <link>https://dev.to/mernumair/i-lost-two-days-of-research-tabs-to-a-chrome-update-so-i-built-tabcove-automatic-local-only-tab-4g70</link>
      <guid>https://dev.to/mernumair/i-lost-two-days-of-research-tabs-to-a-chrome-update-so-i-built-tabcove-automatic-local-only-tab-4g70</guid>
      <description>&lt;p&gt;Last month Chrome restarted for an update while I had two days of research open across three windows. "Restore" brought back one window. Session Buddy had eaten my saved sessions the week before. So I built the thing I wanted and published it this week.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Tabcove does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Backs up every window on a timer (only when something changed) and keeps a window you close so you can bring it back.&lt;/li&gt;
&lt;li&gt;Save all windows as a named session with Ctrl+Shift+S, or "save and close all" to free memory.&lt;/li&gt;
&lt;li&gt;Restore a whole session, one window, or just the tabs you tick. Tabs open lazily, so 200 tabs come back in seconds without eating RAM.&lt;/li&gt;
&lt;li&gt;Search across every saved session and backup.&lt;/li&gt;
&lt;li&gt;Keeps pinned tabs and tab groups.&lt;/li&gt;
&lt;li&gt;No account, no sync server, no analytics. Everything stays in the browser. Export to a file any time; imports OneTab and Session Buddy exports.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free version keeps 24 hours of backups and 5 saved sessions. Pro is a one-time payment, no subscription.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hard part: Manifest V3 service workers
&lt;/h2&gt;

&lt;p&gt;MV3 kills the background service worker after about 30 seconds of inactivity, so "back up every 30 minutes" cannot be a setInterval. Tabcove uses chrome.alarms for the timer and chrome.storage.session for in-memory state, and every backup is written as a complete snapshot rather than a diff, so a worker dying mid-write never leaves a half-saved session. Restores are done in batches of windows with tabs created as discarded, which is what keeps 200-tab restores fast.&lt;/p&gt;

&lt;p&gt;Stack: Preact + Vite + TypeScript, zero runtime dependencies, about 30 KB zipped.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Chrome Web Store: &lt;a href="https://chromewebstore.google.com/detail/tabcove-save-restore-back/ccmjgbajjpimmhdnacanbbhmfjecjnlp" rel="noopener noreferrer"&gt;https://chromewebstore.google.com/detail/tabcove-save-restore-back/ccmjgbajjpimmhdnacanbbhmfjecjnlp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Edge Add-ons: &lt;a href="https://microsoftedge.microsoft.com/addons/detail/dhjlfjgodmjdbnnpaebngfdiplpdegph" rel="noopener noreferrer"&gt;https://microsoftedge.microsoft.com/addons/detail/dhjlfjgodmjdbnnpaebngfdiplpdegph&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/Mern-Umair/tabcove" rel="noopener noreferrer"&gt;https://github.com/Mern-Umair/tabcove&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What is missing for you? I am shipping fixes weekly and would rather build what people actually ask for.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
