COVERAGE
4 default. 3 SEO. 4 video. 5 extended.
Springy ships 16 platforms — and as of v0.14, every one has a native, voice-critiqued generator (plus a Carousel generator for LinkedIn/Instagram swipe decks). The default cascade still fans out one anchor essay into four text platforms — LinkedIn, X-thread, Threads, Bluesky. SEO, video, and extended tiers are opt-in by flag, so existing runs don't change.
Default cascade
4 platformsRuns on `cascade --top` with no flags. Generator + API publish + critique loop wired. The four-text default.
| Platform | Publish method | Auth / setup | Notes |
|---|---|---|---|
| API | OAuth 2.0 | 150–300 words ideal | |
| X (Twitter) | API | OAuth 2.0 PKCE | 5–8 tweet thread |
| Bluesky | API | App password | ≤300 chars/post; easiest first platform |
| Threads | API | Meta Graph API | Meta dev-app required |
SEO opt-in (--seo)
3 platformsLong-form generators that run only when you pass `--seo`. Medium, Dev.to, and the Substack newsletter generator (subject + body, with the long-form vulnerability gate).
| Platform | Publish method | Auth / setup | Notes |
|---|---|---|---|
| Medium | API | Integration token | Long-form draft; runs with --seo |
| Dev.to | API | API key | Markdown + tags; runs with --seo |
| Substack | Browser | Browser session | Newsletter generator (subject + body, vulnerability-gated); browser publish |
Video opt-in
4 platformsThe generator drafts the script, caption, title and tags. For the MP4: drop one alongside the draft, or opt into a renderer via `SPRINGY_VIDEO_RENDERER` — HeyGen (text-to-video from the script) or OpusClip (clips a source video). Opt in with `--platforms reel,tiktok,youtube,rumble`.
| Platform | Publish method | Auth / setup | Notes |
|---|---|---|---|
| Instagram Reel | API + Browser | Meta + browser fallback | Script + caption generated; MP4 from your file or a renderer |
| TikTok | API | Content Posting API | Script + caption generated; MP4 from your file or a renderer |
| YouTube | API | Google OAuth | Title + description + tags + hook generated; you supply the video |
| Rumble | Browser | Browser session | Title + description + tags generated; needs an MP4 |
Extended opt-in (--platforms)
5 platformsNative, voice-critiqued generators that publish to community + niche platforms. Kept out of the default fan-out so existing runs don't change — opt in with `--platforms reddit,discord,…`. Targeting details (subreddit, Pinterest board/image, Quora question URL) come from the draft frontmatter.
| Platform | Publish method | Auth / setup | Notes |
|---|---|---|---|
| Discord | Webhook | Channel webhook URL | Community-message generator; webhook publish |
| API + Browser | OAuth + RSS + Playwright fallback | Value-first post generator; subreddit per draft | |
| Telegram | API | Bot API | Broadcast generator; channel publish |
| Quora | Browser | Browser session | Answer generator; question URL per draft |
| API | OAuth 2.0 | Keyword pin generator; needs board + image |
API-first, browser fallback when there isn't one.
Where a platform exposes a usable API, springy uses it — faster, more reliable, better error handling. Where it doesn't (Substack / Rumble / Quora / Instagram Reel), springy uses Playwright to drive a real browser session you logged into once via springy browser:login <platform>. Session cookies are stored at 0o700 under config/.browser-data/.
Beyond publishing
v0.14 closed the loop from publish back to generation — all local, no extra model spend:
- Hook-performance learning. Each post's hook is classified at publish time; engagement is aggregated by formula and the winning hook styles are spliced back into the generator prompt per platform.
- Evergreen recycling.
springy evergreenre-surfaces proven past posts (dry-run first;--liveto enqueue). - Analytics.
springy reportrolls up engagement, top hooks, best posting hours, the A/B variant leaderboard, and spend — or open the local dashboard withspringy ui(Hooks + Evergreen pages included). - Automated engagement polling.
springy engage pollcollects comments for LinkedIn / Bluesky / Reddit on a schedule; reply drafting is opt-in and sending stays behind a human gate.
What's NOT shipped yet
- Text-to-video as a default. The Reel/TikTok/YouTube/Rumble generators draft the script; rendering is opt-in via
SPRINGY_VIDEO_RENDERER(HeyGen text-to-video, or OpusClip to clip a source video). Without it you provide the MP4. A built-in Remotion caption-deck renderer is still on the roadmap. - Carousel rendering. The Carousel generator drafts slide copy + a feed caption; turning slides into images and uploading the deck isn't wired yet (generation-only for now).
- Hosted/brokered OAuth as the default. Nango broker is opt-in (
SPRINGY_AUTH_BROKER=remote); most platforms still require a per-platform developer-app registration today.
Want a platform that isn't here?
Two paths, in order of how much time you want to spend:
- File a platform-request issue. Include a link to the API docs, the auth model (OAuth / API key / browser only), and whether you'd want to use it yourself.
- Write a plugin. Most simple text-posting platforms are 150-200 lines: a client, a setup flow, and a publisher. The plugin interface is documented, and
plugins:new <name>scaffolds everything.