Inspiration
Single-prompt blog generation gives generic, hallucinated posts with no structure or visuals. I wanted a real editorial press: research first, plan sections, write in parallel like journalists, revise, then illustrate — all autonomous.
What it does
Live: https://folio-blog-studio.streamlit.app/
- Enter a topic → get a full researched, illustrated blog post
- Multi-agent press run: Route (open/hybrid/closed-book) → Research (Tavily) → Plan (5-9 sections) → parallel section writers → Merge → Revise → Illustrate → Bind
- Live progress — every pipeline step streams to the UI
- AI diagrams — FLUX.1-schnell illustrations generated from captions, inserted under headings
- Shelf library — every story saved to SQLite with versioning, word count, duration, markdown export
- Editorial UI — light galley-proof design, regenerate / edit / delete with confirmation
How we built it
blog_studio_backend.py (self-contained pipeline + SQLite + progress) + blog_studio_frontend.py (Streamlit UI). LangGraph StateGraph with 6 nodes + fan-out workers. Mistral LLMs with dual-key failover via langchain-mistralai, Tavily for 5-10 parallel searches, FLUX.1-schnell via Hugging Face Inference API for images, SQLite blogs.db + local images/. Started from multi_agent_blog_writer.py (536-line standalone, stdout only, no UI/storage/images) then evolved to full app.
Challenges we ran into
- Parallel writers drifted in tone — fixed with shared plan + style prompt + merge pass
- Tavily rate limits on 10 parallel queries — added batching + fallback to closed-book
- FLUX timeouts on Streamlit Cloud — async illustrate + caption fallback if image fails
- Mistral 429s mid-press — dual-key retry (
MISTRAL_API_KEY+MISTRAL_API_KEY_2) - SQLite locking on concurrent runs — single-writer queue + versioning
Accomplishments that we're proud of
- True multi-agent system, not one prompt — routing + research + parallel writing actually works live
- Illustrated posts end-to-end with no manual step
- Persistent library with export — feels like a real studio, not a demo
What we learned
Planning matters more than writing — good section plans fix 80% of quality. Fan-out workers need strict merge/revise. Image + text pipelines fail differently, design fallbacks separately.
What's next
SEO scores + meta generation, tone presets, plagiarism/factuality check, multi-image layouts, export to Medium/Dev.to, collaborative editing.
Built with: Streamlit, LangGraph, Mistral AI, Tavily, Hugging Face FLUX.1-schnell, SQLite

Log in or sign up for Devpost to join the conversation.