Willem Dantuma's Avatar

Willem Dantuma

@willem.dobs.nl

Software architect/developer, interested in precision agriculture, IOT, linked data, data spaces, ATProto and sailing

142
Followers
270
Following
136
Posts
04.08.2023
Joined
Posts Following

Latest posts by Willem Dantuma @willem.dobs.nl

My vote goes to the alternative and in my opinion cleaner approach , "always specify a full service did in the aud field", I guess the serious (read actively maintained) atproto services and clients will implement this. Changes are needed either way

05.03.2026 05:57 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

When the bsky app starts using OAuth it will be redirected to bsky.social ( or the IDP of your'e PDS provider) to login. So if you have a session active it will be reused when you login with another app using OAuth

04.03.2026 11:58 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I run into it frequently, will be fixed when the bluesky app OAuth2 support lands

04.03.2026 10:40 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

On a Rpi with 500GB ssd at home

01.03.2026 19:52 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Backfill duration was +/- 26h

01.03.2026 19:36 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Mine is 138GB right now

01.03.2026 19:31 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Google quantum-proofs HTTPS by squeezing 15kB of data into 700-byte space Merkle Tree Certificate support is already in Chrome. Soon, it will be everywhere.

Sounds familiar for atproto people arstechnica.com/security/202...

01.03.2026 08:33 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

What does ๐Ÿ‘พ mean in this list ?

26.02.2026 05:20 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

It was needed because not every request from the social app had an atproto-proxy header I guess, I removed them from my PDS implementation on jan 9 and everything still works.

26.02.2026 04:56 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This is indeed like @threddyrex.org mentioned the exception you need to implement ( until private data lands i guess)

25.02.2026 20:24 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Requests allowed by the permissions (scopes) a user consented during the code flow see atproto.com/specs/permis...

25.02.2026 16:33 ๐Ÿ‘ 1 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I guess you have unlimited plc replica disk space to your'e disposal.

25.02.2026 10:18 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

every PDS implementation should implement service proxying and implement a subset of com.atproto.* natively

25.02.2026 08:05 ๐Ÿ‘ 1 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

The client communicating with an PDS determines which appview it want's to use for the services (RPC's) it needs, in the case of the bluesky social app it's blueskies appview, blacksky / eurosky and other atproto clients will use a different value for the atproto-proxy header.

25.02.2026 08:05 ๐Ÿ‘ 1 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

with an added bearer token see docs.bsky.app/docs/advance...

25.02.2026 07:42 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

If an xrpc request ( other then com.atproto.* ) is comming in check if it has an atproto-proxy header, if it hasn't return 400 if it has check the value (did) and resolve it e.g did:web:api.bsky.app#bsky_appview resolves to a service endpoint api.bsky.app proxy the request to that endpoint ..

25.02.2026 07:42 ๐Ÿ‘ 1 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
HTTP API (XRPC) - AT Protocol Cross-system queries and procedures over HTTP

you need to proxy every request with an atproto-proxy header see atproto.com/specs/xrpc#s...

25.02.2026 07:25 ๐Ÿ‘ 1 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

If you want to build a bluesky appview yes, a PDS doesn't need to implement them they are proxied to the appview with service authentication, the PDS signs a token which the appview accepts.

25.02.2026 07:23 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
GitHub - haileyok/cocoon: An ATProtocol PDS (Personal Data Server) written in Go with a SQLite block and blob store An ATProtocol PDS (Personal Data Server) written in Go with a SQLite block and blob store - haileyok/cocoon

Have a look @hailey.at 's PDS (cocoon) for the endpoints she implemented github.com/haileyok/coc... and a subset of this will also work if you skip things like repo portability

25.02.2026 07:17 ๐Ÿ‘ 1 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

A functional PDS doesn't need to implement all endpoints a subset of com.atproto.* will do, the rest is proxied to an appview. If you want to build your'e own bluesky compatible appview that's something else.

25.02.2026 07:11 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

Its there now I see, so i guess some delay in processing

24.02.2026 21:11 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Confidential clients are not supported by you're pds( auth method private_key_jwt not supported)

24.02.2026 20:20 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Minimal PDS Status

Tried some things and it seems to work up to the password screen, problem with the bluesky/blacksky (and probably other) clients is that they use bluesky's resolve handle endpoint and that return a HTTP 400 with the handle pds.sgo.to ...

24.02.2026 20:20 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
GitHub - wdantuma/social-app at Oauth The Bluesky Social application for Web, iOS, and Android - GitHub - wdantuma/social-app at Oauth

I have a branch with the blacksky OAuth changes applied to the unchanged bsky social-app github.com/wdantuma/soc...

24.02.2026 18:59 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

You need to request a crawl ( needed every time you're PDS has been offline for a wile ):

curl -v --location 'https://bsky.network/xrpc/com.atproto.sync.requestCrawl' \
--header 'Content-Type: application/json' \
--data '{
"hostname": "pds.sgo.to"
}'

20.02.2026 06:02 ๐Ÿ‘ 0 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

You could prevent this i think by salting the record for every consumer ( based on their public key ) when hydrating the record.

19.02.2026 04:39 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Love the concept,once developed a platform which used the same concept ( called provides and consumes ) inspired by unix pipes. Biggest hurdle then was the resulting UI/UX people didn't really understand. Would love to see something similar succeed now.

18.02.2026 17:19 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

FedCM is not a replacement for OAuth, it is just a way to skip the need to enter you're handle and login again ( supported by the browser), the rest is just the usual OAuth flow, consent is also still needed.

16.02.2026 14:52 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This was the post created here bsky.app/profile/will...

06.02.2026 08:04 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

So who builds the blacksky bluesky bridge ?

06.02.2026 06:46 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0