forked from
danielmorrisey.com/pdslist
A community-maintained directory of Bluesky Personal Data Servers (PDS).
1# Bluesky PDS Directory
2
3A community-maintained directory of Bluesky Personal Data Servers *(PDS)*.
4
5## JSON Structure
6
7The `pdslist.json` file contains an array of PDS server objects. Each object has the following structure:
8
9```json
10{
11 "url": "https://ypds.example.com",
12 "supportedHandles": ["*.example.com", "*.example.net"],
13 "maintainer": "@your-handle.example.com",
14 "tosUrl": "https://pds.example.com/terms",
15 "privacyUrl": "https://pds.example.com/privacy",
16 "inviteCodeRequired": false
17}
18```
19
20### Field Descriptions
21
22| Field | Type | Required | Description |
23|-------|------|----------|-------------|
24| `url` | string | ✅ Yes | The base URL of your PDS server (must include https://) |
25| `supportedHandles` | array of strings | ✅ Yes | Domain patterns for handles your PDS supports (e.g., `*.example.com`) |
26| `maintainer` | string | ✅ Yes | Bluesky handle of the server maintainer (format: `@handle.domain.com`) |
27| `contactEmail` | string | ⚠️ Optional | Contact email for the PDS administrator |
28| `tosUrl` | string | ⚠️ Optional | URL to your Terms of Service page |
29| `privacyUrl` | string | ⚠️ Optional | URL to your Privacy Policy page |
30| `inviteCodeRequired` | boolean | ✅ Yes | Whether new users need an invite code to join (`true` or `false`) |
31
32### Example Entry
33
34```json
35{
36 "url": "https://pds.myserver.com",
37 "supportedHandles": [
38 "*.myserver.com",
39 "*.myserver.org"
40 ],
41 "maintainer": "@admin.myserver.com",
42 "contactEmail": "admin@myserver.com",
43 "tosUrl": "https://pds.myserver.com/terms-of-service",
44 "privacyUrl": "https://pds.myserver.com/privacy-policy",
45 "inviteCodeRequired": true
46}
47```
48
49## Adding Your PDS
50
51We welcome additions to the directory! There are two ways to add your PDS:
52
53### Option 1: Submit a Tangled Issue
54
551. Go to the [Issues](https://tangled.org/madebydanny.uk/pdslist/issues/new) page
562. Click "New Issue"
573. Add your PDS information:
58 - PDS URL
59 - Supported handles
60 - Your maintainer handle
61 - Contact email (optional)
62 - Terms of Service URL (if available)
63 - Privacy Policy URL (if available)
64 - Whether invite codes are required
654. Submit the issue
66
67A maintainer will review your submission and add it to the list.
68
69### Option 2: Submit a Pull Request
70
711. Fork this repository
722. Edit `pdslist.json`
733. Add your PDS entry to the array following the structure above
744. Ensure your JSON is valid (use a JSON validator)
755. Commit your changes with a clear message: `Add [your-pds-name] to directory`
766. Create a Pull Request with:
77 - A clear title: "Add [your PDS name]"
78 - Description of your PDS
79 - Confirmation that you maintain the server
80
81### Submission Guidelines
82
83✅ **Do:**
84- Use valid JSON formatting
85- Include all required fields
86- Use HTTPS URLs only
87- Provide accurate information
88- Test your PDS is accessible before submitting
89
90❌ **Don't:**
91- Submit inactive or offline servers
92- Include test or development servers
93- Use HTTP (non-secure) URLs
94- Submit duplicate entries
95
96## Review Process
97
98All submissions are reviewed by maintainers to ensure:
99- JSON is properly formatted
100- URLs are accessible and valid
101- Information is accurate
102- The PDS is actively maintained
103- Terms and privacy policies exist (if links provided)
104
105## Updating Your Entry
106
107If you need to update your PDS information:
108
1091. Submit an issue with "Update [your-pds-name]" as the title
1102. Or create a Pull Request with the updated information
111
112## Removing Your Entry
113
114To remove your PDS from the directory:
115
1161. Submit an issue with "Remove [your-pds-name]" as the title
1172. Or create a Pull Request removing your entry
118
119## Code of Conduct
120
121Please be respectful and professional in all interactions. This is a community resource for everyone.
122
123## License
124
125This project is open source and available for anyone to use and contribute to.
126
127## Support
128
129For questions or issues:
130- Open a Tangled Issue
131- Check existing issues for similar questions
132
133---
134
135**Note:** This is a community-maintained list. We cannot guarantee the availability, security, or policies of listed servers. Always review a server's terms and privacy policy before joining.