···11-# PDSList
11+# Bluesky PDS Directory
22+23A community-maintained directory of Bluesky Personal Data Servers *(PDS)*.
33-
44+45## JSON Structure
5666-The `pdslist.json` file contains an array of PDS server objects with the following fields:
77+The `pdslist.json` file contains an array of PDS server objects. Each object has the following structure:
88+99+```json
1010+{
1111+ "url": "https://ypds.example.com",
1212+ "supportedHandles": ["*.example.com", "*.example.net"],
1313+ "maintainer": "@your-handle.example.com",
1414+ "serverLocation": "United States",
1515+ "tosUrl": "https://pds.example.com/terms",
1616+ "privacyUrl": "https://pds.example.com/privacy",
1717+ "inviteCodeRequired": false
1818+}
1919+```
2020+2121+### Field Descriptions
722823| Field | Type | Required | Description |
924|-------|------|----------|-------------|
1010-| `url` | string | ✅ | The base URL of your PDS server (HTTPS only) |
1111-| `supportedHandles` | array | ✅ | Domain patterns your PDS supports (e.g., `*.example.com`) |
1212-| `maintainer` | string | ✅ | Bluesky handle of the maintainer (`@handle.domain`) |
1313-| `contactEmail` | string | ⚠️ | Contact email for the administrator |
1414-| `tosUrl` | string | ⚠️ | Terms of Service URL |
1515-| `privacyUrl` | string | ⚠️ | Privacy Policy URL |
1616-| `inviteCodeRequired` | boolean | ✅ | Whether invite codes are required |
2525+| `url` | string | ✅ Yes | The base URL of your PDS server (must include https://) |
2626+| `supportedHandles` | array of strings | ✅ Yes | Domain patterns for handles your PDS supports (e.g., `*.example.com`) |
2727+| `maintainer` | string | ✅ Yes | Bluesky handle of the server maintainer (format: `@handle.domain.com`) |
2828+| `serverLocation` | string | ⚠️ Optional | Geographic location of the server (e.g., `United States`, `European Union`, `Canada`) |
2929+| `contactEmail` | string | ⚠️ Optional | Contact email for the PDS administrator |
3030+| `tosUrl` | string | ⚠️ Optional | URL to your Terms of Service page |
3131+| `privacyUrl` | string | ⚠️ Optional | URL to your Privacy Policy page |
3232+| `inviteCodeRequired` | boolean | ✅ Yes | Whether new users need an invite code to join (`true` or `false`) |
3333+3434+### Example Entry
17351818-**Example:**
1936```json
2037{
2121- "url": "https://pds.example.com",
2222- "supportedHandles": ["*.example.com"],
2323- "maintainer": "@admin.example.com",
2424- "contactEmail": "admin@example.com",
2525- "tosUrl": "https://pds.example.com/tos",
2626- "privacyUrl": "https://pds.example.com/privacy",
3838+ "url": "https://pds.myserver.com",
3939+ "supportedHandles": [
4040+ "*.myserver.com",
4141+ "*.myserver.org"
4242+ ],
4343+ "maintainer": "@admin.myserver.com",
4444+ "serverLocation": "Canada",
4545+ "contactEmail": "admin@myserver.com",
4646+ "tosUrl": "https://pds.myserver.com/terms-of-service",
4747+ "privacyUrl": "https://pds.myserver.com/privacy-policy",
2748 "inviteCodeRequired": true
2849}
2950```
3030-## Removals
3131-- **Remove:** Submit an issue titled "Remove [your-pds-name]" or create a PR removing your entry
5151+5252+## Adding Your PDS
5353+5454+We welcome additions to the directory! There are two ways to add your PDS:
5555+5656+### Option 1: Submit a Tangled Issue
5757+5858+1. Go to the [Issues](https://tangled.org/madebydanny.uk/pdslist/issues/new) page
5959+2. Click "New Issue"
6060+3. Add your PDS information:
6161+ - PDS URL
6262+ - Supported handles
6363+ - Your maintainer handle
6464+ - Contact email (optional)
6565+ - Terms of Service URL (if available)
6666+ - Privacy Policy URL (if available)
6767+ - Whether invite codes are required
6868+4. Submit the issue
32693333-## License & Support
7070+A maintainer will review your submission and add it to the list.
34713535-Open source and community-maintained. For questions, open an issue
7272+### Option 2: Submit a Pull Request
36733737-**Disclaimer:** This is a community list. Always review server terms and privacy policies before joining.
7474+1. Fork this repository
7575+2. Edit `pdslist.json`
7676+3. Add your PDS entry to the array following the structure above
7777+4. Ensure your JSON is valid (use a JSON validator)
7878+5. Commit your changes with a clear message: `Add [your-pds-name] to directory`
7979+6. Create a Pull Request with:
8080+ - A clear title: "Add [your PDS name]"
8181+ - Description of your PDS
8282+ - Confirmation that you maintain the server
8383+8484+### Submission Guidelines
8585+8686+✅ **Do:**
8787+- Use valid JSON formatting
8888+- Include all required fields
8989+- Use HTTPS URLs only
9090+- Provide accurate information
9191+- Test your PDS is accessible before submitting
9292+9393+❌ **Don't:**
9494+- Submit inactive or offline servers
9595+- Include test or development servers
9696+- Use HTTP (non-secure) URLs
9797+- Submit duplicate entries
9898+9999+## Review Process
100100+101101+All submissions are reviewed by maintainers to ensure:
102102+- JSON is properly formatted
103103+- URLs are accessible and valid
104104+- Information is accurate
105105+- The PDS is actively maintained
106106+- Terms and privacy policies exist (if links provided)
107107+108108+## Updating Your Entry
109109+110110+If you need to update your PDS information:
111111+112112+1. Submit an issue with "Update [your-pds-name]" as the title
113113+2. Or create a Pull Request with the updated information
114114+115115+## Removing Your Entry
116116+117117+To remove your PDS from the directory:
118118+119119+1. Submit an issue with "Remove [your-pds-name]" as the title
120120+2. Or create a Pull Request removing your entry
121121+122122+## Code of Conduct
123123+124124+Please be respectful and professional in all interactions. This is a community resource for everyone.
125125+126126+## License
127127+128128+This project is open source and available for anyone to use and contribute to.
129129+130130+## Support
131131+132132+For questions or issues:
133133+- Open a Tangled Issue
134134+- Check existing issues for similar questions
135135+136136+---
137137+138138+**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.