







atproto PDS built around Cloudflare Workers
Notes on hosting an ATProto PDS on Cloudflare
Adversarial ATProto PDS Migration | Blog
An ATProto account lives on a Personal Data Server (PDS), and that service needs to be hosted somewhere by someone. There are a lot of options here, like a Raspberry Pi in your closet, a rented VPS in a datacentre, or a batteries-included service like bsky.social.
Embracing ATProto, part 1: Setting up a PDS
In this series of posts, I'll explore my journey into setting up my workflows and services for atproto. The first step is setting up my PDS. Let's start with a bit of explanation for all this lingo.

Self-hosting your PDS | jola.dev
How to set up your own atproto Personal Data Server using tranquil-pds and docker compose, walking you through it step by step.

atproto pds self-hosting: some issues and antipatterns | friendmeat
The Bluesky personal data server (pds) repository is weirdly opinionated about stuff that's easy, and unhelpful with the stuff that's hard. They also insist on using a script that installs a whole HTTP server and Docker stack. But if you're gonna use Docker why assume that people don't already have their own stack? It's just weird and annoying. But here's how I did it.
Other PDS
Compare other ATproto Personal Data Servers (PDS): see providers, regions, and tips for choosing where your handle and social data should live.

Other PDS
Compare other ATproto Personal Data Servers (PDS): see providers, regions, and tips for choosing where your handle and social data should live.

Host a PDS via a Cloudflare Tunnel - Hitchhiker's Guide to the Atmosphere
Learn how to use a Cloudflare Tunnel to host your PDS on a local network.
cloudflare/cloudflare-os
Agent workspace built on Cloudflare Workers for creating documents, building apps, and running agents with your company’s context and systems.
Cirrus
The lightest PDS in the Atmosphere. A single-user AT Protocol Personal Data Server that runs on a Cloudflare Worker.
Cirrus (my single-user PDS than runs in a Cloudflare Worker) now supports granular OAuth scopes and permission sets. github.com/ascorbic/cirrus
I love that the design of atproto was in part inspired by big social Kafka and ScyllaDB server backends and @martin.kleppmann.com's Designing Data-Intensive Applications and the community immediately used it to implement thousands of apps with no backend lol
Cirrus (my single-user PDS than runs in a Cloudflare Worker) now supports granular OAuth scopes and permission sets. github.com/ascorbic/cirrus
Still work in progress, but I made a svelte + cloudflare workers statusphere version, including everything you need to setup atproto oauth in cloudflare workers with svelte demo: statusphere.atmo.tools code: github.com/flo-bit/svelte-cloudflare-sta…
statusphere
statusphere.atmo.toolsThis is your sign to stop overusing unnecessary things when building You don't need Cloudflare Workers with D1 and R2 or Fly with S3 and Postgres or Railway with 5 region replicas for a basic ATProto app You likely don't need more than SQlite + local filesystem, which can be hosted on a €4 machine