Inspiration
I kept watching solo creators (indie hackers, YouTubers, LinkedIn builders) struggle with the same problem. They would open ChatGPT, ask for content ideas, get a wall of text, copy-paste it into Notion, and still have no real plan. The problem is not AI access. It is structured output you can actually execute on.
I wanted to build something that takes your raw creator identity and turns it into a visual strategy you can act on immediately, not just read and forget.
What it does
CreatorOS takes your niche, audience, goals, tone, and writing samples and transforms them into a fully structured content strategy. It streams live, word by word, and automatically builds a color-coded Miro board.
Key features:
- Live AI Streaming: watch your strategy generate in real time via SSE
- Color-coded content pillars: structured post ideas with hooks, formats, and summaries
- AI Content Coach: chat inside every idea card to build outlines, get opening lines, and develop the concept further
- Auto Miro Board: programmatically creates a visual board with a hero banner, pillar columns, native cards, and a stats footer
- Brand Voice Memory: saves your creator profile so returning visits pre-fill automatically
How I built it
Architecture:
- Next.js 14 (App Router) handles the orchestration API with Server-Sent Events for real-time streaming
- Featherless AI runs Llama 3.3 70B Instruct with an OpenAI-compatible streaming API
- Zod validates the LLM JSON output with a 2-retry loop that feeds schema errors back to the model
- Miro REST API programmatically builds the board using shapes with exact hex colors, native cards with cardTheme, and tinted column frames
- CREAO informed the brand memory architecture and intake flow design. The localStorage brand brain system was directly inspired by CREAO's persistent memory patterns
- Deployed on Vercel
Model fallback chain: Llama 3.3 70B -> Qwen 32B -> Qwen 14B -> Qwen 7B -> Mistral 7B. The catch wraps the entire for-await loop and not just the create call, because Featherless capacity errors throw during stream iteration.
Challenges I ran into
1. SSE and model fallback: capacity errors from Featherless throw during stream iteration, not during the API create call. Standard try/catch around create() does not catch them. I had to wrap the entire streaming loop in the retry chain and send a reset event to the client to clear partial tokens.
2. Miro API quirks: borderWidth of zero throws a 400. fontColor is not a valid style property, so I had to use inline HTML span tags with style attributes inside the content field. On top of that, Miro's WAF blocks Vercel's IP range entirely, so I solved it by triggering board creation client-side from the browser instead.
3. LLM JSON reliability: Llama occasionally wraps output in markdown code blocks or adds trailing text. I built a cleaning step that strips the json wrappers before Zod validation, with error messages fed back to the model on retry.
Accomplishments I'm proud of
- A genuinely working end-to-end product. Fill a form, watch a strategy stream live, click into ideas, chat with an AI coach, and open a real Miro board
- The Miro board looks like something a designer made, with a dark hero banner, exact hex-colored pillar headers, native Miro cards, and a stats footer
- Brand voice memory that actually persists your creator profile across sessions
What I learned
Real streaming with error recovery is harder than it looks. Miro's API is powerful but very strict about what it accepts. The difference between a demo and a product is handling every edge case including model failures, rate limits, malformed JSON, and duplicate submits, not just the happy path.
What's next for CreatorOS
- Full CREAO integration for multi-session brand memory and team collaboration
- Scheduled content calendar generation from the strategy
- Direct publish to Notion or Linear from the idea workspace
- Multi-platform format variants for LinkedIn vs YouTube vs newsletter per idea
Built With
- creao
- devswarm
- featherless-ai
- llama-3.3-70b
- miro-api
- mobbin
- next.js
- shadcn/ui
- tailwind-css
- typescript
- vercel
- zod
Log in or sign up for Devpost to join the conversation.