Paul Rohr
banner
pevohr.bsky.social
Paul Rohr
@pevohr.bsky.social
Dad, startup guy. Ideas matter. Design matters. It's about we, not me.

hachyderm.io/@pevohr
Kicking off the season with the heady aroma of bubbling cranberries, Cortland apples, + cinnamon sticks
November 25, 2025 at 11:28 PM
Reposted by Paul Rohr
Having such radical simplicity at the endpoints is a huge win:

JSON --> AT --> JSON

Treating the middle of that data pipeline as a reliable black box is huge:

PDS --> AT --> index
index --> AT --> apps

PDS --> AT --> apps

Regardless of the path traveled, each person's JSON arrives intact
November 25, 2025 at 6:15 PM
Tidy 🧵 on the "hosting vs. apps" distinction + the practical impact of introducing a fundamental separation between:

canonical storage of your data (PDS)

vs.

a taxonomy of how + where slices of that data may get indexed, aggregated, + augmented (apps)
the metaphor i find most useful is that your "posts", "likes", etc, are really just JSON files in this paradigm — and more concretely, concepts like "bluesky post" or "tangled repo" or "leaflet comment" are like JSON file formats. and then different apps — arbitrary even — interpret these formats
November 25, 2025 at 6:29 PM
Reposted by Paul Rohr
i'll go so far as to say that the PDS as a user-controlled auth/storage layer that clients can connect to directly is the single most important part of atproto. requiring application servers would dramatically increase the cost and difficulty of building atproto apps.
November 13, 2025 at 4:12 AM
Reposted by Paul Rohr
any a11y folks know how to improve this? is it better to add roles and aria attributes as best i can, or should i wait for actual support for aria across shadow roots?
threw together a lil web component to add this to any input. super easy progressive UX enhancement for your atproto app!

tangled.org/@jakelazarof...
November 11, 2025 at 3:24 PM
Reposted by Paul Rohr
A while back, a handful of ancient eulogies went viral. I saved a bunch and now they popped up in my phone memories. Here were the three that stood out most to me.
November 24, 2025 at 7:11 PM
Reposted by Paul Rohr
Who has the lowest Erdos-Bacon-Epstein number?
statmodeling.stat.columbia.edu/2025/11/23/w...
Who has the lowest Erdos-Bacon-Epstein number? | Statistical Modeling, Causal Inference, and Social Science
statmodeling.stat.columbia.edu
November 23, 2025 at 8:28 PM
To keep us from watching TV, parents hooked it up to an Atari 800 + refused to let us buy game cartridges

To write a PacMan clone, needed to solve mazes

Too lazy to hand-draw test cases, so started writing programs to create "good" mazes

( Have been unwinding design dependencies ever since )
What’s the lore behind choosing your career path ?
November 23, 2025 at 10:52 PM
Reposted by Paul Rohr
We quietly launched a new thing over on @unbreaking.org: letting folks filter our *in-depth* timelines down into the pieces they care about, to help them pull out the threads that are most relevant to them.

This was a real team effort; can’t wait to see more of our pages roll out their own filters.
We are working on *lots of things* but last night we soft-launched a change I am psyched about that makes our timelines filterable. Now you can see all of a case's entries on a given timeline in one place:

unbreaking.org/issues/immig...
November 21, 2025 at 6:27 PM
Reposted by Paul Rohr
yooo demand 4 made me sit up in my seat. I don't think I knew they had called for actual enforcement of the Penalty Clause!!

Section 2 of the 14th Amendment says that states that disenfranchise their residents shall have their representation *reduced* in Congress.....and it has neve been enforced 🙃
I celebrated my aunt & uncle’s 80th birthdays last weekend. Both have done social justice their whole lives. My uncle was a SNCC vote registerer in MS 1965, & he was at the March in Washington.

People forget it was a march “for jobs & freedom.” Race-class.

Here are pics from the original program:
November 21, 2025 at 3:18 PM
Note to self. When mucking about with possible ways to extend data models within the AT-URI namespace via concepts like:

- legacy authorities,
- proxy identities,
- etc

Don't forget about RFC 8141's mechanism for delegating the URN namespace to other identifiers (doi, example, isbn, issn, etc.)
www.iana.org
November 21, 2025 at 1:28 PM
Reposted by Paul Rohr
I loved that so much that I’ve always tried to apply it to my journalism since. I edited and printed that quote out and posted it beside my desk at one point.

“The journalist’s job,
to the extent possible,
is to slow down,
think things through,
do the math, and
ask the irritating question.”
November 20, 2025 at 6:16 AM
Oh, now this is a sweet, sweet hack

Unlike the official bsky AppView + clients, which rely on lexicon records aggregated from PDSes, this implementation essentially upgrades a custom UX to dynamically synthesize facades from info sourced elsewhere

... in this case, proxying via a Nitter RSS feed‼️
Now you can connect AppViewLite to a Nitter instance and follow Twitter profiles directly from AppViewLite.
#atproto #appview
November 20, 2025 at 4:57 AM
Conflation of geospatial data from multiple sources is a grind:

"In the US especially, our data is now a mosaic of multiple, often overlapping datasets and the real engineering challenge comes in eliminating these overlaps without losing valuable data."
November 18, 2025 at 8:09 PM
Reposted by Paul Rohr
This week's @unbreaking.org update on immigration is *also* an update on data security because the administration is using immigration enforcement as a way to trial and operationalize a full-on surveillance state.
November 6, 2025 at 10:13 PM
Reposted by Paul Rohr
why is design so hard, need some feedback from anyone interested in @offprint.app and or design.
I'm having an internal debate and would love some feedback from you all! For the most part I am pretty happy with the look and feel of the Dashboard (it feels like our own thing, but clearly inspired by Substack).

But... (continued in thread 🧵 1/3)
November 18, 2025 at 6:43 AM
Reposted by Paul Rohr
there’s a reason why i added this informational box to the sign in flow for @anisota.net — i wanted to make it clearer that the user is redirected away from anisota and to their own account/PDS… and that anisota isn’t getting their password

helps that anisota’s design is SO diff from the oauth page
November 17, 2025 at 3:11 PM
Anyone have a handy pile of code I could repurpose to chew through a CAR file + generate a list of statistically improbable phrases (SIPs)?

Ideally golang or typescript, but I'm not picky
even without a seed list of phrases-of-interest, there's likely a purely-statistical approach that'd get you most of the way.

eg: for a while, Amazon reported the 'statistically improbable phrases' in books, as a hint to their unique topics/language. you kinda want that, in reverse. …
November 17, 2025 at 1:28 PM
Reposted by Paul Rohr
A fabulous rant on trust as well as a message of love for #Wikipedia by @hankgreen.bsky.social Love the quote "The fight is always going to be the loud thing. The actual useful things in the world are quiet and invisible." www.youtube.com/watch?v=9zi0...
Wikipedia and the Destruction of Trust
YouTube video by Hank Green
www.youtube.com
November 16, 2025 at 10:11 PM
Lengthy conversations over the weekend with @neko.moe.observer + @dw.whey.party have sharpened my sense that I could actually be onto something with this

Expanding the definition of valid AT-URIs to include a third AUTHORITY to address legacy records may not be idiomatic enough, but it feels close
TBH, I'm probably still just publicly talking to myself here

But at some point it'll be worth having a good chat with @bnewbold.net, @pfrazee.com, et al about whether there'd be a more idiomatic way to approach this
November 17, 2025 at 12:34 PM
Whoa, given that:

- I used "ontologically" just up-🧵, +
- got dangerously close to invoking concordances,

it's definitely time to step away from the keyboard! 💤
Whereas listing legacy identifier(s) as an optional property within a (singular) DID document reasserts unified personal control of pre-AT data too:

I'm me.
All this AT data here is mine.
Some you originally saw there.
November 16, 2025 at 4:09 AM
To be clear, the technical proposal on this 🧵 is motivated by my interest in #memex use cases, where having a searchable timestamped heap of richly-linked structured data is invaluable

Other usage models for #atproto systems are far more interested in the ups + downs of being social in the moment
I eventually want my PDS to contain all the richly-linked data I've ever publicly shared. We already have a clear picture of how new stuff gets + stays there

But what's the best way to migrate legacy content into PDSes with minimal effort + maximum fidelity?

Which links survive that transition?
November 15, 2025 at 10:43 PM
I've been asking myself variants of this question for a while now, because I have a hunch that #atproto datastores might benefit from a more general solution

... but that might require a few tweaks to the architecture
Any interest in playing around with how specific quotes + replies from various archival exports might reliably link together on the atmosphere?
November 15, 2025 at 10:25 PM
Reposted by Paul Rohr
The message on IG from Alice (posted by her friend Sandy Ho). As always, Alice blazes a path for the rest of us, fearlessly & with humor: "I'm honored to be your ancestor & believe disabled oracles like us will light the way to the future. Don't let the bastards grind you down. I love you all."
November 15, 2025 at 11:24 AM
Reposted by Paul Rohr
One of my all-time favorite features of the open web is "view source" — it's enabled so much exploration and creativity. It's basically how anyone learned to build websites back in the day! Every AT Protocol app, including Bluesky, is view-sourceable with tools like PDSls, Taproot, and now Anisota.
Another part of today's eclosion is our take on an "ATProto Explorer". There are multiple different versions of these tools in the community now, but we wanted to let you explore in Anisota.

Try it here: https://anisota.net/explorer/did:plc:lcieujcfkv4jx7gehsvok3pr/app.bsky.feed.post/3m554s2zazc2d
November 13, 2025 at 8:33 PM