Mezzanine: An Information Network Built on Bluesky's Cashtags

The problem is simple.

Timelines flow. Threads sink. There is no good way to connect what you wrote last week to what you are writing now. Reply trees get buried. Quote posts break context. The architecture of microblogging assumes the present moment is all that matters.

It does not.

Cashtags are sitting empty.

Bluesky shipped cashtags in January 2026 with v1.114. The feature was designed for stock ticker discussions — type $AAPL and it becomes a clickable, searchable tag. The reception was cold. Users asked for edit buttons and draft saving instead. Heise Online noted that the feature does not match the cultural makeup of the Bluesky userbase. Under the official announcement, the replies were almost entirely critical.

The feature exists. The search works. But the intended use case never took off.

So repurpose it.

The idea.

Generate a random alphanumeric string. Prepend a dollar sign. Drop it into a post. Now any post carrying the same tag is connected — across time, across accounts, independent of reply threads.

No thread hierarchy. No algorithmic amplification. A shared frequency that links posts on the same horizontal plane.

This is the Mezzanine.

Why not hashtags?

Hashtags have three problems.

First, granularity. Tags like #books or #diary are too broad to preserve individual context.

Second, political capture. Hashtags get co-opted for activism, drifting from their original function.

Third, fragmentation. The same topic splits across variant tags. A single TV show generates #showname, #ShowName, #NetworkShowName — three tags, one conversation, no aggregation.

Cashtags with random strings bypass all three. A meaningless string cannot be politicized. It cannot fragment. Its meaning lives entirely in the context of the posts that carry it.

45 million frequencies.

A mezzanine in architecture is a half-floor between the first and second stories. Not a proper floor. But a space that exists.

The Mezzanine on Bluesky sits outside the normal pathways of timelines and threads. A shifted connection layer accessible only to those who tune to the frequency.

How large is this space? Through operation, two constraints surfaced.

On February 23, 2026, cashtags turned out to be case-insensitive. $AbCdE and $abcde resolve to the same tag. The character set drops from 62 to 36 — 26 letters plus 10 digits.

The following day, tags starting with a digit proved invalid. The first character must be a letter.

With these constraints:

3 characters: 33,696

4 characters: 1,213,056

5 characters: 43,670,016

Total: 44,916,768

The initial estimate was 900 million. Reality brought it to 45 million. Still far beyond exhaustion. The specifications were discovered by running the experiment, not by reading documentation. That is how the Mezzanine operates. Move forward. Correct as you go.

How it works.

Generate or choose a random string. Prepend $.

Add it to your post.

Add the same tag to related posts.

Search the tag and every post carrying it appears — regardless of when it was posted or who posted it. Each post remains autonomous on the timeline. No post is subordinate to another. Yet through shared tags, they form an organic network.

A thread is vertical. The Mezzanine is horizontal.

Posts move forward in time. Yet tags automatically create backward connections to earlier posts and open channels for future additions or third-party contributions. The motion is always forward, but the structure permeates past, present, and future. This is the model of temporal interpenetration.

Top and Support.

To distinguish primary posts from supplementary ones without introducing hierarchy, use tag position.

Top post: content first, tag at the end.

Support post: tag first, then content.

Top posts stay readable on the timeline — content catches the eye before the tag appears. Support posts signal their reference point immediately. No metadata required. Just position.

Channels.

Drop a tag with a loose theme and let the first posts set the tone. Do not over-define. The early activity shapes the channel organically.

Examples from the initial deployment:

$xS0yV — things that surprised you recently

$iFaWr — what you are reading or watching

$bCZUr — a small story you want someone to hear

$rMazF — magic realist flash fiction

A daily journal tag is also viable. Generate a tag per day, attach it to every post that day, and you have a searchable daily index that functions outside of threads.

Language separation.

Bluesky supports language settings on individual posts. If users set post language accurately, the same Mezzanine channel can exist without cross-language noise. A Japanese-language post tagged $xS0yV and an English-language post with the same tag share the frequency but can be filtered by language preference on the client side.

This means the Mezzanine does not require separate tags for separate languages. The same channel serves multiple language communities simultaneously, with each community seeing their own language by default. The infrastructure is already there. It just needs disciplined use of the language setting.

Disconnecting from the social graph.

Bluesky has no locked accounts. Full privacy is difficult under the AT Protocol. But the Mezzanine offers a different kind of separation.

Create a separate account for Mezzanine use. Detach it from your main follow/follower graph. Now you connect through tags alone.

This is not encryption. It is not a DM. But cutting the social graph changes the texture of the space. It is closer to walking through an urban crowd. Someone is there. You can sense them. But they belong to no one's timeline.

If you use a custom domain on your main account, repurpose your .bsky.social handle for the Mezzanine. Semi-anonymous. Visible but not obvious.

This is optional. Participating from a main account works fine.

Dealing with noise.

Someone you do not want shows up on your frequency. Mute the account. The tag remains. The frequency stays open. The network is undamaged.

Zoning.

Some topics generate friction on the open timeline. The Mezzanine provides natural zoning. A dedicated frequency for a sensitive topic means interested users tune in while others never encounter it. No labeler dependency. No content warnings. The content is simply elsewhere from the start.

This is not hiding. It is coexistence through architecture.

Design philosophy.

The Mezzanine aligns with Bluesky's non-viral design. No mechanism for engineered reach. No algorithmic boost. Connection happens between those who share a frequency — intentionally or by accident.

A random string as a tag means outsiders cannot read the intent. This is both a limitation and a feature. The Mezzanine chooses to be visible but not legible.

Threads decompose into autonomous posts. Each post stands alone. Yet tags bind them into an organic structure where additions, dialogue, and annotations from others enter the same plane. The autonomy of individual posts and the connectivity of the network coexist.

The motion is always forward — post by post, day by day. But the connections reach backward and sideways automatically. Past and present interpenetrate. That is the architecture.

Tools.

A cashtag generator is available. It produces random strings with no duplicates, respecting the constraints discovered so far — first character alphabetic, case-insensitive collision avoidance. Length is adjustable between 3 and 5 characters.

Start.

The founding anchor of the Mezzanine is $cT7aZ. A randomly generated string that became the origin point of this network.

Tune your frequency. See you on the Mezzanine.