Bubbles

About Bubbles

What is this?

Bubbles is the front page of the Small Web — a community-ranked feed of blog posts from personal, independent, human-made websites.

Every entry on this site comes from a curated directory of around 2,400 independent blogs, covering everything from technology and science to art, travel, and personal essays. We don't choose what appears here. We don't accept submissions. We don't run ads. We just surface what the community thinks is worth reading.

How to browse

There are four ways to explore Bubbles:

The front page is where most people start. It shows the highest-ranked posts right now — a mix of community votes, algorithmic signals, and freshness. This is the heartbeat of Bubbles.

Discover shows posts that our algorithm thinks are worth your attention, independent of votes. This is where you find the hidden gems — posts that haven't been voted on yet but come from blogs with a track record of posting thoughtful, infrequent content. If you want to help shape the front page, start here.

Newest shows every new post as it comes in, chronologically. Hundreds of posts per day from across the small web.

Active shows the posts people are actually talking about, sorted by discussion activity.

How ranking works

We put a lot of thought into how posts are ranked. Here's the idea, explained honestly.

The core belief

Most ranking systems treat all posts as equal and let votes decide. That sounds fair, but it creates a problem: blogs that post three times a day drown out the blog that publishes one careful essay per month. The frequent poster gets more chances to be seen, more chances to collect votes, and the quiet voice disappears.

We think that's backwards. So our ranking does something different: it gives a head start to posts from blogs that publish less often. The logic is simple — if someone only writes when they have something to say, it's probably worth reading.

What influences the ranking

Five factors determine where a post appears on the front page. Here's what they are and why they matter:

1. How often the blog posts — the biggest factor for new entries.

When a blog publishes a new post, we look at how long it's been since their previous one. Longer gap = higher starting score. A blog that posts once a quarter starts with a score close to 10. A daily poster starts around 1.5. This is what we call the Frequency Boost.

Why? Because posting frequency is a surprisingly good proxy for intentionality. It's not a quality filter — we can't judge quality — but it's an honest signal. In the formula, this is FrequencyBoost.

2. Community votes — the strongest signal once people start voting.

A single upvote is powerful, especially in the early days of the platform. When only a few people are voting, each vote matters enormously. As more people join and vote, individual votes naturally carry less weight — just like in any democracy.

This isn't a fixed setting we chose. The system adjusts automatically: it measures how many total votes were cast in the last 24 hours and scales the weight of each vote accordingly. Fewer total votes means each one counts more. In the formula, this is Votes × V, where V adapts to voting volume.

3. Discussion activity — a sign that something resonated.

Posts that spark conversation get a boost. Comments count as roughly half a vote each — enough to matter, but votes still lead. In the formula, this is Comments × K.

4. The blog's track record — a gentle nudge, not a lock.

If a blog's previous posts have consistently received votes, new posts from that blog get a small starting bonus. But it's capped — no blog can dominate the front page through reputation alone. A newcomer with a great post can overtake an established blog with just a few votes. In the formula, this is HistoricalBoost, capped at 5.

5. Time — everything fades.

Every post decays over time, regardless of how many votes it has. A post from yesterday is worth less than a post from this morning, all else being equal. This keeps the front page fresh — like bubbles, posts shimmer for a while and then drift away. In the formula, this is the (Age + 2) ^ 0.8 in the denominator — the older the post, the bigger this number gets, and the lower the score.

The full formula

For those who want to see it:

V = min(50, max(1, 100 / votes_last_24h))
K = V / 2

Score = (FrequencyBoost + HistoricalBoost + Votes × V + Comments × K) / (AgeInHours + 2) ^ 0.8

It's all transparent. No black box, no AI curation, no editorial hand. You can check our math.

What this means in practice

On a quiet day with few votes, the front page is shaped mostly by the Frequency Boost — surfacing new posts from blogs that don't post often. It's a good default experience even without any community activity.

As soon as people start voting, the front page shifts toward community preferences. A single vote can keep a post visible for hours. A handful of votes can keep it on the front page all day.

On a busy day with hundreds of votes, the front page is almost entirely community-driven. The algorithm takes a back seat.

The transition between these states is smooth and automatic. We never have to change the formula.

Identity and comments

Bubbles doesn't have its own account system. To vote or comment, you log in with your existing Fediverse account (Mastodon, GoToSocial, Pleroma, or any ActivityPub-compatible service). One click, one OAuth flow, and you're in.

Comments live on the Fediverse. Every post on Bubbles gets a corresponding post on our Fediverse account. Replies to that post show up as comments on our site. To join the conversation, you reply from your own Fediverse account. We display the discussion, but we don't store it — comments remain on the Fediverse where they belong.

This keeps things simple: no passwords to remember, no profiles to manage, no moderation burden. Your identity is your Fediverse handle, and your comments are yours.

What we store

Almost nothing.

If you want your votes deleted, let us know and we'll remove them.

Where do the blogs come from?

Our initial list of blogs comes from ooh.directory, a lovingly hand-curated directory of around 2,400 independent blogs. We're grateful for their work in assembling this collection.

Over time, we may add blogs from other curated sources to broaden the selection. But we'll always prioritize quality over quantity — a smaller list of genuinely interesting blogs beats a massive list of noise.

If you run a personal blog and want to be considered for inclusion, the best path is to get listed on ooh.directory first.

What is the Small Web?

The Small Web is the web as it used to be — and as it still is, if you know where to look. Personal blogs, hobby sites, handmade pages — written by real people for the joy of sharing, not for clicks, ads, or SEO. No corporate content farms. No AI-generated slop. No influencer marketing.

Who is behind this?

Bubbles is a personal project by Ben Behnke, built from Germany. It's not a company, not a startup, not backed by anyone. It's one person who wanted a better way to discover good writing on the small web, and built it.

Can I opt out?

If you're a blog owner and don't want your posts to appear on Bubbles, send us an email. We'll remove your blog within 48 hours, no questions asked.

Get in touch

Questions, feedback, or just want to say hi — reach out at hello@bubbles.town or find us on the Fediverse at @bubbles@social.bubbles.town.

Links