ATProto London

Mihailiк ᵖᵒ⁶ᵒᵐᵃ:

I made. a musical visualiser of the bsky feed https://fi.reho.se based on bsky.network - I smoothed the frquency transitions, made the Falling Down in CSS

I had to work to make the emoji's green rather than coloured

I made a space filling animationhttp://oyin.bo/maviy-graph to show the firehose

Dan Abramov:

I have a canvas which has an inlaid window on the page showing my profile

you can see my friend circles and my recent plays - you can explore otehr people's profiles too - I have a schema in the lexicon to represent this layout. - it's kinda hypercardy

each of the separate pieces in my view can be pulled out and rendered individually - underneath it has Stack, Link, Post elements that use at URLs to render atproto data

because the Skircle component is flexible I can drag a person url into it and it shows them, making it browsable; and profile renderes can be written by other people too

so I can switch between a bluesky-ish profile to an instagram-ish profile

I am using atproto to map the content types to the package that renders that content, with multiple possible viewers for a given type

Post, PostFeed aren't endpoints; they're lexicons so they are the source to render which is seperate from the packages, so we can compose UI components from differen sources easily

Alex:

this shows what is great about the lexicon as it is structure and data and permisssions all bundled up

Dan Abramov:

This thing is called Inlay and will be at that when I make it more public

Alex Garnett:

I'm Alex, I'm devrel at bluesky - I'm newer than a lot of you, and I want to give an overview

we have a new docs site that I am building out for bsky and cove the atmosphere as well as the bsky docs with nice structures

Bluesky is big world social, and has a modle of the social network that people recognise - atproto is the most important thign we make rather than bsky

bsky is one appview, one set of lexicons and one collection of PDS's but there is more to ti thna thet

we are trying to make it easier to undestand AT reads and writes, and which are bsky specific and which re generic

PDS's are how we store user date in atproto - you have. PDS inside SQLite. You can migrate your data to your own PDS, or to a different PDs host- which is smaller than ActivityPub

the thing people's want to self-host is the PDS - we have arepository of multiple ways to deploy the PDS or even relay we'll link to it too

we don't have a web admin interface for PDS hosters yet - we have a new commandline tool called goat go AT goat CLI tool [goatse li tool oh boy]

Firehose is how you get data from the network - I worked for a twitter firehose API company in 2012 I had to write Hadoop queries to get data out. We just have a website you cna get the data from

you might get rate liimited if you hit us really hard; it' a relay flow. You can host your own relay, and some people do, but they have the same API.

you may not want to hit the full firehose - we also have jetstream if you want. a simpler view

websocat will pull the firehose to the commandline

Backfilling means syncing the history of the firehose, or part of it. It's not fun to write this code, but we have done it. All of Bsky lexicons is 25 TB, so have some storage ready

if you just want some users or to filter the data on the way in you can have less storage.

we have a new tool called tap that will backfill some data and then cutover to the firehose and give you each entry you want exactly once

Custom feeds are a list of bsky posts that match some criteria or algorithm. tap makes doing this a lot easier as you can just get the bits of the feed you want to filter

I rewrote the basic feed generator with tap and it went down to 200 lines of code from a huge repo managing fetching

graze.social is a site that enables the building of custom feeds

the atmosphere conference is going to be in vancouver in march and will have a media day before the web one.

what if you want to use this billion-edge social network without doign your own backfill? this is where microcosm comes in - they have an index of record backlinks that you can explore to see things

PDSls https://pdsls.dev visualises everything in your PDS - any atmosphere app that has written any kind of record

Lexicon is schema system that provide interoperability by definiing data models, endpoints and permission sets all in one

The data you are posting is exactly the same format in your PDS, as Dan said earlier

if you npm-install -g @atproto/lex you can lex install app.bsky.feed.post etc and get the lexicons you need in typescript. Go isn't there yet, but we're working on it

goat has more tools for publishing new lexicons

we now have a Lexicon Style Guide to help you write lexicons

we'r hoping to improve the Claude experience with this new docs site

lexicon garden is a 3rd party browser for lexicons

leaflet is a blogging platform built on atproto that's worth a look

anisota.net is a gamified bsky client that reads the bsky lexicon and adds it's own metadata to track the interactions

Social Graphs - we only maintin Go and typescript, but ther ea re go, python and rust ones too

you can easliy get the social graph with the getfollows call to get the users' social grpah

i just wanted to include https://bridgy.fed which connects bluesky and mastodon and indieweb

bridgy is a way for apps to work on both atproto and mastodon at once and we sites doing that

the non-bsky PDS postng is a bit more than 1% - mostly via bridgy

why build on ATProto? no need to architect data models, SDK codegen for all lexicons; existing social graph

q:

is there a way to gradually move away from X etc into bsky ?

Alex:

there are some 3rd party chrome extensions that will let you find followers etc - Twitter is making this harder by making the API more expensive

q:

if you're designing a new app shoudl you make it more app shaped or more interoperable?

Alex:

always remeber that you cna pick and mix - you shouldn't reinvent followers for example, but you cna mke your own lexicons - you don't need to force interop with another

q:

thank you for doing tap which was somethign that was very painful for us

how much interop depends on IETF?

Alex:

the ietf is now adopting at (as in at: urls) as a standard that can transcend us

join the at mailing list at IETF to take part

active users is ~3M posting weekly of ~40M users

q:

how do publish a lexicon, and can I update or change one?

lexicon garden is the best place to look until our docs ship https://lexicon.garden/

Dan Abramov:

if you have to ship a breaking change make a new lexicon

Alex:

one thing I wish we talked about more is how we do our own infra. It's been a lot more economical for us to use our own racks rather than running on other people's clouds

q:

could bsky help with mirroring slef-hosted PDS's ?

Alex:

that's a way to make an open source company fall over and die with support requests

there are going to be other PDS offerings, and we expect people to build that out. One example would be a PDS for atmosphere app allowing their users to have a clearer login

Dan Abramov:

the bsky PDS implementation means each user has a separate SQLite instance so it scales horizontally very easily

q:

everything scales well apart from the firehose

Alex:

if you're relying on the jetsteam firehose now it will saturate a cheap VPS now, so that will get worse. But the For You feed is run by one guy on his gaming desktop

Kevin Marks:

Should we be encouraging civil society orgs to host parallel relay eg Wikimedia, Archive.org, British Library, the BBC?

Alex:

yes, that would be great

Unknown
My liveskeeted notes from #ATProto London are up at kevinmarks.com/atprotolondon