TabFlow - Visual Bubble Tab Manager
Effective date: April 3, 2026 · Version 1.0
TabFlow is a Chrome browser extension that provides visual tab management through coloured bubbles, helping users organise, group, snooze, and protect their browser tabs. It is developed and maintained by NeatStack Studios ("we", "us", "our").
TabFlow is distributed via the Chrome Web Store. Subscriptions are processed by LemonSqueezy, our payment provider.
TabFlow has a single, clearly defined purpose: to help users visually organise and manage their browser tabs using coloured bubble groups. All features (bubble grouping, tab snoozing, close protection, clipboard history, page highlights, presets, and notes) serve this purpose. The extension does not serve ads, inject affiliate links, modify search results, or perform any function unrelated to tab management.
TabFlow is designed with a local-first, privacy-by-default architecture. We collect no personal information. The extension handles the following data, all stored locally on your device:
| Data type | Description | Storage location |
|---|---|---|
| Bubble data | Metadata about your tab groups (bubbles): name, colour, icon, tab IDs, Chrome group ID, collapsed state, and creation timestamp. No page content is stored. | Local only (chrome.storage.local) |
| Extension settings | Your preferences: auto-group behaviour, tab count display, theme, collapse-on-switch, suspend inactive tabs, suspend delay. | Local only |
| Layout presets | Saved bubble configurations that you can restore later. Contains bubble names, colours, icons, and the URLs of tabs in each group. | Local only |
| Snoozed tabs | Tabs you have snoozed for later: tab URL, title, favicon URL, snooze duration, and wake-up timestamp. | Local only |
| Protected tabs | Tab IDs marked for close protection (auto-reopen if accidentally closed). Stores tab ID, URL, and bubble association. | Local only |
| Clipboard history | Text you copy (Ctrl+C) on web pages, stored with a timestamp and the source domain. No images, files, or passwords are captured. Limited to 500 entries with automatic cleanup. | Local only |
| Page highlights | Text you highlight on web pages using the highlight toolbar, stored with the selected colour, page URL, and timestamp. Limited to 1,000 entries. | Local only |
| Bubble notes | Notes you add to individual bubbles. Limited to 200 notes per bubble, 2,000 total. | Local only |
| Trial start timestamp | The date and time you installed the extension, used to calculate the preview period. | Local only |
| License key | The key you manually enter to activate the full version. | Local + sent to LemonSqueezy for validation (see Section 6) |
To be absolutely clear, TabFlow does not collect, transmit, or have access to:
Preview and unsubscribed users generate zero network requests. The extension makes no outbound connections whatsoever unless you manually enter a license key.
All data is stored locally on your device using Chrome's chrome.storage.local API. No data is stored on external servers.
| Data type | Maximum entries |
|---|---|
| Clipboard items | 500 (oldest auto-removed) |
| Page highlights | 1,000 (oldest auto-removed) |
| Notes per bubble | 200 |
| Total notes | 2,000 |
When storage approaches Chrome's 10MB limit, the extension automatically trims the oldest clipboard items, highlights, and notes to free space.
We do not sell, rent, trade, or share your data with any third party. Period.
There is one narrow exception:
https://api.lemonsqueezy.com/v1/licenses/validate) via HTTPS. The request includes:
"TabFlow Chrome Extension"No tab data, settings, clipboard history, highlights, or personal information is included. LemonSqueezy's privacy policy is available at lemonsqueezy.com/privacy.
We use no analytics services (Google Analytics, Mixpanel, Amplitude, etc.), no crash reporting tools, no A/B testing frameworks, and no advertising SDKs.
Chrome extensions must declare permissions upfront. Here is exactly why TabFlow needs each one:
| Permission | Why it's needed | What it can access |
|---|---|---|
storage |
Save bubble configurations, settings, presets, snoozed/protected tabs, clipboard history, highlights, notes, trial status, and license key locally. | Extension's own local storage only. Cannot access other extensions' or websites' storage. |
tabs |
Read tab URLs, titles, and favicons to display them in the bubble manager. Move tabs between groups. Detect when tabs are created, removed, or updated. Reopen snoozed and protected tabs. | Reads tab metadata (URL, title, favicon). Does not read page content. Tab URLs are stored locally for presets and snooze features only. |
tabGroups |
Create, update, collapse, expand, rename, and recolour Chrome tab groups (the core bubble feature). Sync existing tab groups on startup. | Manages Chrome's native tab groups. Does not access tab content, only group metadata (title, colour, collapsed state). |
sidePanel |
Display the TabFlow management panel as a Chrome side panel, providing persistent access to bubbles, tabs, clipboard, and settings without a popup. | Opens the extension's own side panel UI. Does not access any browser or page data through this permission. |
contextMenus |
Add right-click menu options to quickly add tabs to bubbles, snooze tabs, or protect tabs without opening the side panel. | Adds menu items to the browser's right-click context menu. Does not access page content through this permission. |
alarms |
Schedule wake-up timers for snoozed tabs and periodic storage quota checks. | Sets and responds to timer-based alarms within the extension. No external communication. |
content_scripts( http://*/*, https://*/*) |
Inject the bubble picker overlay (quick-add floating UI), toast notifications, clipboard capture (listens for copy events), and the page highlight toolbar on web pages. | Injects UI overlays onto pages. Listens for user-initiated copy events to capture highlighted text (clipboard history). Listens for text selection to show the highlight toolbar. Does not read page content unprompted or modify page functionality. |
Refund requests are handled through LemonSqueezy in accordance with their refund policy. Contact us if you need assistance.
You have full control over all data at all times:
Because we never have access to your data in the first place, there is nothing for us to delete on our end. Your data is entirely under your control.
TabFlow is designed to be compliant by architecture:
TabFlow's use and transfer to any other app of information received from Google APIs will adhere to the Chrome Web Store User Data Policy, including the Limited Use requirements.
Specifically:
TabFlow does not use cookies, web beacons, pixels, fingerprinting, or any other tracking technology. We do not track you across websites. We do not build profiles. We do not serve or facilitate advertising.
chrome.storage.local API, which is sandboxed to the extension and inaccessible to websites or other extensions.eval() or similar dynamic code execution.script-src 'self'; style-src 'self' 'unsafe-inline'; object-src 'none'.TabFlow does not knowingly collect personal information from anyone, including children under 13 (or the applicable age in your jurisdiction). Because no personal data is collected at all, the extension can be used by people of all ages. However, the subscription/payment process through LemonSqueezy may require the user to be at least 18 years old or have parental consent.
TabFlow operates entirely on your local device. No data crosses borders because no data leaves your device. The only exception is the license key validation request (subscribers only), which is sent to LemonSqueezy's servers. LemonSqueezy is a US-based company; please refer to their privacy policy for information about their data handling practices.
We may update this privacy policy from time to time. When we do:
Continued use of the extension after changes constitutes acceptance of the revised policy.
If you have questions, concerns, or requests regarding this privacy policy or your data, you can reach us at:
We aim to respond to all privacy-related enquiries within 5 business days.