







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.
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.toolsCirrus (my single-user PDS than runs in a Cloudflare Worker) now supports granular OAuth scopes and permission sets. github.com/ascorbic/cirrus
This 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
Cirrus (my single-user PDS than runs in a Cloudflare Worker) now supports granular OAuth scopes and permission sets. github.com/ascorbic/cirrus
while i've been loudly proclaiming in the atproto devs discord meetings that you probably don't need an appview for your atproto side project, i'm now also working on my own "atproto backend in a bottle" that runs on cloudflare workers 😅 still super WIP, but happy for any early feedback
GitHub - flo-bit/contrail: atproto backend in a bottle
github.comI 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