
Building Our Updates CMS: When You Build to Ship, Not to Plan
Last Monday, I set out to build a simple content management system for our Updates section. The goal was straightforward: make it easy for Olya (our operations lead) to post quick brand observations without touching Hugo or Git.
In less than a day, I had a polished, database-integrated CMS deployed and running. But somewhere between the first commit and the last deployment, I realized something: I wasn’t building this for Olya. I was building it for me.
The “Make It Easy” Trap
Here’s the founder delusion I fell into: “My team needs simpler tools.”
Reality check? I needed simpler tools.
As a solo technical founder wearing every hat—CEO, CTO, content producer, database architect—I was drowning in context switching. Writing an update meant:
- Open VS Code
- Create a new Markdown file
- Format YAML front matter correctly
- Add taxonomy tags (markets, sectors, attributes, signals)
- Link to related brands/founders/insights by slug
- Remember to add a hero image path
- Commit to Git
- Push to trigger deployment
- Wait 2-3 minutes for Cloudflare Pages
- Check the live site
Total time: 15-20 minutes for a 3-minute read.
No wonder I wasn’t posting updates.
What I Actually Built
The Updates CMS isn’t fancy. It’s a React Admin interface connected to Supabase with five key features:
- Taxonomy autocomplete - No more looking up valid market/sector slugs
- Related content linking - Dropdown search for brands, founders, insights articles
- Image upload with preview - Drag-drop hero images + gallery support
- Markdown editor with live preview - Write naturally, see results instantly
- Status management - Draft → Scheduled → Published workflow
But here’s the magic: it captures everything in the database.
The Real Win: Data Integrity
Pre-CMS, our content lived in three places:
- Hugo static files (source of truth)
- Supabase database (partial sync via scripts)
- My brain (metadata, relationships, context)
The Updates CMS changed the game. Now every update automatically:
- Gets proper taxonomy classification
- Links to related entities (with UUID relationships, not just slugs)
- Stores author metadata consistently
- Tracks version history
- Preserves content relationships for future features
This isn’t just “easier posting.” It’s structured knowledge capture.
The Solo Developer Reality
Building this CMS taught me something about solo entrepreneurship: your tools shape your output.
When creating content requires 10 manual steps, you create less content. When linking to a brand requires remembering its exact slug, you skip the link. When taxonomy tagging feels tedious, you under-tag.
Bad tools create friction. Friction creates inconsistency. Inconsistency creates technical debt.
Good tools don’t just save time—they improve quality by making the right thing easier than the wrong thing.
What’s Next
This CMS is live and powering our Updates section right now. But it’s also a prototype for something bigger:
- Founder profiles with relationship tracking
- Brand data enrichment workflows
- Insights article production pipeline
- Cross-content intelligence (which founders mention which brands?)
When you’re building an intelligence platform about Global South brands, your internal tools ARE your product.
The Updates CMS was day one. There’s a lot more to build.
Meta note: This update was written in the Updates CMS, published with one click, and deployed automatically to all three languages (EN/RU/ZH). Total time: 8 minutes. That’s the point.
Want to follow the build journey? I share technical decisions and development updates on LinkedIn and Twitter/X.
