The campaign CMS for
technical content teams.
Plan multi-day launches in Markdown. Automatically format, schedule, and cross-publish across Hashnode, Dev.to, Beehiiv, Bluesky, and Mastodon with canonical URLs intact.
docker compose up -d • Postgres • Redis • No vendor telemetry
title: "Inside the Distributed Content Queue"
canonical_url: "https://acme.dev/blog/distributed-queue"
tags: ["architecture", "devrel", "queues"]
targets:
hashnode: { canonical: true, draft: false }
devto: { series: "Q3 Launch", canonical: true }
beehiiv: { newsletter_template: "deep-dive" }
bluesky: { thread_split: "headings", max_posts: 4 }
---
When technical teams publish to Dev.to, Hashnode, and corporate blogs without automated canonical headers, Google splits page rank across scrapers. Bebop injects verified canonical tags directly into each platform payload...
{% github %} Liquid tagsVERIFIEDBuilt for the actual mechanics of technical publishing.
Buffer and Hootsuite don't understand Markdown, syntax highlighting, or canonical tags. Bebop is built specifically for developer blogs, newsletters, and launch weeks.
Automatic Canonical URL Preservation
Cross-posting to Dev.to and Hashnode shouldn't cannibalize your primary blog's Google ranking. Bebop automatically compiles and verifies canonical link headers across every platform payload.
canonical_url: "https://yourdomain.dev/blog/launch"
published: true
series: "Release Week 2026"
Markdown Thread Splitting
Turn deep technical articles into native Bluesky and Mastodon threads without manual copy-pasting. Splits on headings and paragraphs while maintaining context.
Campaign-First Rollouts
Launches are multi-day sequences, not isolated blog posts. Coordinate announcement posts, deep-dives, benchmark releases, and newsletter recaps in one graph.
Automated Retry Queue & Rate Limiting
Third-party platform APIs fail, timeout, and hit rate limits unpredictably. Bebop's queue worker handles automated backoff, token refreshing, and failure alerting.
From local Markdown to multi-channel dispatch.
A single deterministic pipeline that connects your drafts, editorial reviews, and destination APIs.
Compose in Markdown
Write in standard Markdown with YAML frontmatter. Organize your launch assets, code snippets, and release timeline together.
Inspect Payload Diffs
Preview exact platform adaptations before publishing: Hashnode drafts, Dev.to canonical headers, Beehiiv email templates, and Bluesky thread splits.
Automated Dispatch & Retries
Publish immediately or queue across coordinated release windows. Background workers handle API retries, rate limits, and status monitoring.
Two editions. Complete sovereignty. Zero lock-in.
Host the GNU AGPLv3 core on your own infrastructure, or launch on Bebop Cloud for managed real-time collaboration and edge delivery.
Bebop Community Edition
Self-host on your own VPS, Docker container, or private cloud. Full sovereignty over your PostgreSQL data, secrets, and outbound network.
Bebop Cloud
For technical content teams and marketing squads who want an instant collaborative workspace with zero ops overhead.
Engineered for transparency. Built to inspect.
How Bebop compiles, queues, and dispatches your technical campaigns under the hood—and answers to common questions from engineering and DevRel teams.
Git / Markdown Drafts
Source & Campaign Graph
- ›Standard .md / .mdx + YAML
- ›Multi-post release timeline
- ›Local or multiplayer editor
Bebop AST Compiler & Canonical Engine
Transform & Verification
- ›Remark / Rehype AST transforms
- ›Live canonical_url verifier
- ›Semantic social thread splitter
Postgres + Redis BullMQ Worker
State & Resilient Queue
- ›PostgreSQL 15+ (Prisma ORM)
- ›BullMQ scheduled dispatch
- ›Auto-backoff & rate-limit guard
Destination Adapters
Multi-Channel Syndicate
- ›Hashnode & Dev.to GraphQL/REST
- ›Beehiiv newsletter payloads
- ›AT Proto (Bluesky) & Mastodon
Frequently Asked Questions
6 technical specificationsPositioningHow does Bebop differ from Ghost, WordPress, or Buffer?
Ghost and WordPress are monolithic publishing destinations designed to host a single publication, while Buffer is built to schedule short social blurbs. Bebop is a multi-channel campaign orchestrator engineered specifically for technical content. It understands Markdown ASTs, fenced code blocks, semantic thread splitting, and cross-posting with canonical SEO URLs intact—Bridging your primary engineering blog, developer communities, newsletters, and federated social networks in a single release graph.
IntegrationCan I use Bebop alongside my existing Astro, Next.js, or Hugo blog?
Yes—that is one of the most common workflows. Your Git-backed static site (Astro, Next.js, Hugo, Eleventy, or Fumadocs) remains the primary canonical source of truth on your domain. Once your primary post is live, Bebop verifies the live canonical URL and automatically syndicates adapted payloads to Dev.to, Hashnode, Beehiiv, Bluesky, and Mastodon with `canonical_url` headers pre-populated so search engines credit your main domain.
LicensingWhat does the GNU AGPL-3.0 license mean for my team and content?
Your content, Markdown files, custom workflows, and campaign analytics belong 100% to you with zero restrictions. Using Bebop internally within your company or team—whether on a private VPS or Bebop Cloud—does not require you to open-source your blog, website, or proprietary adapters. The GNU AGPL-3.0 copyleft provisions only apply if you modify Bebop's core source code and offer that modified CMS to third parties as a hosted network service.
Self-HostingWhat is required to self-host Bebop Community Edition?
Bebop Community Edition deploys via a single `docker compose up -d` stack containing the Node.js/Bun web and worker runtime, PostgreSQL 15+ for relational state, and Redis for the BullMQ scheduling and retry queue. The entire stack idles under 350MB of RAM and runs comfortably on any $5–$10/month VPS (Hetzner, DigitalOcean, Fly.io, Railway) or internal Kubernetes cluster.
SecurityHow are platform API keys and OAuth tokens secured?
In Self-Hosted mode, third-party API keys and OAuth refresh tokens never leave your infrastructure; they are encrypted at rest in your PostgreSQL instance using AES-256-GCM derived from your local environment secret key. In Bebop Cloud, credentials are encrypted via an isolated KMS-backed secret vault with strict per-workspace key rotation and scoped least-privilege access during worker execution.
ExtensibilityCan I write custom destination adapters?
Yes. Every publishing target in Bebop implements a clean, modular TypeScript `DestinationAdapter` interface (`validateConfig`, `compilePayload`, `publish`, and `getStatus`). You can easily author custom adapters for internal Slack/Discord launch notifications, Discourse forums, custom webhook pipelines, or proprietary enterprise CMS endpoints.
Request access to Bebop Cloud.
Want managed multiplayer sync, automated background publishing, and zero server maintenance? We're onboarding technical teams in weekly cohorts. (Prefer to self-host? Grab the open source core on GitHub).
You're on the list!
We've received your request. We'll send your invite code directly to your inbox as spots open.