Creating polished blog posts is traditionally time-consuming and challenging. The gap between having great ideas and turning them into well-structured content can be significant. Robo Blogger addresses this challenge by transforming the content creation process. The key insight is that our best ideas often come when we're away from the keyboard - while walking, commuting, or right after a meeting. Robo Blogger leverages this by:
- Capturing Ideas Naturally: Instead of starting with writing, simply speak your thoughts using any voice-to-text app
- Maintaining Structure: Convert raw ideas into polished content while following proven blog post patterns
- Grounding in Documentation: Optionally incorporate reference materials to ensure accuracy and depth
The workflow is streamlined to three steps:
- Voice Capture: Record your thoughts using any dictation app (e.g., Flowvoice)
- Planning: Claude 3.5 Sonnet converts your dictation and structure into a coherent plan
- Writing: Automated generation of each blog section following the plan, using your dictation and any documentation links
This approach builds on concepts from our previous Report mAIstro project, but specifically optimized for blog post creation. By separating idea capture from content structuring, Robo Blogger helps maintain the authenticity of your original thoughts while ensuring professional presentation.
Set API keys for the LLM of choice (default is Anthropic Claude 3.5 Sonnet):
cp .env.example .env
Clone the repository and launch the assistant using the LangGraph server:
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/langchain-ai/robo-blogger.git
cd robo-blogger
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.11 langgraph dev
This will open LangGraph Studio in your browser.
The only required input is the name of the audio dictation file (e.g., audio_dictation.txt
in notes
folder). You can use any audio-to-voice dictation app (e.g., Flowvoice) to create this file.
notes/audio_dictation.txt
Two additional inputs are optional:
- A list of URLs to documentation that you want to use to help write the blog post.
- A template for the blog post structure.
In the configuration
tab, you can provide template for the blog post structure (see ## Customization below for examples).
We've found that blog posts typically follow a consistent structure. For example, we have:
- Product update: https://blog.langchain.dev/langgraph-cloud/
- Perspective: https://blog.langchain.dev/what-is-an-agent/
Templates for different types of blog posts can be passed in as a configuration option.
URLs provided:
- "https://langchain-ai.github.io/langgraph/concepts/",
- "https://langchain-ai.github.io/langgraph/concepts/langgraph_platform/",
- "https://langchain-ai.github.io/langgraph/concepts/deployment_options/"
Blog structure provided:
Audio dictation provided:
Resulting blog post:
URLs provided:
- "https://langchain-ai.github.io/langgraph/concepts/high_level/",
- "https://langchain-ai.github.io/langgraph/concepts/agentic_concepts/",
- "https://www.deeplearning.ai/the-batch/issue-253/"
Blog structure provided:
Audio dictation provided:
Resulting blog post: