korm.coEvan Kormos
HomePostsLinks

© 2026 Evan Kormos. All rights reserved.

Terms of Service
← Back to Posts

Stretchtext, Sixty Years Later

A brass throttle lever on a wooden desk stretching a scroll of text from compressed dense lines to wide spaced lines
August 7, 2026·
AIreadingstretchtextUXhypertext

Reading Time as a Control, Not a Label

Many blogs tell you how long the post will take to read. Almost none of them ask how invested you are.

The posts on this site now do. The "min read" label at the top of each post opens a reading menu with the usual ereader comforts (text size, serif or sans, column width) plus one control you don't see often: an article-length slider. Brief, sometimes Core, and Full. Slide it down and the article gets shorter while keeping the main argument. Slide it back and the detail returns. The reading time updates as you go.

The reading menu on a post: article length slider, text size, font, and column width controls

This post is itself layered, and it knows which version you are on. You are reading the BriefCoreFull version right now. That is about two thirds of the words, with the supporting material set aside. That is everything except the deep dives. Nothing is set aside. The story should hold together at every length, and that turned out to be the hard part. It is most of what this post is about.

Subset, Don't Summarize

The obvious way to build this in 2026 is to have an AI rewrite the article at three lengths. I deliberately didn't.

Instead, the AI acts as an editor, not a writer. At build time, it reads each post and judges which blocks are load-bearing: which paragraphs carry the argument, and which are elaboration, evidence, or asides. Those judgments are recorded as layer markers in the source document itself. The site ships one static page per post; the slider just hides layers.

Mechanically: each post is an MDX file, which is Markdown that can embed React components, and the skippable blocks are wrapped in a <Detail> layer marker. The slider simply shows or hides layers, so switching lengths is instant, and the reading time for each length is computed once at build.

The payoff of subsetting rather than summarizing: every word you see here was tailored for the BriefCoreFull version you are reading right now. Each length is its own pre-built cut of the original. There is no generated text, so there is nothing to hallucinate, no drift when I edit the original, and no second document to maintain. The AI's entire contribution is deciding what you can safely skip.

An Idea Older Than the Internet

My personal history with reader-steered text started with some of the first video game programming I did in DOS. Text-only adventures, with IF statements and GOTOs deciding which paragraph you saw next. The reader "chooses their adventure" by controlling where the story goes. This slider is the grown-up version of that idea: instead of choosing where the story goes, you choose how deep it goes.

Here's the humbling part. After building it, I got curious about the prior art. What I found answered the question decisively, and made the feature more interesting to me, not less.

Ted Nelson, who coined the word hypertext, described this exact interaction in 1967 and named it stretchtext: text that "gets longer, by adding words and phrases, or shorter, by subtracting words and phrases, on demand."

Nelson imagined a reader with two throttles: one to move through the text, one to control its depth. Hypertext theorists have praised the concept for decades; almost nobody has shipped it. The slider has prior art too: Xerox patented interactive summarization with a slider in 1998, and in 2024 Modulus AI was granted a patent on LLM-generated summaries at adjustable "zoom" levels. Sixty years of people circling the same reader-controlled-depth idea.

The most recent reference: last December, Alexander Refsum Jensenius published a piece called Stretchtext and LLMs proposing almost exactly this: using language models to give readers multidimensional control over text depth, with a working short/medium/long demo. I found it after building mine. He also names the core risk of the generative approach: LLMs "hallucinate and invent new facts," which makes provenance the central problem. That is precisely why this site's implementation only hides my sentences and never writes new ones.

So why did stretchtext never catch on, if it's been praised for sixty years? My guess after building it: the economics of authorship. Writing one article is hard; writing one article that reads coherently at three lengths is three times the editorial work, and no author does it. What changed in 2026 is not the interaction idea. It's that the editorial labor of layering can be delegated. The LLM doesn't make stretchtext possible. It makes it affordable.

The Seam Problem

The Full version is the source of truth. Core is what is left after the deep dives and asides come out of it. Brief is what is left after the supporting material comes out of that. Nothing is written for a length. Each length is a survivor of the one above it.

Cutting from finished writing is harder than it sounds, because paragraphs lean on each other. Remove one and the paragraphs that depended on it are still there, still depending on it. A "But" with nothing to contrast. A "this" with nothing to point at. A conclusion about an argument the shorter version never made. The instinct is backwards too: setup feels skippable and conclusions feel essential, so the parts everything else rests on are the first to go.

So I tested each version instead of trusting my judgment. An LLM judge read every short version cold, with no knowledge of the full article, and scored it for comprehension: does the argument hold, does every reference have something to point at.

The fixes were usually small. Move one paragraph up a level and the version reads clean again.

A second problem showed up once the seams were fixed: some of the shorter versions barely saved any time. A stop that costs you a drag and saves you a minute is not worth offering. So the site now checks the gap at build time and only shows a stop if it saves at least a couple of minutes. Posts that do not compress that far get fewer stops, and the shortest posts get no slider at all.

The lesson is simple enough. When you let readers control depth, the question is not "what matters here." It is "what does the remaining text depend on." The first question is easy. The second one is the actual work.

Try It

The slider is live on every longer post here, including this one. By dragging it you can watch what survives.

Let me be honest, not that many people read this blog, and fewer still will ever touch the slider. The point was to have fun with the concept. Some ideas are worth building because they're fun to think with, and this one turned out to come with sixty years of good company.

And if you build something like this yourself: subset, don't summarize; audit the short version cold; and pour one out for Ted Nelson, who saw all of it coming before we had screens worth reading on.

← Back to all posts