As an early-stage startup in the AI space, building in public is a good strategy. In practice, building in public means one thing: you need to show what you’re doing every day.
That includes:
- Social media updates
- Community announcements
- Ongoing product and engineering progress
It is not just launches or milestones but the day-to-day work.
The real problem: we didn’t know what to post
In many cases, our biggest challenge running our X account wasn’t consistency or tooling. It was much simpler:
We didn’t know what to post. Especially when you’re running an introverted team that focuses more on building than selling or sharing opinions. However, daily communication is already a form of creation. Yet none of that was being translated into something we could confidently share.
Inspiration doesn’t come from research. It comes from reality.
We eventually realized something obvious in hindsight:
Real inspiration comes from daily work, not from content planning or from what’s happening on X, where people keep talking about what’s hot or the latest research.
For us, the most honest signals were already there:
-
Slack
Daily discussions, trade-offs, decisions, and moments of clarity.
-
Notion
Documents being written, rewritten, and refined. Product thinking in motion.
-
GitHub
What we actually shipped, fixed, or changed. Not intentions, but execution.
This is what building in public is made of.
Turning the idea into an agent with VM0
VM0 is an agent builder. Instead of asking AI to “write tweets,” we gave it a more grounded task:
Observe what actually happened, organize it, and present it for human judgment.
Using VM0, we encoded this idea into an agent defined by AGENTS.md and vm0.yaml
The agent does the following:
Analyze Slack messages and GitHub activity to generate viral X (Twitter) posts for building in public, then sync to Notion.
The agent will:
1. Gather content from multiple sources:
- Slack channels (last 24 hours)
- GitHub org repos (recent commits, PRs, issues, releases)
2. Identify "building in public" themes:
- Product launches, technical wins, milestones
- Behind-the-scenes insights and decisions
- Architecture choices, performance work
- Failures, pivots, developer lessons
- Open source and community contributions
3. Craft 2–3 post variations per theme:
- Single posts or short threads
- Hook → Context → Value → CTA
- Concrete details, no filler
4. Generate a markdown report with scores and recommendations
5. Sync everything to a Notion database as drafts
This was not something I literally wrote myself. It was co-piloted through ongoing chats with VM0.
The runtime configuration is straightforward:
version: "1.0"
agents:
build-in-public:
provider: claude-code
instructions: AGENTS.md
skills:
- slack
- notion
environment:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NOTION_DATABASE_ID: ${{ secrets.NOTION_DATABASE_ID }}
The agent asks me to fill in table with those as a database
| Title | Content | Type | Status | Date | Source | Viralty score | Orginal content | Recommended | Priority |
|---|
After running the agent, I got the following:

Making it a daily habit with GitHub Actions
We then wired this agent into a scheduled GitHub Action following the VM0 workflow:
https://blog.vm0.ai/en/posts/vm0-github-action
Every weekday after work, we receive a report. A daily summary of what actually happened, translated into possible public narratives.
You can check out our team workflow. https://github.com/vm0-ai/team-workflows/tree/main/build-in-public

Human in the loop
However, we didn’t directly connect to the X API for auto-publishing. No auto-published posts. No content pushed blindly to X.
The agent didn’t make us post more. It made us pay more attention.
- We became more sensitive to the meaningful work we do every day, much like keeping a diary
- More deliberate about what deserved visibility
- More accountable for what we chose to say publicly
Before posting, I checked with our team:
- Is this okay to publish and let people know about it?
- Is it true?
- Is it solid?
- Are we okay to ship this?
- Is this for real?
Then I manually edited the post and clicked publish. X is full of bots. We refuse to be one.
We intentionally stopped short of full automation: Always a human in the loop.
AI is a co-pilot, not a spokesperson. X already has enough synthetic voices.
Building in public comes with responsibility
This is a good example of AI marketing, combining human judgment with an AI co-pilot. In this case, we use GitHub Actions for automation. We’re also actively building native cron jobs in VM0, so you’ll be able to build VM0 agents and schedule tasks directly.
Stay tuned.
Join the waitlist and make your own agents.
