← All Talks
Presentation Development and Protocol

Beyond Bluesky: Community infrastructure

Saturday, March 28, 2026
11:30 AM – 12:00 PM PT
Great Hall South
Available in-person & via livestream — Stream 1 (Great Hall South)

Bluesky, a VC-backed company, runs public infrastructure that's widely depended upon by ATProto builders. Microcosm, a set of community-funded open-source infra, supports dozens of ATProto projects and growing. I'll dive into AT-protocol-specific economics of operating and scaling public infrastructure, and look ahead at how we get to a sustainable and diverse infra future. All grounded in the day-to-day reality of actually running big indexes, caches, relays, jetstreams, a PLC mirror, ...

Okay. If the text is small on some of these slides and you want to follow along, or you want some spoilers, uh you can get the slides locally. Uh I also just posted the link on my account. Um yeah, thanks everybody for coming. Uh I'm gonna jump right in. I'm Fig or Phil, uh, you might know me as bad example. Um and last year when I was here I had shipped uh constellation. Um and since then I've done a few other things. This talk is about uh community infrastructure and specifically small scale community infrastructure. And I was trying to think about how to define that scope, and I couldn't like there's some obvious things that I wanted to say, and uh like for the purpose of this talk, um I ended up just settling on things that's kind of weird that you can just do.

Um atproto has a lot of this, um, but I'm just gonna be talking about it in the context of small scale infra. Um you can relay the whole fire hose yourself just as like a random person, and that's like kinda weird. Uh I think Twitter had uh open access to a fire hose early on, and that was like really wild. Uh atproto lets you run the fire hose yourself in a much much more powerful way. Um on a full network scale, like Bluesky, a major social media company could use my relay for the day if they wanted.

And there's a lot of reason they wouldn't, but those reasons are not that it wouldn't work. It would actually like everything you wouldn't notice a difference. Um you can also just index everything, so that's constellation. Um every single social interaction is a backlink uh in atproto, and all of those go into my house into my living room, and this googly-eyed Raspberry Pi takes note of them. Uh I'm gonna talk a little bit about constellation. Um it's really simple, so I made this diagram that makes it look really complicated. Uh the fire hose comes in with all the posts and blocks and likes and everything that's happening on the network called records.

Constellation opens each of those up and searches through for anything that looks like a link. And it doesn't matter what type it is. Um if something looks like a link, it will take note of where it came from and then just sort of put those in buckets of backlinks. So you can say, what are all the replies to this post? And Constellation can tell you because it's index a bucket of replies to every single post that's ever happened that you can just ask about. Um Rudy mentioned the follower counts that are really important to everybody, and this is an example of where you need that kind of aggregation across the network to be able to just show this number on someone's profile.

So uh that's something that you can get from Bluesky. They're sort of like server backend, has an API that can get you lots of information about the profile, including uh doing this kind of network aggregation of everybody that follows Sharpie. Um you just give it the identity and you say get profile and you get an answer back. So the same thing with constellation. You have to give it sort of one more thing, which is like uh where are the links coming from. So in this case, we're asking about follows, and within a follow record, this the link to define a follow is the subject of the follow.

Um and then constellation will kind of give you exactly the same kind of information, but in a generic general purpose way that's not specific to Bluesky, uh works for every atproto app. Um people use it uh and people use it a lot more recently as well, which I'll come back to in a second. Um this is all pretty low cost to run. Um because it's running on a Raspberry Pi at my house. Uh so something like Spores.garden, when you have it show you the series of steps that one of your uh mushroom spores has or whatever it is has like gotten to you, uh it will reach out to my living room Cassiopia up there and and it will tell them.

Um there's a problem with this, which is uh my internet is from an internet service provider that gives me a dynamic IP address, and there's also just one Raspberry Pi, and if it crashes then uh a lot of apps have issues.

So I had a uh support to buy this little micro PC that runs a hot failover also at my house. Um if if the Raspberry Pi has any issues, then we just fail over to the secondary instance. So we have like a little bit of redundancy failover happening here. I also don't actually really want to put my even dynamic IP directly on the internet. Um so I have this little $5 a month uh cloud server VPS that uh acts as a reverse proxy, gives me some nice things like I do TLS termination there, um caching and rate limiting, and then it's just the like upstream configuration in Nginx over tail scale to get to my house, and I don't have to worry about dynamic IPs.

So we're at five dollars a month to do this. Um but we also have a new single point of failure, which is that five dollar a month VPS that needs to be updated and restarted and stuff from time to time. So we do the same thing. Uh I put one on DigitalOcean and one on Vulture, so Constellation can survive an entire like uh platform-wide outage on DigitalOcean if it goes down, as long as Vulture and DigitalOcean don't go down at the same time. Um how do you load balance in front of that? Uh it's not a load balancer for reasons that if anybody wants to talk about, we can talk about after.

But uh for the moment it's just DNS-based uh load balancing, which in practice with two instances works really well. Um DNS is pretty reliable, but I guess I would get taken down by a DNS outage. Uh and things just kinda like automatically fail over between them. So this is up to $10 a month now for constellation. Running at home uh still has challenges. Uh last summer the fiber connection to my house was cut at the distribution box uh accidentally, as presumably. Um so I was able at the time to like tether over cellular for a couple days until uh a tech could come out to fix it.

Um I don't think at the current scale of use that would actually work. Um, but I'm looking at maybe getting a cable secondary internet connection. Um I had a power outage in January that my that was longer than my uh battery backup UPS runtime, so we had a one hour downtime of constellation for that. But it's very cheap to do all this and it's very low-tech. And the thing that I like about low-tech is that nothing really goes wrong generally, and when they do, they're usually really easy to figure out what's going on and debug. And I guess just in case anybody's still worried about this like running at my house, uh there's also public backups of the constellation database that are pushed every four hours to object storage.

Um you can get it yourself and restore a full copy of Constellation to run if you want. Um and it also means that if something catastrophic happens at my house, I can be back up in the cloud uh within some hours. But I don't have to pay for that in the meantime, other than the object storage. So we're gonna get out of microcosm specific in a second, but I did want to just kind of follow Constellation a little further than I did last year, which is that uh it's only storing the links. It's not storing any like record contents from Constellation.

So when you ask for all the replies to a post, you might get like this thread of many responses, but you have to go and fetch each of those individually to render a UI like this. Um in the protocol we have uh get record sync or repo versions. Um and if the PDS that has that record is offline, uh then you might be in luck if you put your request through Slingshot, which is a edge record cache. Uh it keeps a cache of the fire hose and then a cache of uh like requested identities and records from them so that um you have much faster responses for get record, and if it's in the cache, then you don't need to worry about availability.

Um but uh and you can also um proxy your request constellation through Slingshot and have it hydrate everything on this way out. Um so you can do one single request to get that thread UI uh fully hydrated on the way out. Rudy mentioned like record hydration is just that one above the water thing of building an app view, and I don't want to pretend that I'm saying anything otherwise, but I think this can get you pretty far. I'm gonna just uh show these two graphs from data that I pulled yesterday from another microcosm service called UFOs, which tracks some statistics about every lexicon that comes through the fire hose.

Um I think this one might surprise some people given how much hype there is around the Atmosphere. Um the top of that y-axis is 15,000 unique people. Uh we've never broken 15,000 unique people using non-blue sky apps within a week. Uh is small. Um it's early. Uh and like the trend from like after the conference last year for most of the year was not exciting. Um I don't actually I didn't have time to figure out what this one spike was earlier, but I do want to just like point to that last kind of two or three months at the end there that kind of corresponded to the rise that I have in stuff using microcosm.

Um the orange one with question marks is there because that's actually only one day of the weekly bucket, so this bucket is still rising up. And I and I think I think this kind of more recent thing. Yeah. Oh, nice. Nice. Awesome, awesome. Yeah. Uh these charts kind of show something interesting together, like these two, which are basically the same thing versus the one on the last slide, which is that even though uptake among users has been slow, um, uptake among developers has been steady. And I think that's why this like lag and now we're seeing the growth.

Like I I think it's early. I don't think these are actually pessimistic slides. Um but yeah, so more than 10 weekly active users using a given lexicon or data type bucketed. We've got like you know almost 80 of them now, lexicon groups that have more than 10 people using them at least one time in a week.

Okay, I'm doing okay on time, I think, so I'm gonna say this part. Uh I I said I would talk about economics. It's kinda boring, but end of 2025 I pulled some numbers and I was getting around uh 200 after fees from people sponsoring me on uh GitHub and Ko-Fi or Coffee or however you say it, um, which with some of the more expensive cloud servers for Slingshot and stuff netted me about $33 a month. I'm uh getting rich. Um I've gotten some grants that have helped. Uh shout out Haifa who gave me a really generous dumb donation recently.

Um and Upcloud sponsored a lot of the PLC stuff I was doing for hosting. Um I'm gonna be building Hubble soon, which has uh come with a grant from Bluesky and will come with operating expenses for the year I have to run it. Um I don't know how much that's gonna cost yet because I haven't built it. Uh but in 2024 running a kind the kind of close comparable existing thing wasn't wasn't cheap. Um since I mentioned relays. So we had that, you know, 153 dollars a month in 2024. Last year at the conference, uh there was somebody trying to run 2 million dollars to run a relay.

We can skip past that. Uh future ran it on a Raspberry Pi after that because non-archival relays, so not what I'm doing with Hubble, uh, are cheap. Um I got one up in the cloud for $30 a month. Uh the month after that, got it down to 18 on a different provider. Um Bri did it for $34 a month and wrote it up in a nice post. And last month I got one working on a under $5 a month VPS. So like the network is growing, but it's weird that like you can just run infra um pretty affordably.

Um these are some other ways I think I might be able to make money and some ideas, but this is actually what I want to get to, which is um like I don't know why do people do weird things in atproto? Um I didn't think my answers alone would be very interesting. So there's um I reached out to 10 people that are running relays or APIs or kind of other things on a very small scale. And I got 10 responses back. Shout out to all those people, some in this room. Thank you. And yeah, I realized that I had never asked any of them why they do it, and I didn't really know.

So I tried to consolidate some of those answers here. A lot of people do it for fun. To learn things, or they needed something for themselves and decide to open it up or to show what's possible. These were like recurring themes. I think some of the real like idealism came out in these. I think this is the best chance we've had in a long time to make this social internet more independent for the few mostly evil big tech companies. I asked people how they pay for it. Almost 100% out of pocket at this kind of like small scale, which I guess makes sense, but people do that by running things cheap.

Some people one person did it out of pocket because they can't accept money or grants due to work or other reasons. GitHub and Ko-Fi like support to like do this kind of stuff is a huge recurring theme across everybody that answered this. Small grants and in some cases people are able to run things that fit within free offerings from services.

So someone said they're blessed to have enough GitHub and Ko-Fi donations to cover costs. Yeah, small grant and then out of pocket and then supported. Again, if everybody if you want to read more of these, uh you can get the slides. I asked what people thought about sort of like small indie infrastructure in the long term, um, keeping it going, or like what they think about when they think about winding it down when maybe people start using it. Um it either has to become too expensive or I get bored of hosting my infra. Uh neither are true at the moment.

Uh or I think if things go well, people like you and Bailey and others will be able to make a living providing hosting. We can dream. Um yeah, unless things get massively expensive, then people kind of just want to keep it online. Um not everybody had like optimistic takes here. Um keep stuff running because I have to, and it has become somewhat load-bearing for the ecosystem was a response. Um also like expressed a lot of thought in how they were thinking about people how people might get off of their services if they had to wind it down.

So providing like an open source uh code so that people can run it themselves, and it's cheap because it has to be cheap because these are small scale operators, and trying to make those migration paths exist. Um I really don't see how developers ever break even or make money off projects like this, and the company is too inconsistent with who it chooses to fund or how often it funds them was a thought. I asked what people thought the future of social infrastructure will look like. Um and large scale community PSs, PDSs like BlackSky, North Sky, Euros Sky.

Um I would include Bridgie in here, but uh that came up a lot. I think people really do see that as the way it's gonna go. Um personally, I think we're also gonna see like a lot more uh of people like these dozen or so like independent um tiny small scale operators as well. Uh maybe it'll be more centralized, more mindless. Maybe I'll be wrong, yeah. Uh how could communities or companies better support came up a little bit. Um some of the coolest things to run that maybe is only at a prototype stage, needs a lot of resources and more than you might be able to do at like a very small scale indie infra operator.

And uh so that came up a few times. Like, is there a way we can kind of pool community resources to provide that sort of like available infrastructure to try some experiments that would be driven on that sort of like smaller individual basis? When I was getting through these, I also realized that um like I have a bunch of people supporting me on GitHub and Ko-Fi, and I've never really like directly asked any of them like why do you why do you support me? So I got eight people to reply to some questions that I sent to people who are supporting uh folks running small scale indie infra.

Uh these are in the reverse order, so what those people, so supporters of small scale indie infra think that the future of social infrastructure will look like more big companies involved in atproto. This is all like atproto. Um mix of software as a service and public service uh services. I I'm pretty hopeful about that one and optimistic. We have uh some examples that people pointed to, like Debian, Wiki Wikimedia, a couple others that I forgot to put on here. Um yeah people don't think there will be a future where social infra isn't free for the public to use.

I think that's uh not disproven so far by atproto. Um and yeah, shout out to quickslice, where you can run your own back end, self-host, pull in just what you need from the big network if that's what you're trying to do. Um laptops with batteries with swelling batteries yet handle 1,000 plus concurrent users just fine. I think this came from like the theme of uh we can just make things more cheap by putting effort into making them efficient uh as as we've seen by small scale operators in App Proto.

So from the funders perspective, supporting small scale people thinking about the future and winding it down. I really like this one. Not on my watch. As it expands, financial sustainability might become more challenging, but due to the immense benefits it provides, I'm optimistic that solutions can be found. I I kind of feel this way too. Um I think as the whole network grows, the like resources of everybody to support small scale things also grows. Probably there will be some business models or some donation-based nonprofits that can support what's needed in the long term. That yeah. And some people feel don't feel comfortable donating right now, but don't know how long that will be the case for themselves or others.

So again, mixed it's not all like pure optimism around this, but I think everybody's like kind of I would say guarded optimism or cautious for the most part. Open sourced. Um and I think like we talk about the permissionlessness of atproto a lot as well. And yeah, what ends up critical will be replaced if needed. Um because this is a really small scale operations and you can just replace it. I'm trying really hard not to say you can just do things. Um the biggest one was that they were in a position to be able to do it.

Um they want to see the Atmosphere succeed and they think that very small scale operators are a part of that. Um the option to self-host came up a lot. Um just the fact that you can do that for these different components, like PDS, of course, but not just the PDS. Um it it provides that kind of assurance that people want. Um this one was cool. Like I might not be using most of the services I sponsor for, but I know others are and may not be able to sponsor it themselves. Like I would say even more than the people running uh infrastructure, the responses from people funding it were like really this kind of uh beautiful um community-oriented uh sentiments around just like supporting the ecosystem.

Um this came up a lot. It's important to support maintainers of projects I build on, especially when those projects aren't backed by huge companies. Uh yeah, I would say more than that, more of that. Um I'm gonna close it on this quote which I liked. Uh more community-led than big business led. I think this is like a high bar to aim for, but um I I think we can try.

Do you want to use we can just try as an alternate? We have a couple minutes before launch. Does anyone have a question for fake?

What was the weirdest thing somebody did on that? Oh gosh. I think I know the answer, but I'm not sure. So the question was what's the weirdest thing somebody has done with Constellation.

But then Bailey presses another button and it shows all the people that Bailey's connected with and it queries that through Constellation. And like yeah, wild. So but I want to hear what you thought was the weirdest. I'm remembering when Aviva and I were doing deck voucher and figuring out. Okay, no, we can do scrifile URIs. Yeah, yeah, yeah, yeah. People often say, hey, you should also index URLs, not just at URIs. And Constellation has from day one. Indexes anything that looks like a DID or an at URI or any URI that parses like a URI. So if you want to see all the posts to your leaflet that are shared on Bluesky as like link embeds, you can do that.

And it also means you can hack the system by uh putting like your own URI scheme that you invent and just like create links that aren't real links, but constellation aggregates them for you, so then you can query it. You can do kind of like arbitrary uh group grouping and aggregation with constellation that way. Yeah, that's a good one. Any more questions? I'll just get to add one more thing on the end of that, which is sometimes um people use constellation in ways that aren't scalable. Uh like trying to use it as a leaderboard um by having every score link to a URL and then doing a lot of client side filtering.

And I think that's awesome. It won't scale forever, but if you're ever wondering, like, is it okay if I can use constellation for this? Um it's indexing everything that happens on Bluesky, so it can handle it. Like whatever you're thinking about throwing at it, uh yeah, just go for it. Amazing. Thank you so much.