HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
bluesky-social
pds
Shell2023–2026
bluesky-social / pds

pds

Bluesky PDS (Personal Data Server) container image, compose file, and documentation

29Distinct people
36Mentions
0Explicit recommenders
2.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Bluesky PDS (Personal Data Server) container image, compose file, and documentation

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year36 dated mentions

Observed mentions: 2023-07-07 11:12:54 UTC to 2026-06-21 15:00:42 UTC.

0510152023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 17 mentions; 1 submissions, 16 comments20242025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 14 mentions; 0 submissions, 14 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC404
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC17116
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC14014
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

36 sources
One of the core features of AT is the ability to move your repo hosting provider (PDS) at any time. This is the "data portability" problem that ActivityPub never solved. Bluesky Social, PBC runs a PDS service (bsky.social) for free, there are a number of free public alternatives, and thousands of users self-host. Self-hosting your own PDS can be done with Raspberry Pi or $5/mo VM and requires very little work. It runs in a Docker container with SQLite. https://github.com/bluesky-social/pds
In Who owns your ATProto identity?
Interesting. Ok just saw this https://github.com/bluesky-social/pds > Self-hosting a Bluesky PDS means running your own Personal Data Server that is capable of federating with the wider ATProto network. So pds (personal data server) is like the container where you chose to store the data and it follows a certain standard. If the container is hosted is bluesky, i still consider it a "bluesky api" but I understand the nuance better now.
In Open Social
Okay, so this sounds like you'd want to run an appview + pds. (and possibly a relay, depending on some details.) Except for one thing: > or dependent on Bluesky. If you want to take this to an extreme, and are uncomfortable with how did:plc has not yet moved into its own org, then you'd want to also run your own plc server, etc. The problem with doing this is: > If people wanna follow on bluesky they can You lose this. Because you're now not running on the main atproto system, but instead a fully parallel one of your own. Anyway, you could start on this by running a PDS via the reference implementation here: https://github.com/bluesky-social/pds and then building your own appview (application). You could also take a look at Blacksky's implementation https://github.com/blacksky-algorithms/rsky and if you end up using it, consider throwing
Read the rest
them a few dollars. Alternative implementations are super important!
In Open Social
You can think of ATProto like this. Each user has a "website" with JSON of their own content (e.g. all my posts, all my likes, all my follows, actually live in a sqlite database hosted somewhere). It's not really a website but more like a git repo — one per user. And then, there's a protocol for how to aggregate information from all such "websites" in the network into a stream of changes. Apps subscribe to that stream of changes and update their local databases (which act as app-specific caches) in response to those events. When I make a Bluesky post, I'm really writing JSON into my sqlite file. This change gets broadcasted to all interested apps which update their own databases (which may or may not care about specific content type like "Bluesky post"). Obviously forks of Bluesky backend do index Bluesky posts (and then return them in th
Read the rest
e same UI), but you could imagine other backends that only care about other content types, or that record Bluesky posts but in a different database structure, and ofc can present a different UI for it. Yes, you can run your own node — multiple types of nodes. You run your own PDS (https://github.com/bluesky-social/pds) to store own data (that's the "website" in my analogy), or you could run a Relay (https://whtwnd.com/bnewbold.net/3lo7a2a4qxg2l) that collects all PDS changes into a stream, or you could run an AppView (any backend that listens to Relay or PDS, basically your own app).
In Are we decentralized yet?
>in what way can smaller players federate with ATProto or how the structure allows federation. Each of the pieces I've described (PDS, Relay, AppView) implement the protocol specified at https://atproto.com/. Anything that acts as an ATProto PDS can be used as an ATProto PDS, anything that acts as an ATProto Relay can be used as an ATProto Relay, and so on. I'm not sure I understand the question so pardon the tautology. The structure allows federation by design — a Relay will index any PDS that asks to be indexed; an AppView can choose the Relay it wants to get the data from (or skip a Relay completely and index PDS's directly); anyone can make their own AppView for an existing or a new app. That's how there are multiple AppViews (both for Bluesky app and for other ATProto apps) ingesting data via multiple Relays from many PDS's. There ar
Read the rest
en't many independent operators of each piece (especially outside of PDS self-hosting) but nothing is privileging Bluesky's infra. Additionally, Bluesky's reference implementations of each piece are open source. So people run them the same way you would usually run software -- by putting it on a computer and exposing it to the internet. To run a custom PDS, you can either use the Docker container provided by Bluesky (https://github.com/bluesky-social/pds) or implement your own (e.g. https://github.com/blacksky-algorithms/rsky). Ditto for other pieces. >Reading through it, it just sounds like sharding/scaling for a centralized service that's meant to be owned and provided by a single entity. You're right in that the goal is to make it on par with centralized services in terms of UX and performance/scaling. However, it is decentralized. The picture at the end of this article might help: https://atproto.com/articles/atproto-for-distsys-engineers
In Are we decentralized yet?
> "Bluesky asks about which server to use on registration" > > No he doesn't ask, you're wrong. It's not very prominent, but the Android mobile app does have the option to change what server you register on. https://ibb.co/s9pzTt3k You can tap on the bold "Bluesky Social" text to change it. > And there is no single one alternative server where we can register and interact with people on bsky.app You absolutely can host a PDS that interacts flawlessly with the rest of the network. I host my own. There's an entire section in the README about self-hosting: https://github.com/bluesky-social/pds?tab=readme-ov-file#sel...
In Bluesky now has 30 million users
It should be noted that, at least for now, account migration can only go one way. That is, from the main Bluesky PDS to an external one. According to the documentation on account migration[0], they plan to enable incoming migrations at some point in the future, but there's no timeline. I'm sure a big reason for this the possibility for abuse, since "migrating" an account is a different action than simply "creating" a new one [0]: https://github.com/bluesky-social/pds/blob/main/ACCOUNT_MIGR...
In Bluesky now has 30 million users

Showing the 15 most recent of 36 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.