fig 0:00 There's some obvious things that I wanted to say and like for the purpose of this talk, I ended up just settling on things that's kind of weird that you can just do. 0:10 Um, App Proto has a lot of this. 0:14 Um, but I'm just going to be talking about it in the context of small-scale infra. 0:19 Um, you can relay the whole firehose yourself just as like a random person and that's like kind of weird. 0:28 I think Twitter had open access to a firehose early on, and that was like really wild. 0:34 @proto lets you run the firehose yourself in a much, much more powerful way. 0:40 And on a full network scale, like Blue Sky, a major social media company, could use my relay for the day if they wanted. 0:48 And there's a lot of reason they wouldn't. 0:50 But those reasons are not that it wouldn't work. 0:53 It would actually, like, everything, you wouldn't notice a difference. 0:56 Um, you can also just index everything. 1:01 So that's Constellation. 1:03 Um, every single social interaction is a backlink, uh, in App Proto and all of those go into my house, into my living room and this googly-eyed Raspberry Pi takes note of them. 1:18 Uh, I'm going to talk a little bit about Constellation. 1:21 Um, It's really simple, so I made this diagram that makes it look really complicated. 1:28 The firehose comes in with all the posts and blocks and likes and everything that's happening on the network called records. 1:34 Constellation opens each of those up and searches through for anything that looks like a link. 1:39 And it doesn't matter what type it is. 1:43 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. 1:49 So you can say, what are all the replies to this post? 1:53 And Constellation can tell you because it's indexed a bucket of replies to every single post that's ever happened that you can just ask about. 2:03 Um, so Rudy mentioned the follower counts that are really important to everybody. 2:09 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. 2:16 So, uh, That's something that you can get from Bluesky. 2:22 Their 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. 2:33 Um, you just give it the identity and you say get profile and you get an answer back. 2:41 So the same thing with Constellation. 2:44 You have to give it sort of one more thing, which is like, where are the links coming from? 2:49 So in this case, we're asking about follows. 2:53 And within a follow record, the link to define a follow is the subject of the follow. 2:59 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, works for every App Proto app. 3:10 Um, people use it, uh, and people use it a lot more recently as well, which I'll come back to in a second. 3:20 Um, this is all pretty low cost to run, um, and 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 mushroom spores has, or whatever it is, has like gotten to you, it will reach out to my living room Cassiopeia up there and it will tell them. 3:50 There's a problem with this, which is 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 a lot of apps have issues. 4:09 So I had a support to buy this little micro PC that runs a hot failover also at my house. 4:19 Um, and, uh, if, if the Raspberry Pi has any issues, then we just failover to the secondary instance. 4:27 So we have like a little bit of redundancy failover happening here. 4:30 I also don't actually really want to put my even dynamic IP directly on the internet. 4:36 Um, so I have this little $5 a month, uh, cloud server VPS that, uh, acts as a reverse proxy. 4:45 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 Tailscale to get to my house and I don't have to worry about dynamic IPs. 4:56 So we're at $5 a month. 4:58 To do this. 4:59 Um, but we also have a new single point of failure, which is that $5 a month VPS that needs to be updated and restarted and stuff from time to time. 5:07 So we do the same thing. 5:09 Uh, I put one on DigitalOcean and one on Vultr so Constellation can survive an entire like platform-wide outage on DigitalOcean if it goes down, as long as Vultr and DigitalOcean don't go down at the same time. 5:24 Um, how do you load balance in front of that? 5:29 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 2 instances works really well. 5:42 Um, DNS is pretty reliable, but I guess I would get taken down by a DNS outage, uh, and things just kind of like automatically failover between them. 5:52 So this is up to $10 a month now for Constellation. 5:59 Running at home, uh, still has challenges. 6:03 Uh, last summer the fiber connection to my house was cut at the distribution box, uh, accidentally, presumably. 6:13 Um, and, uh, so I was able at the time to like tether over cellular for a couple days until a tech could come out to fix it. 6:22 Um, I don't think at the current scale of use that would actually work. 6:26 Um, but I'm looking at maybe getting a cable secondary internet connection. 6:31 Um, I had a power outage in January that my, that was longer than my, uh, battery backup UPS runtime. 6:39 So we had a 1-hour downtime of Constellation for that. 6:44 But it's very cheap to do all this and it's very low-tech. 6:48 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. 6:59 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 4 hours to object storage. 7:10 Um, you can get it yourself and restore a full copy of Constellation to run if you want. 7:16 Um, and it also means that If something catastrophic happens at my house, I can be back up in the cloud within some hours. 7:25 But I don't have to pay for that in the meantime other than the object storage, so. 7:34 We're going to 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. 7:46 It's not storing any like record contents from Constellation. 7:49 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. 8:00 Um, and in the protocol we have, uh, get record sync or repo versions. 8:07 Um, and if the PDS that has that record is offline, [LAUGHTER] Then you might be in luck if you put your request through Slingshot, which is an edge record cache. 8:18 Uh, it keeps a cache of the firehose 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. 8:32 Um, but, uh, And you can also proxy your request to Constellation through Slingshot and have it hydrate everything on this way out. 8:43 So you can do one single request to get that thread UI fully hydrated on the way out. 8:50 Rudy mentioned like record hydration is just that one above the water thing of building an app view. 8:54 And I don't want to pretend that I'm saying anything otherwise. 8:58 But I think this can get you pretty far. 9:05 I'm gonna just 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 firehose. 9:21 Um, I think this one might surprise some people given how much hype there there is around the atmosphere. 9:29 The top of that y-axis is 15,000 unique people. 9:33 We've never broken 15,000 unique people using non-BlueSky apps within a week. 9:40 It's small. 9:43 It's early. 9:44 And like the trend from like after the conference last year for most of the year was not exciting. 9:54 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 2 or 3 months at the end there that kind of corresponded to the rise that I have in stuff using Microcosm. 10:08 Um, the orange one with question marks is there because that's actually only one day of the weekly bucket. 10:14 So this bucket is still rising up and I, and I think, I think this kind of more recent thing. 10:19 Yeah. 10:20 Oh, nice. 10:21 Nice. 10:23 Awesome, awesome. 10:25 Yeah. 10:28 These charts kind of show something interesting together. 10:32 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, uptake among developers has been steady. 10:45 And I think that's why this like lag and now we're seeing the growth. 10:49 Like I think it's early. 10:51 I don't think these are actually pessimistic slides. 10:55 But yeah, so more than 10 weekly active users using a given lexicon or data type bucketed. 11:01 We've got like, you know, almost 80 of them now. 11:04 Lexicon groups that have more than 10 people using them at least one time in a week. 11:12 Okay, I'm doing okay on time, I think, so I'm going to say this part. 11:19 I said I would talk about economics. 11:21 It's kind of boring, but end of 2025, I pulled some numbers and I was getting around $200 after fees from people sponsoring me on GitHub and Ko-fi, or coffee, or however you say it, which with some of the more expensive cloud servers for Slingshot and stuff netted me about $33 a month. 11:42 I'm getting rich. 11:46 Um, I've gotten some grants that have helped. 11:51 Shout out Haifa, who gave me a really generous donation recently. 11:57 Um, and UpCloud sponsored a lot of the PLC stuff I was doing for hosting. 12:03 I'm going to be building Hubble soon, which has come with a grant from Blue Sky and will come with operating expenses for the year I have to run it. 12:14 I don't know how much it's going to cost yet because I haven't built it. 12:18 But in 2024, running the kind of close comparable existing thing wasn't cheap. 12:27 Since I mentioned relays, So we had that, you know, $153 a month in 2024. 12:34 Last year at the conference, uh, there was somebody trying to run $2 million to run a relay. 12:39 We can skip past that. 12:41 Uh, Future ran it on a Raspberry Pi after that because, um, non-archival relays, so not what I'm doing with Hubble, uh, are cheap. 12:49 Um, I got one up in the cloud for $30 a month, uh, the month after that. 12:55 Got it down to $18 on a different provider. 12:58 Brian did it for $34 a month and wrote it up in a nice post. 13:02 And last month I got one working on an under $5 a month VPS. 13:13 So like the network is growing, but it's weird that like you can just run infra, um, pretty affordably. 13:25 These are some other ways I think I might be able to make money and some ideas. 13:28 But this is actually what I want to get to, which is like, I don't know, why do people do weird things in App Proto? 13:38 And I didn't think my answers alone would be very interesting. 13:42 So there's— I reached out to 10 people that are running relays or APIs or kind of other things on a very small scale. 13:53 And I got 10 responses back. 13:55 Shout out to all those people, some in this room. 13:58 Thank you. 14:00 And yeah, I realized that I had never asked any of them why they do it and I didn't really know. 14:05 So I tried to consolidate some of those answers here. 14:12 A lot of people do it for fun, to learn things, or they needed something for themselves and decided to open it up. 14:21 Or to show what's possible. 14:22 These were recurring themes. 14:32 I think some of the real idealism came out in these. 14:36 I think this is the best chance we've had in a long time to make this social internet more independent from the few mostly evil big tech companies. 14:47 I asked people how they paid for it. 14:49 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. 15:00 Some people, one person did it out of pocket because they can't accept money or grants due to work or other reasons. 15:10 GitHub and Ko-Fi, like, support to do this kind of stuff is a huge recurring theme across everybody that answered this. 15:19 Small grants and in some cases people are able to run things that fit within free offerings from services. 15:36 So someone said they're blessed to have enough GitHub and Kofi donations to cover costs. 15:43 Yeah, small grant and then out of pocket and then supported. 15:49 Again, if everybody— if you want to read more of these, you can get the slides. 15:53 I asked what people thought about sort of like small indie infrastructure in the long term, keeping it going or like what they think about when they think about winding it down when maybe people start using it. 16:07 Um, so it either has to become too expensive or I get bored of hosting my infra. 16:12 Neither are true at the moment. 16:14 Uh, or I think if things go well, people like you and Bailey and others will be able to make a living providing hosting. 16:21 We can dream. 16:22 Um, yeah, unless things get massively expensive, then people kind of just want to keep it online. 16:29 Um, not everybody had like optimistic takes here. 16:35 Keep stuff running because I have to and it has become somewhat load-bearing for the ecosystem was a response. 16:43 But people 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. 16:51 So providing like an open source code so that people can run it themselves and it's cheap because it has to be cheap because these are small-scale operators. 16:59 And trying to make those migration paths exist. 17:06 Yeah, 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. 17:21 Asked what people thought the future of social infrastructure will look like. 17:27 Medium and large scale community PDSs like Black Sky, North Sky, Euro Sky. 17:33 I would include Bridgy in here, but that came up a lot. 17:37 I think people really do see that as the way it's gonna go. 17:41 Personally, I think we're also gonna see like a lot more of people like these dozen or so like independent tiny small scale operators as well. 17:53 Maybe it'll be more centralized, more mindless. 17:56 Maybe I'll be wrong. 17:58 Yeah. 18:01 How could communities or companies better support came up a little bit. 18:06 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. 18:17 And so that came up a few times. 18:19 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. 18:34 When I was getting through these, I also realized that 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 support me? 18:47 So I got 8 people to reply to some questions that I sent to people who are supporting folks running small-scale indie infra. 19:01 These are in the reverse order. 19:02 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 App Proto. 19:12 This is all like App Proto. 19:14 Mix of software as a service and public services. 19:17 I'm pretty hopeful about that one and optimistic. 19:21 We have some examples that people pointed to like Debian, Wikimedia, a couple others that I forgot to put on here. 19:31 And yeah, people don't think there will be a future where social infra isn't free for the public to use. 19:37 I think that's, not disproven so far by App Proto. 19:43 And yeah, shout out to Quick Slice where you can run your own backend, self-host, pull in just what you need from the big network if that's what you're trying to do. 19:57 Laptops with batteries, with swelling batteries, yet handle 1,000+ concurrent users just fine. 20:03 I think this came from like the theme of We can just make things more cheap by putting effort into making them efficient, as we've seen by small-scale operators in that proto. 20:23 So from the funders' perspective, supporting small-scale people, thinking about the future and winding it down. 20:29 I really like this one. 20:30 Not on my watch. 20:34 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. 20:41 I kind of feel this way too. 20:43 I think as the whole network grows, the resources of everybody to support small-scale things also grows. 20:53 Probably there will be some business models or some donation-based nonprofits that can support what's needed in the long term. 21:00 That, yeah. 21:02 And some people feel comfortable donating right now, but don't know how long that will be the case for themselves or others. 21:09 So again, mixed. 21:11 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. 21:20 Open sourced. 21:22 And I think like we talk about the permissionlessness of App Proto a lot as well. 21:27 And yeah, what ends up critical will be replaced if needed. 21:32 Because this is really small-scale operations and you can just replace it. 21:39 I'm trying really hard not to say you can just do things. 21:50 Why do people support public infra? 21:52 Uh, the biggest one was that they were in a position to be able to do it. 21:57 Um, they want to see the atmosphere succeed and they think that very small-scale operators are a part of that. 22:03 Um, the option to self-host came up a lot. 22:06 Um, just the fact that you can do that for these different components, like PDS of course, but not just the PDS. 22:12 Um, it, it provides that kind of assurance that people want. 22:20 This one was cool. 22:21 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. 22:27 Like, I would say even more than the people running infrastructure, the responses from people funding it were like really this kind of beautiful community-oriented sentiments around just like supporting the ecosystem. 22:48 This came up a lot. 22:49 It's important to support maintainers of projects I build on, especially when those projects aren't backed by huge companies. 22:57 Yeah, I would say more than that, more of that. 23:00 And I'm going to close it on this quote, which I liked. 23:08 More community-led than big business-led. 23:10 I think this is like a high bar to aim for, but I think we can try. 23:32 Do you want to use "we can just try" as an alternate? 23:36 We have a couple minutes before lunch. 23:39 Does anyone have a question? 23:41 For Fig. 23:51 Oh gosh. 23:56 So the question was, what's the weirdest thing somebody has done with Constellation? 24:01 I should have prepared something for this because people have done some really weird things with Constellation. 24:07 I really love the kind of experiments people do, like Spores Garden was neat. 24:12 I think one of the just surprising ones that other people think of was Bailey's hooked up his badge with the E Ink screen on it to both show the QR code for meet me, you and me at, but then Bailey presses another button and it shows all the people that Bailey's connected with. 24:34 And it queries that through Constellation and like, yeah, wild. 24:38 So, but I want to hear what you thought was the weirdest. 24:41 I'm remembering when Aviva and I were doing Duck Vulture and figuring out, okay, no, we can do Scrifle URIs. 24:50 Yeah, yeah, yeah, yeah. 24:52 People, people often say, hey, you should also index URLs, not just at URIs and Constellation has from day one, it indexes anything that looks like a, a DID or an @URI or any URI that parses like a URI. 25:08 So, um, if you want to see all the posts to your leaflet that are shared on Bluesky as like link embeds, you can do that. 25:15 And it also means you can hack the system by, uh, putting like your own URI scheme, um, 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. 25:27 You can do kind of like arbitrary grouping and aggregation with Constellation that way. 25:32 Yeah, that's a good one. 25:37 Any more questions? 25:41 I'm just going to add one more thing on the end of that, which is sometimes people use Constellation in ways that aren't scalable. 25:52 Trying to use it as a leaderboard by having every score link to a URL and then doing a lot of client-side filtering. 26:02 And I think that's awesome. 26:03 It won't scale forever. 26:05 But if you're ever wondering, like, is it okay if I can use Constellation for this? 26:09 It's indexing everything that happens on Bluesky so it can handle it. 26:14 Like whatever you're thinking about throwing at it. 26:16 Yeah, just go for it. 26:18 Amazing. 26:19 Thank you so much.