By signing in you agree to the Terms of Service & Privacy Policy.
What is it?
atproto Latency Fabric is an XRPC proxy draft scheduler for atproto records. Writes go in now, records appear in the feed later — at exactly the time you specify.
Drop it in front of any atproto client: point writes at the proxy instead of directly at the PDS to get scheduled posting, drafts, recurring schedules, and webhook-triggered publishing without changing your data model.
How it works
- 1 Authorize once — complete a one-time authorization so the proxy can publish records to your PDS on your behalf.
-
2
Redirect your writes — point XRPC write calls at the proxy. Add
x-scheduled-atto set a time, orx-trigger: webhookto get a one-time publish URL. - 3 Draft stored — the proxy stores the record (and any images) locally. A provisional AT-URI is returned immediately.
- 4 Auto-publish — the built-in scheduler wakes up at the scheduled time, or publishes when the trigger URL is called.
-
5
Manage drafts — list, reschedule, publish immediately, or cancel via
town.roundabout.scheduledPosts.*XRPC methods.
Webhook Triggers
Add x-trigger: webhook to any write request. ALF generates a one-time secret URL and returns it in the response. Anyone with the URL can call POST {triggerUrl} (no auth required) to immediately publish the draft.
The URL is the secret — share it with Zapier, a bot, or any external system. The key is never stored in plaintext: ALF keeps an HMAC-SHA256 hash for O(1) lookup and an AES-256-GCM encrypted copy for retrieval. Calling the URL a second time returns 409 TriggerAlreadyFired.
Recurring Schedules
Create a schedule with a recurrence rule and ALF will automatically create and publish one draft per occurrence. Each fired occurrence is stored as a permanent draft record — full publish history, no data loss.
Schedules support static content (same post every time) or dynamic content via a contentUrl fetched at publish time with ?fireCount=N&scheduledAt=T query params. Pause, resume, or delete schedules at any time. DST transitions are handled automatically using IANA timezone names.
Rule types: once, daily, weekly, monthly on day, monthly last business day, yearly on month/day, quarterly last weekday, and more. Per-occurrence exceptions let you cancel, reschedule, or override the content of any individual firing.