If you’ve ever used WordPress or Medium, you know the drill: write a post, pick a future date, hit schedule. The post appears magically on that date. You don’t think about it.
Then you vibe code yourself a blog with Astro - which feels amazing, by the way - and realize you have no idea how to do that scheduling thing. There’s no dashboard. No “schedule” button. Claude built you a beautiful static site, but now you’re wondering: wait, how do I queue up posts instead of everything going live the moment I push?
Claude Code is basically your CMS now. So how do you get it to handle the scheduling part too?
HOW ASTRO HANDLES THIS BY DEFAULT
When you ask Claude to set up an Astro blog, it’ll probably add a draft field to your posts. That’s straight from Astro’s docs, so Claude defaults to it.
The workflow looks like:
- Set
draft: truewhile writing - Change to
draft: falsewhen ready to publish - Push to deploy
This works, but it’s manual. Every post needs you to remember that flag. And there’s no real “scheduling” - it’s more like “publish whenever I remember to flip this switch and push.”
WHY STATIC SITES ARE DIFFERENT (AND WHY I PREFER THEM)
Quick context if you’re coming from WordPress-land: database-backed sites have a server that checks “is it time to show this post yet?” every time someone visits. Scheduling is built in.
Static sites like Astro don’t work that way. When you deploy, your whole site gets turned into HTML files that immediately go live. No server checking anything - just files sitting on Vercel or Netlify.
So if you want a post to appear on a future date, something needs to trigger a fresh deploy on that date. Otherwise those HTML files just sit there unchanged.
WHY I PREFER STATIC Database setups are a nightmare to debug when you’re vibe coding. Connection errors, migration issues, hosting configuration - it’s a rabbit hole of technical pain. For something simple like a blog with a reasonable number of posts, you can use Claude to set up automation on a static site and skip all that database frustration entirely.
GETTING CLAUDE TO AUTOMATE PUBLISHING
Here’s the approach: instead of manually toggling a draft flag, we have Claude set things up so the post’s date controls visibility. Future date = hidden. Today or earlier = visible.
Then Claude sets up a scheduled task that triggers a fresh deploy every morning. When a post’s date arrives, the next deploy picks it up and it goes live automatically.
WHAT’S A CRON JOB A cron job is just a scheduled task - like setting an alarm that runs code instead of waking you up. In this case, it’s an alarm that tells Vercel “rebuild the site” every morning at 6am.
The workflow becomes:
- Write article using a Claude Command (we’ll link to setting those up in another post)
- Tell Claude what date you want it published
- Push and forget
No flags to remember. Posts queue up and appear on their scheduled dates.
To set this up, give Claude a prompt like:
I want to automate scheduled publishing for my Astro blog on Vercel. Set it up so posts with future dates stay hidden, and add a daily cron job that rebuilds the site every morning at 6am Pacific. Walk me through any environment variables I need to configure in Vercel.
Claude will handle the code changes, create the cron endpoint, and tell you what to add in your Vercel dashboard.
CHECKING THAT IT WORKS
Once deployed, ask Claude:
Test if my cron endpoint is working. Hit it and tell me what response you get.
Claude should report back 401 Unauthorized. That’s actually correct - it means the endpoint exists and is protected. Vercel’s scheduled task sends the right credentials when it runs the real job.
You can also check Vercel’s dashboard: go to your project → Settings → Crons. Your scheduled job should be listed there.
IS THIS OVERKILL?
Depends on how you’re working.
If you post occasionally and don’t mind the manual draft toggle, the default approach is fine. Simple, no extra setup.
But if you:
- Hate or struggle with database-backed blog setups
- Want to queue up a backlog of posts and have them drip out over time
- Plan to coordinate with email notifications (posts go live → subscribers get notified)
- Manage multiple content sites without tracking what’s published where
…then this saves real mental overhead. Write it, date it, push it, forget it.