shoutout to @thepope.dev for this update — we've been wanting to simplify this for a long time
custom feeds are part of what make Bluesky unique. lots more we can improve here, and we will!
shoutout to @thepope.dev for this update — we've been wanting to simplify this for a long time
custom feeds are part of what make Bluesky unique. lots more we can improve here, and we will!
making progress on pds.js tangled.org/chadtmiller...., there's something to be said about starting with the simplest possible implementation and working your way up from there. the core logic, at least, is zero dep, with a hexagonal architecture that allows different functionality via ports/adapters
we infrequent posters need to stay strong
welcome @doctorow.pluralistic.net!
on your own PDS host (bsky.pluralistic.net), using did:web (did:web:pluralistic.net), and self-controlled domain handle.
looks like things are working/interoperating; let us (the atmosphere ecosystem) know if you run in to any issues
made a quick pit stop in Dependency Hell today, was not a fan
tapping the sign
Hey devs! Heads up, we're planning on making some changes to our image CDN tomorrow.
- Images will be served as WebP by default
- The URL format you get from the Bluesky API will change a little
You can look forward to an announcement about image quality soon 👀
this is huge! it's a big lift just to do the backfill indexing, but even more to get it operational and chase down all the little product affordances.
blacksky ships.
Personal news update: I'm delighted to announce that as of today, I am an actual Bluesky employee! I'll be working to welcome indie media and local govt to Bsky—and supporting those already here.
I'll always want to hear your thoughts on how we can make Bsky the sort of social media we all want!
today, we're announcing our €3,8M ($4.5M) seed financing round, led by byFounders with participation from Bain Capital Crypto, Antler, Thomas Dohmke (former CEO of GitHub), Avery Pennarun (CEO of Tailscale) among other incredible angels.
read more on what's next: blog.tangled.org/seed
Screenshot from the linked page showing SDKs written in Python, Rust, Dart, and Swift
Screenshot from the linked page showing SDKs written in C# (.NET), Ruby, Zig, Elixir, and PHP
Look at all these community SDKs! (Nice work @alex.bsky.team compiling these)
atproto.com/sdks
new blog post on permissioned data in atproto! this one introduces "buckets", the protocol-level primitive for shared access control. I walk through two approaches that don't quite work and land on something that I think does
let me know your thoughts!
I worked really hard for this meme
// ============================================================================ // inlay render — specification tests // ============================================================================ // // inlay is a UI component system on the AT Protocol. // // Elements reference components by NSID — <com.example.PostCard uri="..."> // is an element whose type is the NSID com.example.PostCard. An NSID is // just a name; it says nothing about where the implementation lives. // // A pack (at.inlay.pack) maps NSIDs to concrete implementations. Each // entry points an NSID at a component record URI (at://did/at.inlay.component/rkey), // so the same NSID can resolve to different implementations depending on context. // // A component record (at.inlay.component) defines what happens when the // element is rendered. It has one of three body kinds: // // - no body → a primitive; the host knows how to render this // - bodyTemplate → a stored element tree with Binding placeholders // - bodyExternal → an XRPC endpoint that returns an element tree // // Resolution algorithm: // // 1. Start with an element like <com.example.PostCard uri="at://...">. // 2. Scan imported packs for a component that implements com.example.PostCard. // 3. Resolve the component record and switch based on body kind: // a. no body → done, it's a primitive. // b. bodyTemplate → substitute Binding placeholders with the // element's props (and optionally a fetched record when the // component declares that it's a "view" for some records). // c. bodyExternal → call the XRPC service, passing props. // Children can be passed too, but they're opaque to the callee. // 4. Recurse into the expanded tree until everything resolves to // primitives. This can be done to completion or (better) streamingly.
first pieces of @inlay.at are now open source at tangled.org/danabra.mov/...
🔮 Inlay "browser" prototype (hono+htmx): inlay-proto.up.railway.app
📝 Inlay ProfilePage component from the above demo: pdsls.dev/at://did:plc...
📜 Tests describing the Inlay rendering model: tangled.org/danabra.mov/...
Attention Gophers! There is now a feedgen starter repo in Go! Very minimal and tiny
Go build something cool!
github.com/bluesky-soci...
Built on top of @vite.dev 8 and @rolldown.rs.
RSC support via Vite's RSC plugin.
Linting via Oxlint.
Thanks man!
it’s been 20 years since we last skied together
Person on skis on a ski slope, framed by pine trees, mountains in background. Snowy weather leaves a haze in the sky. Persons arms are outstretched like Rocky
saw a photo opp and took it — pic of my brother
correct
Yeah I was def real tense for the first run or so until I got my sea legs back. It’s been almost 10 years for me
I need to get away from my desk more often, my knees need some work lol
see how @iwsmith.bsky.social's improving the Discover feed
Pic of me on top of a mountain, about to (poorly) ski down
semi-off grid for a few days ✌️
let’s make a profile page
seriously can't wait to meet everyone IRL, this'll be one for the books
We've released a self-hostable reference implementation of a PLC read-replica service to make the Atmosphere ever more decentralized. @retr0.id has details on what this all means.
atproto.com/blog/plc-rep...
AT Protocol is complicated beast. There are a lot of complicated moving parts that depend on each other in direct and indirect ways. Huge props to everyone who contributed to atproto.com. This is good.
New website! Shout out to the @internetstudio.bsky.social for the solid design and coding work
Hannah (design) Elijah (globe code) and all the others