Write it once.
Post it twelve places.
One Markdown source becomes every format each platform wants — BBCode, SoFurry HTML, AO3/SquidgeWorld work skins, print-ready PDF — and posts where you tell it to. Nothing goes live without your confirmation.
Posting one chaptered story to Inkbunny, SoFurry, AO3, FurAffinity, and SquidgeWorld means juggling five formats, five tag systems, five login sessions, and remembering whether each platform wants Markdown, BBCode, or CSS-scoped work-skin HTML.
PawPoller does it once.
Three steps. One source of truth.
Write in Markdown
A single MASTER.md per story, with HTML-comment anchors marking the title, byline, warnings, body, and any inline semantic blocks (text messages, phone calls). An in-app editor with a toolbar inserts them for you.
Regenerate every format
One click rebuilds BBCode, SoFurry HTML, styled HTML, SquidgeWorld work skins, and PDFs. WeasyPrint does the heavy lifting on Linux; Edge handles it on Windows. All generated files land in the same folder as your MASTER.md.
Publish with confidence
The publish-check matrix shows every chapter-platform combination at a glance. Dry-run to see what would post, or confirm and push. Retry queue handles transient failures; drift detection flags stale posts months later.
Built for the way fiction actually ships.
Every feature exists because a writer complained about something. Format conversion, per-chapter everything, tag dialects per platform, drift detection: not generic CMS features, but the specific pain points of publishing stories.
Multi-format conversion
Your MASTER.md becomes BBCode for Inkbunny, SoFurry HTML, work-skin styled HTML for AO3 and SquidgeWorld, and a print-ready PDF, all in one regeneration pass.
Chaptered posting
Split a multi-chapter novel automatically. Each platform gets the right flavour: AO3 creates a work plus chapters, Inkbunny posts a single submission, SoFurry pushes a chaptered thread.
Publish-check matrix
One grid shows every chapter against every platform. Red cells need attention, green cells are posted, amber cells have drifted from your source file. Click to fix inline.
Collections
Bundle one piece — its story, every gallery post and announcement across all nineteen platforms — into a single master, with pooled analytics, merged tags and all its cross-platform links in one place.
Same-piece linking, no AI
PawPoller spots the same artwork posted to different sites — by title and by a native perceptual hash of the actual pixels — and offers to group them in one click. Runs locally; no AI, no cloud, no embeddings.
Per-chapter tags & thumbnails
Platforms that allow per-chapter metadata (Inkbunny, FA) get their own tag sets and chapter covers. The rest fall back to story-level gracefully.
Tag database & validation
4,600+ validated tags with per-platform rules. SoFurry uses spaces, FurAffinity uses underscores; you tag once and PawPoller reformats per target.
Drift detection
Edit a chapter six months after publishing and PawPoller flags every platform where the posted copy diverged from your source. One click per cell to republish just the stale ones.
Encrypted credential vault
Optional Fernet-encrypted store for platform credentials, keyed against your OS keyring or a dotfile. Plaintext settings.json stays credential-free.
Import what you already have
Point PawPoller at an existing Inkbunny, SoFurry, or FurAffinity story URL and it pulls the content, converts to Markdown, and sets up the folder. No retyping.
See exactly what will post.
Edit once on the left; every derived format updates. The publish-check matrix shows every chapter against every platform before a single thing goes out.
Markdown source on the left with semantic anchors (<!-- @title -->, <!-- @warning -->, <!-- @disclaimer -->). Rich preview, Clean HTML source, and HTML render side by side. Edit once; every derived format stays in sync.
Chapter × platform matrix shows where every chapter stands: ready, posted, drifted (local file changed since upload), blocked (validation failure), or not-supported. Hit "Publish all new" once and the matrix walks every cell.
Twelve places it posts.
Six fiction archives (Inkbunny, FurAffinity, SoFurry, Weasyl, AO3, SquidgeWorld), three art galleries (DeviantArt, Itaku, e621), Bluesky for announcements and Instagram for photo posts. FurAffinity posting runs desktop-only because of its datacenter-IP block; a few targets are still undergoing testing.
PostyBirb is great, for illustrators.
PawPoller takes the same "one source, many platforms" idea and rebuilds it for the specific pains of publishing chaptered fiction. Different tool, different audience, same respect for multi-platform posting.
| PostyBirb | PawPoller | |
|---|---|---|
| Content type | Illustrations | Chaptered fiction |
| Per-post unit | A single image + description | A whole story with N chapters |
| Format conversion | Text descriptions | BBCode, HTML, work-skin CSS, PDF |
| Per-chapter metadata | N/A | Tags, descriptions, thumbnails per chapter |
| Drift detection | N/A | Flags stale posts when the source changes |
| Analytics | None | Views, faves, comments over time |
| Primary audience | Visual artists | Fiction writers |
If you post illustrations, go to postybirb.com. It's genuinely the right tool.
Stop reformatting the same story six times.
Free, MIT licensed, local-first. Native desktop builds for Windows and Linux, or self-host with Docker.