Search CodeHorizon

Products

CSS Class HighlighterChrome extension · Live ShopGradeChrome extension + web app · Live SecureVaultAndroid app · Live Companion AIAndroid app · Live Speaker CleanerAndroid app · Live NickedAndroid game · Live CompassAndroid app · In testing TubeFocusChrome extension · Live KeeptakeChrome extension · Live TabClusterPast Chrome extension · Past project NotiloPast Chrome extension · Past project

Insights

Android now checks who built an app before it installs itAndroid WebMCP lets your website hand AI agents a proper set of toolsWeb and AI Your next customer might be an AI agent. Here is what it reads in your storeShopify Manifest V2 is gone. This is what a Chrome extension looks like nowChrome extensions Google sends fewer clicks now. Here is how a business website should adaptSearch

Pages

HomeThe studio ServicesWebsites, stores, extensions and apps Case studiesSelected work ProcessHow a project runs All productsThe complete collection InsightsPlatform changes, explained JournalEvery release, newest first Start a projectPlan it in a minute
move openEsc close

TabCluster

Past Chrome extensionPast project

A tab organiser I built. Not currently live.

I built and previously published TabCluster to group every open tab by site, show the groups before applying them and save whole workspaces. It is no longer live. This case study preserves its interface and the tab-grouping work behind it.

Platform
Chrome
Last version
1.2.10
Project
Built and published
Status
Not currently live
Role
Sole developer
Timeline
May to Jul 2025
Stack
JavaScriptManifest V3Tabs APITab Groups API

The problem

Why TabCluster exists

Research, docs, email and three half-finished shopping carts, all in one tab strip. Finding anything means squinting at favicons. Chrome has tab groups, but setting them up by hand every morning is its own chore. I built TabCluster so one click would do it. The extension is now a past project.

Before

  • Forty favicons in one tab strip
  • Setting up tab groups by hand
  • Losing a research layout when you close it

With TabCluster

  • Tabs grouped by site in one click
  • A preview before anything moves
  • Workspaces saved for later
The hardest part
A grouping call that failed without a word on any window that wasn’t focused.

How it works

How you use it, step by step.

The workflow I built. TabCluster is no longer live, so these screens are redrawn from its last version.

  1. Forty tabs, tidied in one click
  2. See the groups before anything moves
  3. Every site gets its own Chrome tab group
  4. Settings for duplicate tabs, auto-collapse and theme
Forty tabs, tidied in one click
See the groups before anything moves
Every site gets its own Chrome tab group
Settings for duplicate tabs, auto-collapse and theme

Under the hood

How it is built.

One button that groups every tab by domain using the Tabs and Tab Groups APIs, serialising and restoring session state. A chrome.windows.update pre-flight focuses the window first, because grouping fails without it. Pinned tabs, chrome:// pages and tabs that are still loading each get their own rules.

  1. 01

    Popup

    One click

  2. 02

    Tabs API

    Reads every open tab

  3. 03

    Group by site

    Pinned, chrome:// and loading tabs set aside

  4. 04

    Tab Groups API

    A colour-coded group per site

Decisions

The calls I made, and what they cost.

Each decision lists the reason for it and what it gave up.

  1. 01

    Rebuild all groups on every run

    Why

    Tracking which tabs moved, merged or closed is error-prone. A full rebuild is O(n) and always correct.

    Trade-off

    Slightly slower with 100+ tabs, though not noticeably.

  2. 02

    Group by domain only, with no heuristics

    Why

    It’s predictable, instant and offline. People know exactly what the rule is.

    Trade-off

    It can’t group by topic across different sites.

A bug worth telling

Groups that silently didn’t happen

What happened
Grouping did nothing on any window that wasn’t focused, and reported success.
Why
The Tab Groups API needs its window focused for some operations. It didn’t throw; it returned as if it had worked. Finding the silent call took three hours of logging.
The fix
Focus the target window first with chrome.windows.update, group its tabs, then give focus back to the window you were in.

What I tried first

  • Grouping by topicI tried clustering tab titles with a small classifier. “React docs”, “React tutorial” and “React GitHub” ended up in different clusters. Grouping by site is a rule people can predict.
  • Updating groups bit by bitTracking which tabs moved raced with tabs opening and closing mid-run. A full rebuild never leaves things half done.

What I learned

  • The happy path was about 20% of the work. Edge cases made up most of the bugs.
  • People don’t want to configure grouping rules. They want one button that works every time.

Screens

What it looks like.

01 / 05
01Forty tabs, tidied in one click
02See the groups before anything moves
03Every site gets its own Chrome tab group
04Settings for duplicate tabs, auto-collapse and theme
05Light and dark themes for the popup

Features

What you get.

01

Smart domain grouping

One-click grouping by site, with duplicate detection inside each group.

02

Preview first

Nothing changes until you press Group. No automatic surprises.

03

Saved workspaces

Save and restore entire tab layouts for each project.

04

Quick tab actions

Pin, mute and close straight from the popup.

05

Keyboard shortcuts

Plus right-click menu integration for power users.

06

Material 3 design

Clean popup with automatic light and dark themes.

Your data

The original extension ran entirely in the browser, with no analytics and no external servers, and saved its settings with Chrome storage. This page documents that past implementation; TabCluster is no longer live.

Questions

Good questions.

Something else? Ask me directly.

Is TabCluster still live?

No. I built and previously published TabCluster, but it is no longer on the Chrome Web Store or available for new installations. This page remains as a portfolio case study.

What did I build?

A Chrome extension that grouped every open tab by site in one click, showed the groups before applying them, and saved whole workspaces to restore later.

Did it rearrange tabs without asking?

No. It showed a preview of the groups first, and nothing changed until you pressed Group Them.

Did it send tabs anywhere?

No. It ran entirely in the browser, with no analytics and no external servers. The screens here are redrawn from its last version, 1.2.10, and show only what it did.

Milestones

From the first line to today.

  1. May to Jul 2025

    First version

    One click groups every open tab by site.

  2. 20 Mar 2026

    1.2.10

    A preview before anything moves, workspaces you can save and bring back, and a fresh icon.

  3. 16 Oct 2026

    No longer live

    It stays on this site as a record of what I built.

  1. Project status

    TabCluster is no longer live

    I built and previously published TabCluster. It now remains as a past project and engineering case study.

    • TabCluster is no longer on the Chrome Web Store or available for new installations.
    • Its screens, redrawn from the last version, and the technical details remain as a record of what I built.
  2. Updatev1.2.10

    TabCluster 1.2.10 with a fresh icon

    The same one-click tidy-up for a crowded tab bar, with a new look in your toolbar.

    • Preview how your tabs will be grouped before anything moves.
    • Save a whole set of tabs as a workspace and bring it back later.

For businesses

Like how TabCluster turned out? I can build yours.

Websites, Shopify stores, Chrome extensions and Android apps, designed and engineered with the same care as my own products.

Booking new projects

Tell me what you’re building.

I read every message myself and reply within a day or two with honest next steps.

  1. 01You share the ideaA few lines is plenty. Links to anything similar help.
  2. 02We talk it throughOne short conversation by email or a quick call.
  3. 03You get a clear planScope, timing and a price that fits, before any work starts.
Just say helloFour fields, that is all

Your details come straight to my inbox and are only used to reply. Nothing is stored on this site or shared.

Project plannerTakes about a minute
01What do you need?Pick any that fit. Skip it for a quick hello.
02Budget
03Timeline
04Tell me about it

Your details come straight to my inbox and are only used to reply. Nothing is stored on this site or shared.