Why I built ChatGPT LightSession
Long ChatGPT threads slow down because the page keeps every message in the DOM. One small extension, trimming to the last N messages along the active path, has kept sixty thousand sessions responsive without touching a single server.
Draft in progress. This post is staged so the link goes somewhere deliberate rather than 404. Full writeup lands shortly. Until then, the extension and its source are both public.
The problem in one paragraph
ChatGPT conversations that cross a few hundred messages get noticeably laggy. Scrolling stutters, the input field hesitates, and rendering each new message takes longer than the one before it. The cause is unremarkable: every message stays in the DOM forever. There is no virtualization. A thirty-message thread and a three-thousand-message thread share the same code path, and the browser notices.
What the extension does
ChatGPT LightSession trims the rendered DOM to only the last N
messages along the active conversation path, configurable from the
popup. The underlying data remains untouched. The extension never
talks to any server. It never reads the content of conversations for
anything other than layout. When you scroll up past the limit, older
messages are lazy-rendered back in view.
That is the whole product. A small DOM pruner, a popup to set the window size, and a toggle to turn it off when the user wants the full thread.
Distribution and what I learned
As of this writing the extension has sixty thousand active users and a 4.8-star rating. It got there via word of mouth on X and Reddit, without any paid promotion. Three things I learned from shipping it:
- Fixing slowness for a product you do not own is valuable. The user does not care whose code path is slow. They care that their screen is slow. If you can make it not slow, they will install the smallest possible patch.
- Reliability tooling as a genre is under-explored on the Chrome store. Most extensions add features. A few remove noise. Almost none specifically target performance reliability of existing sites. There is more room here than I expected.
- Shipping behind someone else's surface area is a contract of humility. I do not control ChatGPT's DOM structure. Every major UI change from OpenAI is a potential regression. The extension has needed two compatibility rewrites in its lifetime. That cost is ongoing.
Extension link
The extension is free and stays free: ChatGPT LightSession on the Chrome Web Store. Full writeup with code snippets, DOM structure diagrams, and the two UI-change compatibility stories lands when I find an afternoon for it.