A huge pile of pink and white marshmallows.

The Marshmallow Test

Published Mar 31, 2026 6 min read

I've been at AtmosphereConf for the past week. The first two days were excellent. The community was full of energy and vigor. We were excited to build, learn, and grow. Saturday morning carried the same excitement. It felt amazing.

Then Paul Frazee and Jay Graber presented the "2026 Atmosphere Report."

The first half of the presentation was great. They highlighted cool things Bluesky has shipped to enable innovation on the Atmosphere, like Sync 1.1 and Tap. They mentioned their grants program and the projects they've funded. Then they pointed to a lot of the awesome community projects like Graze's custom feed builder and the coalition of long-form platforms creating Standard.site (pckt, Leaflet, and Offprint). It felt like a celebration of what the ecosystem is becoming. It felt good.

Then things went off the rails.

Paul presented Attie, an AI tool for creating dynamic content inside Bluesky. The first demo showed creating custom feeds by describing what you want in plain language. The second demo created a custom renderer for Standard.site content.

Here's the thing: I don't have the knee-jerk objection to Attie that many do. I can follow the thought process.

  • Bluesky democratized social media.
  • Custom feeds democratized algorithmic choice.
  • Attie democratizes content personalization by removing the requirement of being a developer.

That progression makes sense. I want individuals to be empowered. I agree with the end goal. What I have a problem with is what Bluesky chose not to say.

Graze is a SaaS for building custom feeds. They've been working on this for months. They're in the middle of trying to raise funding. They sponsored AtmosphereConf. They paid for all of us to be there. The very first thing Bluesky showed Attie doing is building custom fucking feeds.

Graze knew Bluesky was doing "something interesting with AI." That's it. Nobody said it was feeds. Nobody said it was their core product. That's not a heads-up. That's a fig leaf.

Then there's the question of collateral damage. Leaflet just announced a pro subscription. The standard.site coalition has been building something genuinely collaborative across multiple teams. Watching that presentation, it felt like any of us could be next.

The immediate harm isn't the only issue. There's a longer-term signal here that should worry everyone building on the Atmosphere: if Bluesky is willing to celebrate your work one minute and demo their competitor the next, what does that mean for investment?

Why would anyone fund an Atmosphere project if Bluesky, with $100 million in the bank, might ship a competing feature at any moment? Why would a founder bet their career on this ecosystem? The presentation didn't just hurt Graze. It made the entire ecosystem look unfundable.

Minutes after saying "look at all the amazing work from our community," Bluesky said "look how excited we are to eat our young."

Ricardo J. Méndez framed it in a way that stuck with me:

Most platforms cannibalize their ecosystem eventually, but doing it this early scans as a failed marshmallow test.

Here's what makes this so frustrating: there's context that might have changed the narrative. I've spoken with ecosystem partners who describe thoughtful conversations with Bluesky about avoiding competition, holding off on features specifically to give community projects room to grow. That work is happening behind closed doors.

None of it made it to the stage.

The community didn't hear "we're building this, and here's how we're working with affected projects." They didn't hear "we know this might concern some of you, and here's what we're doing about it." They heard celebration, then competition, then silence.

When I reached out to Bluesky after the conference, I was told they expected this reaction. They knew the announcement would be hard for some in the community. If you expect the reaction and you do it anyway, without providing context, without acknowledging the impact on stage, that's a choice. That's a communication failure at the organizational level.

What Should Have Happened

I've spent a lot of my career thinking about this stuff. I've been a Director of Developer Experience, I've held DevRel roles, I've worked on building relationships between platforms and the developers who build on them. What happened at AtmosphereConf wasn't just disappointing. It was a masterclass in how not to do developer relations.

Bluesky knows how to have these conversations. They've done it well with some partners. The failure was in not doing it sufficiently with Graze, and in not bringing any of that context to the stage.

The announcement needed acknowledgment: "We know this overlaps with work some of you are doing. Here's how we're thinking about that. Here's how we want to work together." Instead, the community was left to draw its own conclusions.

That's what collaboration looks like. That's how we build an ecosystem that's genuinely better. We see it across the Atmosphere. I'm building Cartridge.dev, and if somebody else builds a games database on the same lexicons and Appview, we're not competitors. We both benefit from shared improvement of the dataset, increased users on the Atmosphere, and collaborative governance. That's the dream. That's what this ecosystem is supposed to be.

Bluesky isn't the only entity in this space with funding. Graze raised $1M in pre-seed, Germ has pre-seed backing. Bluesky raised $100 million. They're the platform. They have resources the rest of us can only dream about. They could be supporting and contributing to the projects that are building on and strengthening the Atmosphere. Instead, this presentation said: we'll celebrate your work, but if we like what you're doing, we'll just build our own version and leave the community to figure out what that means.

Where I'm At

I'm still processing. Saturday I felt sad. Sunday I was trying to work through it. Monday I was mad. Today, after more conversations, I'm holding two things at once. Bluesky doesn't want this experiment to fail. They also blindsided one of their most visible community projects at an event that project sponsored. Both of those things are true, and I don't know yet what to make of that.

Jay posted a response acknowledging concerns about AI, clarifying that Attie is about giving people control, not generating content. I believe that's genuinely the intent. The damage wasn't about what Attie does. It was about how it was announced, what context was missing, and what it signals about Bluesky's relationship with the community, a community that wants so badly to believe that Bluesky actually wants us here.

When I spoke with Bluesky, they told me: "We want to see as many people and projects succeed as possible." I believe that's sincere. It's hard to reconcile those words with a presentation that blindsided one of the community's most visible projects, a sponsor of the very event, without acknowledgment or apparent concern.

The Atmosphere is supposed to be different. That's the whole point.

I still believe it can be, but it requires the biggest player in the room to act like they're part of the community, not above it. That means not just having the right conversations behind closed doors, but bringing that context to the stage. It means acknowledging impact before the community has to demand it.

There needs to be significant repair after this. I don't think it's impossible to come back from, but fuck, man. I hope this becomes a lesson learned, not a pattern established.

To that end: Paul posted this morning about organizing meetups and inviting developers to discuss the state of the ecosystem. That's a start. I hope it's the beginning of a real conversation, not damage control.