dan
banner
danabra.mov
dan
@danabra.mov
it’s traveled very far,
Pinned
dan @danabra.mov · Sep 26
i wrote about atproto and why it matters
Open Social — overreacted
The protocol is the API.
overreacted.io
that is supposed to work i think
November 25, 2025 at 10:34 AM
Reposted by dan
Stoked for this preview/beta release of a new typescript SDK. It's baked entirely around bringing your own lexicons, and includes a CLI for fetching them from the network and generating code. The DX is also so much better, and it includes tools like tree-shaking.
November 24, 2025 at 11:39 PM
right, i guess i'm asking — how *would* you protect against them? it seems important that if composing actions like this is a recommendation, there's a clear way to avoid races
November 25, 2025 at 7:37 AM
anyway congrats to @matthieu.bsky.team for finally solving the “you wanted a banana” problem
November 25, 2025 at 12:32 AM
a good way to test the waters might be to actually get the bsky app migrated. i bet if you introduce new style client alongside old style and start at the leaves, it might be possible to make the migration incremental? claude should be good at writing this kind of code and iterating
November 25, 2025 at 12:25 AM
in the updatePreferences example, how are race conditions handled (if at all)? the app used to be buggy around this pattern due to races so i worry a bit about composite actions similarly being unsafe
November 25, 2025 at 12:22 AM
this looks fantastic. now need to put this in all examples and guides etc.

this is how AT should’ve looked in TypeScript from the beginning. completely changes what it feels like to interact with the API (in addition to many practical improvements)
Hey y'all, we just released a new SDK for working with Lexicons in TypeScript! 🥳

It focuses on improving DX and some of the pain points of the current tooling (see my previous post below).

It's currently in beta and we'd love to get your feedback 🙇‍♂️

www.npmjs.com/package/@atp...
November 25, 2025 at 12:13 AM
maybe i’m focusing on a wrong thing but even then imo there’s a huge difference to the mood of the site between “a dedicated spammer can make money by running an external site” vs “every post is automatically monetized for anyone who connects a payment method”
November 25, 2025 at 12:07 AM
ah yeah that’s for sure relevant!

but i think there’s something subtler there too. maybe it’s not real but i felt a slight vibe change when that was introduced. like even people who trolled for fun started doing it for more than the love of the game.
November 24, 2025 at 11:50 PM
i want to know too! i think youtube has a bunch of ragebait but also plenty of good stuff? not sure how this works
November 24, 2025 at 11:43 PM
the incentive was always there but imo the ad revenue sharing thing was the single worst change to the site with cascading downstream effects
It produces a performative ecosystem. Actors aren’t communicating; they’re staging provocations for yield. The result is disordered discourse: signals detached from truth, identity shaped by escalation, and a feedback loop where the performance eclipses reality itself.
November 24, 2025 at 6:40 PM
delightfully ironic that one of the first phrases i managed to read entirely in japanese was the “japanese first” slogan on a sanseitō poster
November 24, 2025 at 3:50 PM
use null for intentionally missing, undefined for unintentionally missing is how i think about it and explain it
November 24, 2025 at 5:20 AM
VBA!
November 23, 2025 at 6:35 PM
i guess one of the takeaways is maybe those readmes need to change? kind of misleading if hardcoding bsky.social is promoted
November 23, 2025 at 6:30 PM
Reposted by dan
Kicking off a new series today! I will be going Beyond the Statushphere demo with tips and common gotchas when developing applications on ATProto.

First up is why and how you can get a user's PDS's URL to use in your applications you build.
Beyond the Statusphere: Part 1, Resolving the User's PDS
Learn why it's important to resolve the user's PDS and use that in your ATProto applications.
marvins-guide.leaflet.pub
November 23, 2025 at 6:10 PM
when i was 12, my favorite program was microsoft powerpoint. i went through every menu item and accidentally found a panel with record/play buttons. press record, do something, and it spits out the code automating what you just did. i tweaked the code and it did something different. i bought a book
What’s the lore behind choosing your career path ?
November 23, 2025 at 6:27 PM
Reposted by dan
New app

Zone Bar 🌐
World clocks in your menu bar



sindresorhus.com/zone-bar
November 23, 2025 at 5:40 PM
Reposted by dan
There’s a new kind of Job to be Done in the Atmosphere. The people doing it are The Integrators.

www.noidea.dog/glue

We need technosocially attuned glue workers going around binding our disparate apps together into a seamlessly interoperable whole.

“Neurons that fire together, wire together.”
4/ Want to integrate Semble with your personal bookmark managers (Raindrop, etc)? Now you can! We've published a lightweight PDS client purpose-built for working with Semble records. Check our docs to get started! docs.cosmik.network/semble/devel...
Getting Started with the Semble PDS Client | Semble Docs | Cosmik
docs.cosmik.network
November 23, 2025 at 5:39 PM
ah maybe! i meant more for non-tech people. i think the benefits of files (as opposed to things being locked inside apps) are easy to explain to people who dealt with files, but "record" doesn't mean anything to a normie
November 23, 2025 at 5:58 PM
cc @delba.bsky.social for feedback
November 23, 2025 at 4:49 PM
the docs feel a bit all over the place right now, hope it settles down with time. the “use cache” doc page definitely implies that it’s only useful for static stuff in serverless environments. but it makes sense that you can make it do whatever and i don’t even know what vercel’s handler does
November 23, 2025 at 4:49 PM
i'm not sure what to take away from that experience. i'm guessing that to be productive with AI, i have to keep a lot more "instructions" around than i do (i barely have any). and maybe "skills" so that i can rely on it more.

but also it seems like i need some way to feel involved with the output?
November 23, 2025 at 4:00 PM
but to be clear, it wasn't that i didn't "understand" the code or anything. i understand it perfectly fine. but i guess that during normal development, there's a background index of the codebase being built in my brain. and trying to fix something with that index being cold is distinctly unpleasant
November 23, 2025 at 3:59 PM
in a sense it's like i suddenly inherited a codebase and have to make a change in it. but even if i know my way around it, there were many small decisions that wouldn't quite match mine, and the feeling is uncanny enough that there's real mental resistance to tweaking it. i feel unusually lost
November 23, 2025 at 3:58 PM