The Problem
I use Arvow to help me write blog posts. It’s great at generating content, but the publishing workflow was manual—copy the markdown, create a file, commit to GitHub, wait for deploy. Boring.
I wanted a one-click flow: write in Arvow → click publish → live on my blog.
The Architecture
Here’s the flow:
┌─────────┐ ┌────────────────────┐ ┌────────────┐ ┌─────────┐
│ Arvow │ ──── │ Cloudflare Worker │ ──── │ GitHub │ ──── │ Vercel │
└─────────┘ └────────────────────┘ └────────────┘ └─────────┘
│ │ │ │
Publish Validate secret Store .md file Build Hugo
article Transform to Hugo Trigger deploy Go live!
The whole thing took about 30 minutes to set up, and now I never touch the terminal to publish.
How Each Piece Works
1. Arvow → Cloudflare Worker
When I click “publish” in Arvow, it fires a webhook to my Cloudflare Worker with the article title, content (in markdown!), tags, and a thumbnail.
2. Cloudflare Worker → GitHub
The Worker does three things:
- Validates the secret header (so randos can’t spam my blog)
- Wraps the content in Hugo frontmatter
- Creates the file in my GitHub repo via the REST API
It’s about 100 lines of JavaScript. The Worker runs on Cloudflare’s edge network, so it’s fast and free.
3. GitHub → Vercel
My blog repo is connected to Vercel. Any push to main triggers an automatic deploy. So the moment the Worker creates the file, Vercel starts building.
4. Vercel → Live Blog
Vercel runs Hugo, generates the static site, and deploys. About 30 seconds after I click “publish” in Arvow, the post is live.
Why I Love This
- Zero friction — Write, click, it’s live
- Git history — Every post is a commit I can revert
- Free — Cloudflare free tier + Vercel free tier + GitHub free
- Extensible — Could add image optimization, social sharing, whatever
What’s Next
I’m thinking about adding:
- Automatic tweet when a post publishes
- Image upload to Cloudflare R2
- A “schedule for later” feature using Cloudflare Queues
For now, this setup is exactly what I needed. Sometimes the best automation is the one you can build in an afternoon.
Want the code? Hit me up on Twitter.