







Sharing this! Wish I'm not late for #IETF126 Tangled found PDS doesn't fit well for contributions even with upcoming permissioned space spec. So, we are planning to store record-like data outside of PDS, in Knot. This is a post explaining the reasons & upstream spec change we need. #atproto #atdev
tangled-cob.md · by boltless.me
tangled.orgJul 19, 2026 at 8:24 AM
proposal: ingest repo records #282
`sh.tangled.repo` records are one of the last few records that need atprotation (2-way sync between appview/pds). this one is tricky because we want consistency between knot state, appview state and PDS state. the path forward is described below: - migration to did/rkey syntax universally: in several places, we utilize `did/repo-name` as a globally unique identifier for a repository, we should migrate this to `did/rkey`: * for the tangled appview: this means reworking our ACLs, routers and DB to use `did/rkey` or ATURI as a globally unique identifier for a repo * for knots: this means changing paths on disk to be `did/rkey`, allowing git ops to `host:did/rkey` , updating ACLs, and XRPC endpoints * for spindles: this means updating ACLs and XRPC endpoints - once this is done, we can define ingestion logic for all services in the network to pull sh.tangled.repo records * for the tangled appview, this should create/delete/update a repo pointer record * for knots: this should create-or-ignore/delete-or-ignore/update-or-ignore a repo on disk. migration of repos needs to be thought out here. * for spindles: as above - define edge-case behaviors: * when referring to repos by rkey, it is possible for clever users to create duplicate records with the same repo-name, appview routers must handle this ambiguity with a new interstitial page that offers a redirect, knots must return an error upon push/pull on ambiguous git URLs * the `knot` cli can introduce a command `backfill` or `sync` to bring knot state up to sync with the rest of the world (repos, collaborators, pubkeys, ACLs etc.).
Bobbin
Bobbin is an API appview for Tangled records. It serves XRPC endpoints for sh.tangled.*, with it you can get repos, issues, pulls, comments, follows, stars, labels, pipelines, and profiles. It is read-only, there is no auth, since that should all be handled direct-to-PDS and knot respectively.
[Proposal] AT-URI for cross-service records
tl;dr non-AtprotoPersonalDataServer services might host records, let’s introduce following AT-URI syntax with optional service field to reference those non-PDS hosted data. at://tangled_knot@did:plc:user/... ^^^^^^^^^^^^ ^^^ | path can be any format | (NSID/rkey prefered, but not enforced) service name (default to "atproto_pds" when omited) In this proposal, I’m going to explain why we need cross-service reco...

PDS Directory | ATProto PDS Index
Complete directory of Personal Data Servers in the Atmosphere.
Migrating to the new Tangled knot2 | jola.dev
Tangled is a Github alternative built on atproto. I've previously shown you how to set up the self-hosted repo server, here I go through migrating to knot2.

@dholms.at thinking about permissiones data. What if: Permissioned data URI was at://<PDS did>/<record type>/<rkey> exactly the same as public data. The PDS would handle the space assignment opaquely and do a 4xx response with some space aturis. Client goes and grabs a space cred and retries
I've been working on an "at protocol notion". One of the things that has been holding it up has been coming to terms with the oddities of putting this data on a PDS. A document is a collection of edits, whose edits we collect will change that document pretty substantially. This is a feature
ahhhh it works! I have an atproto PDS, knot, spindle, and hold, all driven by a repo hosted on the knot, running on container images created by the spindle and hosted on the hold. The accounts that tie it together all live on the PDS. tangled.org/cove.town/cove.town
cove.town/cove.town
tangled.orgPlease add the code source of any new and different implementation of PDS that you know! This is NOT a PDS list for users, this is for PDS administrators and developers. ALWAYS USE PERMALINK FOR TANGLED // Isso NÃO é uma lista de PDS para usuários, é uma coleção de diferentes implementações de PDS para administradores e desenvolvedores.
/atproto-crates/crates/atproto-pds at main · ngerakines.me/atproto-crates
cove.town/cove.town
Spirallex/rust-pds
brookie.blog/gleam-pds
PassiveModding/atompds
DavidBuchanan314/picopds