Hello, springy.
#launch#building-in-public
I spent the last six months building a content pipeline for myself — something that lets me write one essay and have it fan out into LinkedIn, X, Bluesky, Medium, a Reel script, a TikTok script, and a handful of smaller platforms, without any of them sounding like ChatGPT slop. This week I cleaned it up and open-sourced it. It’s called springy.
What I needed, that nothing solved
I’m a network architect pivoting into AI, and the single hardest thing about building in public is that the building and the distribution compete for the same hour of the day. Every night, I’d sit down with something I wanted to say and end up spending 90 minutes re-writing it for six channels, each of which has its own cultural rules about length, voice, hashtag discipline, and what “good” looks like.
The options were:
- Schedulers (Buffer, Typefully): still write N versions. They just automate the timing.
- Generic AI SaaS: write one thing, watch it come out sounding like everyone else who’s ever used that SaaS.
- Raw LLM agent: write one thing, watch it drift off-brand or post something weird at 3am because you told it to “be creative.”
None of them did the specific thing I needed: take one anchor, preserve my voice, produce drafts that feel native to each platform, and let me approve everything before it goes live.
What springy actually is
A deterministic graph. One ranked opportunity → anchor essay (critique loop) → human gate → parallel fan-out → human gate → publish queue → API or browser fallback. It’s boring on purpose. No LLM decides which tool to call next. Every run takes the same path.
The interesting layer is voice. springy voice:seed reads your past approved posts, embeds them with Voyage-3, and stores them locally. Every future generation retrieves the 5 closest and conditions on them. You’re not writing in GPT-voice. You’re extending your own.
There’s a critique loop on every platform draft — 8 dimensions, 9 for long-form with a “vulnerability” check that rejects paragraphs where every sentence is a confident win. There’s a humanize pass that kills symmetric structures and transition-addiction. There are two human gates. There’s a cost budget you can cap.
Full architecture if you want to go deeper.
Why MIT, why now
I could have run this as a SaaS. I didn’t, for three reasons:
- The tool is the demo. Every install is a working example of what I’d build for a consulting client. A landing page wouldn’t get me that.
- I want to build more things. Springy has to keep working without my attention — open source + clear contribution docs makes that structurally possible.
- I use this every day. I can’t pretend to be a neutral vendor of a tool that’s part of my own workflow. If someone else builds a better critique engine on top of this, great. I’d rather live in a better ecosystem than gatekeep a worse one.
What’s rough
It’s alpha. 287 tests pass. No Windows support yet (good-first-issue filed). The “Sign in with ChatGPT” subscription path for Codex works for auth but the inference request shape is my best read of OpenAI’s Codex CLI — if that breaks, I’ll ship a patch. Three platforms (Rumble, Quora, Substack) are on the roadmap but not wired.
Orchestrator integration tests aren’t written yet. Browser-fallback tests aren’t either. Both are in the backlog. I’m shipping this with real gaps visible in the CHANGELOG because I’d rather have you discover them with me than discover them for you.
If you want to try it
The Quickstart gets you from zero to your first dry-run cascade in about fifteen minutes. You can run npx springy demo first with no API keys to see what the output looks like — it’s a 60-second offline tour.
If you do try it, the highest-signal thing you can do is tell me where you got confused. Not where it crashed — I can read a stack trace. Where you had to re-read a paragraph. That’s the data I need.
What’s next
Public launch once the first round of invited testers has run it against their own brands for a week. Newsletter when there’s something worth writing. More platforms as contributors ship them.
If you want to follow along, the repo is at github.com/andersonfda/springy. Star it, fork it, open an issue, post in Discussions — whatever fits. I’m around.
— Anderson
Questions or pushback? Open a discussion. Bugs in springy itself go to the issue tracker.