Contrails is an ATProto Feed Generator backed by Cloudflare Workers and Bluesky Search.
Edit CONFIG.md
to define your feed generator.
Deploy right from GitHub Actions.
[Holds hand to earpiece] I'm being told Bluesky Search is now called Palomar. RIP thecloud, we hardly knew ye.
- Bluesky Social account
- GitHub account (Sign up or Login)
- Cloudflare account (Sign up or Login)
- A moderate-to-high tolerance for adventure
- Create a Cloudflare Worker
- Create a Cloudflare API Token (the Edit Workers template is fine)
- Create a Bluesky App Password
- Fork this repository
- Set the following in your fork:
- Variables:
BLUESKY_HANDLE
,CLOUDFLARE_ACCOUNT_ID
,CLOUDFLARE_WORKER_NAME
- Secrets:
BLUESKY_APP_PASSWORD
,CLOUDFLARE_API_TOKEN
- Edit CONFIG.md in your fork
- Run Check Requirements GitHub Action in your fork
- Run Deploy to Cloudflare GitHub Action in your fork
- Run Publish Feed Generator GitHub Action in your fork
INSTALL.md under-construction.gif
flowchart LR
subgraph Bluesky
PDS["PDS"]
end
subgraph GitHub
subgraph MD_Config["CONFIG.md"]
searchTerms
end
subgraph CloudflareDeploy["Cloudflare Deploy"]
Worker_JS
CloudflareApiToken("CLOUDFLARE_API_TOKEN")
CloudflareAccountID("CLOUDFLARE_ACCOUNT_ID")
CloudflareWorkerName("CLOUDFLARE_WORKER_NAME")
end
subgraph BlueskyDeploy["Bluesky Deploy"]
PublishFeedGenerator
BlueskyHandle("BLUESKY_HANDLE")
BlueskyAppPassword("BLUESKY_APP_PASSWORD")
end
MD_Config --> Worker_JS["worker.js"]
MD_Config --> PublishFeedGenerator["publishFeedGenerator.ts"]
end
subgraph "Cloudflare Worker"
CloudflareWorker[worker.js]
end
CloudflareDeploy -->|Deploy to Cloudflare| CloudflareWorker
BlueskyDeploy -->|Publish Feed Generator| PDS
sequenceDiagram
actor CoffeeTeaLover
participant Bluesky
participant Cloudflare as Cloudflare Worker
participant Bluesky Search
CoffeeTeaLover->>+Bluesky: get Coffee&Tea custom feed
Bluesky->>+Cloudflare: get Coffee&Tea custom feed
Cloudflare->>+Bluesky Search: search "coffee" and "tea"
Bluesky Search->>+Cloudflare: posts matching "coffee" and "tea"
Cloudflare->>+Bluesky: IDs of posts matching "coffee" and "tea"
Bluesky->>+CoffeeTeaLover: posts for Coffee&Tea custom feed