Nicholas Perez 0:01 Hi. 0:02 Pleasure to be here. 0:05 So yeah, like President— so yeah, this talk is going to be about the design philosophy behind BookHive. 0:13 So it's not actually like design in terms of like UI design, although I did do a redesign last week, released it, all that. 0:21 But so you can enjoy the website now, but this is going to be more about the philosophical aspects of this. 0:30 So I think that what we have here with AT protocol is really a trend reversal. 0:38 Sorry. 0:40 We have a trend reversal in terms of the web started as being open, and then we slowly saw this being clawed back by these systems, these large social networks. 0:54 You know, there was things like Twitter used to have an open API, Reddit used to have an open API. 1:01 They slowly crawled that back from us. 1:04 And I think that what we have with AT protocol is we're right now running into user agency at an all-time low. 1:15 So what this means is that like, We're constantly being forced to do these Windows updates. 1:23 We've all been sunsetted by some sort of application and just essentially screwed over. 1:30 And we have no other recourse. 1:32 These APIs are closing down and we increasingly with AI now, data is seen as a moat. 1:39 So there's only more incentive and pressure to close down these APIs. 1:44 Whereas HTTP protocol, as we all know, is, is meant to be open. 1:51 So when the web first came out, there was this idea of a user agent that I think that we just kind of forgot about. 1:59 Like, it used to be that the idea of a user agent was meant to be that when you're looking at a document or something, you might have some preferences. 2:11 We're all different people, we all have different preferences. 2:14 Why are we all looking at the exact same interface? 2:17 It doesn't make sense. 2:20 You know, something as simple as the font size or your font family. 2:26 So the idea of this user agent largely just didn't pan out. 2:34 But we're all trying to do something better. 2:36 And I think that's what AT protocol is all about. 2:41 So my little slice of this is working on something called BookHive. 2:45 It's an alternative to Goodreads. 2:48 So you can track your books, organize shelves, and all of that data is stored in the user's PDS. 2:58 So when I was designing what to store in for Bookhive when you could imagine this sort of system, all that it really needs is some identifier for a book, whether the person has actually read the book or not, when did they do it. 3:15 That's all that you really need to store to the user system. 3:18 So you could literally just store this and that would be enough to render the Bookhive UI. 3:23 But what does this give the user? 3:27 It's just some random identifier. 3:29 It's absolutely useless to them. 3:31 They can't do anything with this data. 3:34 So this is what I actually store. 3:36 I give the people their book. 3:39 They, they want to know the book's title, the author, the actual cover art. 3:44 I actually upload it to your PDFs as a blob. 3:47 And all these other data. 3:49 There's also, particularly with books, there's no real standard identifier for a book. 3:57 Open problem. 3:58 Everybody— every dataset has this different identifier for a book. 4:03 So I give you everything that I know about the book. 4:06 Anything that I have, I try to give it to the user. 4:09 It's all about giving the user what's maximally useful to them. 4:15 So we have an opportunity to build social software where data actually belongs to people. 4:22 Let's not waste it by giving people just these random identifiers that they can't do anything with. 4:31 The PDS is not just a database. 4:34 So you normally think of a database as trying to store like the minimal representation. 4:40 It's not about efficiency. 4:43 It's about agency. 4:48 So there's a little bit of a thought experiment that you can take with this sort of thing. 4:53 If Bookhive went down, which it does all the time— it runs in my living room— is the data in your PDS actually useful to you? 5:05 And I'll get back to that as well, because I forgot to reorder these slides. 5:10 So one way that I handle this is with a central data store. 5:16 So what this means— that's on protocol. 5:19 So normally centralization is a bad thing, but in this case what I'm doing is I did, as I said before, and I give each user their data in their PDS. 5:30 But I also have this one little URI that it uploads— it makes a link to the Bookhive Buzz account as like a service account. 5:41 And this makes a central point of knowing all of the data. 5:49 Not everything that you need to store into the user's PDS. 5:54 They might not care about a book description or I can't make an update to a book if there's ever some sort of amendment. 6:02 But we can— everybody can reference this and we can all talk about the same book. 6:07 Using these URIs. 6:09 And there's an interesting opportunity here for, for doing things like backlinks. 6:13 Honestly, I haven't really explored this that much. 6:16 It's only been out for a week now. 6:21 So here's some proof that this user agency and that the data is actually useful. 6:29 PopFeed. 6:30 PopFeed actually is able to interoperate with Bookhive. 6:34 They're able to display all of the book data because they have all of the book data. 6:41 Another example is Book Explorer, which was made by Tice. 6:45 Tice actually, he wanted to be able to manage his books in a different application. 6:53 So he made this table view, and you can completely use a different frontend. 7:00 It doesn't have to be BookHive. 7:02 This is real interop. 7:07 The only reason that all of this works is about— is because BookHive stores the maximally useful data in service of the user. 7:19 So there's some takeaways here for builders since everybody here is related on the building side. 7:27 Store what's useful to the user, not just what's useful to you. 7:32 You may only need those identifiers, but give the people their data. 7:37 It's theirs. 7:40 Wherever possible, try to use standard identifiers. 7:45 And I'm actually out of data— out of time. 7:52 All right. 7:53 Empower users. 7:54 Be their agents. 7:56 Open data. 7:57 Open source. 8:00 Thank you very much. Speaker B 8:05 Thank you so much, Nick. 8:06 Unfortunately, we do not have time for another— for any questions, but— oh, sorry. Nicholas Perez 8:12 Yes. Speaker B 8:12 Actually, we have time for one question. 8:14 You're right. 8:14 Yes. 8:15 In total, there's 10 minutes. 8:17 Does anybody have— A question. 8:20 Yes, let me bring this to you. Speaker C 8:25 I don't know if it's much of a question, but my comment, and I said this to you before, I like that this is a good low-hanging fruit for people to migrate from Goodreads away. 8:35 That's what I tell my friends. 8:37 It's like, this is one of these apps that you can already use, whereas with social media, it's a little more difficult. 8:42 People like, oh, private groups and stuff. 8:44 It's like, well, that's not working with App Proto, but for Goodreads, I think as an alternative, it's really great. 8:51 With the data structures that you have, like as the whole on your PDS, like I guess we could just clone it down, right? 8:59 Do you offer like the database itself too for download? 9:06 Amazing. 9:07 Thank you. 9:12 Great. Speaker B 9:12 Thank you so much, Nick.