Published128 posts
DiscoverFollowingDesign
Harbor & Co@harborandco.com · 2h

New site is up, and the handle is just the domain.

Harbor & Co@harborandco.com · 5h

Same post went to four other networks in the same call.

Harbor & Co@harborandco.com · 9h

Replies land on the same webhook as everywhere else.

Harbor & Co@harborandco.com · 1d

Queued the rest of the week from one endpoint.

Friday 711:30 AMScheduled
@nick.devSo good 🦋ReplyLikeDM

Ship your Bluesky integration in minutes, not months

Stop wrestling with AT Protocol complexity. Zernio gives you a single, simple endpoint to schedule Bluesky posts while we handle authentication, rate limits, and the decentralized protocol details.

  • Posts
  • Photos
  • Quotes
  • Replies
  • DMs

Join 200,000+ of the world's most ambitious developers and builders

Warner Music Group
ClickUp
Vibiz
RE/MAX
Heymark
Holo

Why Zernio vs Bluesky AT Protocol Direct?

Save 4-6 weeks of development time

Zernio API

  • Simple API key - start in 30 seconds

  • Automatic retries & queue management

  • Upload directly - we handle AT Protocol blobs

  • Zero maintenance forever

  • One API for 17 platforms

AT Protocol Direct

  • Complex authentication with DID and app passwords

  • Rate limits and PDS (Personal Data Server) management

  • Blob uploads with specific encoding requirements

  • Rapidly evolving protocol with frequent changes

  • Build separate integrations per platform

How It Works

Three steps to Bluesky automation

1

Profile

default

Bluesky

Connect your account

Link your Bluesky account with an App Password from your Bluesky settings - we handle the AT Protocol sessions.

2

POST /v1/posts

const { data } = await zernio.posts.createPost({
  body: {
    content: 'Shipping today 🚀',
    mediaItems: [{ url: 'https://cdn.acme.com/launch.jpg' }],
    platforms: [
      { platform: 'bluesky', accountId: 'acc_8f2a' },
    ],
    scheduledFor: '2027-01-15T14:30:00',
    timezone: 'Europe/Madrid',
  },
});

Build your integration

Use our simple REST API to schedule posts, threads, images, or videos. Same pattern works for all 17 platforms.

3

post.failed

Webhook sent to your app

Failed

Mon, 18 Jan

09:00, Europe/Madrid

Scheduled

Shipping today 🚀

Fri, 15 Jan at 14:30

Published

We handle the rest

Zernio publishes at your scheduled time, retries on failures, and notifies you via webhooks. You never touch the AT Protocol directly.

Connect any Bluesky account using an app password

Features

Everything you need to ship Bluesky features

Posts

Publish text, image, and video to Bluesky.

Languages

Tag posts with up to 3 languages, or set a default, so language feeds pick them up.

Threads

Publish a chain of posts in one call, where the first item is the root and each later one replies to the one before it.

Link cards

Links turn into cards with a thumbnail, and @handles become real mentions that notify.

Inbox

Read and send Bluesky direct messages, and reply to and like comments on your posts.

Replies

Get the replies to your posts. Answer, like or unlike them, and delete your own.

Integrate

Three ways in. Same API behind all of them

Write it yourself with the SDKs, hand it to an agent over MCP, or run it from a shell.

Read the docs
import Zernio from '@zernio/node';
const zernio = new Zernio(); // reads ZERNIO_API_KEY
const { data: post } = await zernio.posts.createPost({
body: {
content: 'Shipping today 🚀',
mediaItems: [{ type: 'image', url: 'https://cdn.acme.com/launch.jpg' }],
platforms: [
{
platform: 'bluesky',
accountId: 'acc_xxx',
platformSpecificData: {
langs: ['en'],
},
},
],
publishNow: true,
},
});
And more
Try it live

Connect your Bluesky account to try the API live. No signup needed.

Uses a Bluesky app password. You can disconnect right after

Supported Platforms

Build one integration
and reach 17 platforms with it

Frequently Asked Questions

Ship Bluesky today

No credit card, no sales call. Same reliability, 10x less code.

  • SOC 2
  • GDPR compliant
  • 99.97% uptime
  • Under 50ms response