Now it's REALLY easy to have a blog (with Claude Code and Astro)
Introduction
Back in 2021, I wrote a post about how easy it was to have a blog with Jekyll and Github Pages. And it was, compared to the previous years when setting up a blog required Docker, Ruby on Windows (spoiler: nightmare), and a rosary of mysterious commands. But let’s be honest, it was still a pain in the ass.
Fast forward to November 2025. I’ve migrated this blog from Jekyll to Astro. The best part? Claude Code, Anthropic’s CLI that connects Claude to your terminal and editor, did practically everything. And I’m not exaggerating. While I was having coffee, Claude:
- Migrated 63 blog posts from Jekyll to Astro format
- Migrated 77 book notes
- Implemented multi-language support (English/Spanish)
- Redesigned the homepage with a professional two-column layout
- Added excerpt support and better markdown rendering
- Configured emoji shortcodes
- Improved SEO with canonical URLs and OpenGraph
- Set up RSS feeds and sitemap
- Wrote the migration scripts in Python
All in a few hours, across multiple PRs, with clean and functional code. We’re in a different league now.
The problem with Jekyll
Jekyll is great… until it’s not. These were my recurring headaches:
Docker or die
To develop locally, I needed Docker. Want to change a comma? Wait 30 seconds for the build to finish. Spotted a typo? Another 30 seconds. The development experience was like driving with the handbrake on.
The theme I never updated
I was using Minimal Mistakes, an excellent theme, but I had forked it years ago and never updated it. Why? Because I had made custom changes for multi-language support, and updating it meant resolving conflicts and redoing all that logic with Liquid (Liquid, that template language that’s in my TOP 5 most hated languages).
The developer’s black hole
You know what I’m talking about. That moment when you want to write a post but you start “improving the blog infrastructure”. Six hours later you’ve tried Gatsby, Next.js, Hugo, Eleventy… and haven’t written a single line of content.
Jekyll was the perfect breeding ground for falling into that black hole. There was always something to fix, always something obsolete.
Enter Claude Code
Claude Code is basically Claude (Anthropic’s AI model) but with superpowers: it can read files, execute commands, search code, create PRs, and most importantly, act autonomously on complex tasks.
I told it something like: “I want to migrate this blog from Jekyll to Astro. Keep the multi-language support, all the posts, the book notes, and improve the homepage if you can. Oh, and make it faster than Jekyll.”
A few hours later, I had a blog running on Astro with all migrations done.
What is Astro and why is it cool?
Astro is a modern framework for static sites. Its philosophy is “zero JavaScript by default” - it only sends JavaScript to the browser if you actually need it. For a blog like this, it’s perfect:
- Instant builds: From 30 seconds with Jekyll to 2 seconds with Astro
- No Docker: npm install and you’re done
- TypeScript out of the box: Because it’s 2025 and typing is your friend
- Content Collections: Content management with automatic type validation
- Markdown and MDX: All the power of React in markdown if you need it
- Brutal performance: 100/100 on Lighthouse without effort
What Claude Code did for me
Let me be specific because this is important. It wasn’t simply “copy these files from here to there”:
1. Intelligent migration scripts
It wrote two Python scripts (migrate_posts.py and migrate_books.py) that:
- Parsed Jekyll frontmatter
- Converted dates to Astro format
- Maintained tags and metadata
- Preserved markdown content exactly as it was
- Validated that everything worked
2. Multi-language support preserved
Remember that in Jekyll I had set up a hacky but functional system for multi-language? Claude not only migrated it, it improved it. Now the system is cleaner, uses Astro’s Content Collections, and the language selector is more elegant.
3. Design improved without asking
I told it to migrate the blog and it decided on its own to redesign the homepage. It created a two-column layout with:
- Professional profile in a sidebar
- Grid of posts with excerpts
- Better visual hierarchy
- Social media links
- Responsive design
Did it overstep its bounds? Maybe. Did I like the result? Absolutely.
4. Organized multiple PRs
It didn’t dump all the code at once. It created multiple PRs, each with a specific goal:
- PR #1: i18n support
- PR #2: External links fix
- PR #3: Emoji support
- PR #4: Homepage redesign + excerpts
Each PR with its description, test plan, and clean commits. More professional than many developers I know.
The numbers don’t lie
Jekyll vs Astro comparison on this blog:
| Metric | Jekyll | Astro |
|---|---|---|
| Build time | ~30s | ~2s |
| Dependencies | Docker + Ruby + Gems | npm |
| Local setup | 15 min (if you’re lucky) | 30 seconds |
| Hot reload | Slow | Instant |
| Lighthouse score | 85-90 | 100 |
| JavaScript on homepage | ~100KB | ~5KB |
Astro wins by a landslide.
The future of web development
This is what I find fascinating. I haven’t written a single line of the migration. I’ve only given instructions, reviewed PRs, and made some minor adjustments. Claude Code has:
- Understood the Jekyll project structure
- Researched Astro documentation
- Written migration scripts
- Configured the build
- Implemented new features
- Created React/Astro components
- Deployed to Vercel
Is it perfect? No. There were things to review and adjust. But 90% of the tedious work was done by AI. I was able to focus on:
- Architecture decisions
- Validating that everything worked
- Design tweaks
- Writing content (like this post)
There are no more excuses
If in 2021 there were no excuses not to have a blog with Jekyll, now with Astro + Claude Code it’s downright ridiculous not to have one.
You can literally tell Claude: “Create a blog with Astro, with these sections, this style, and deploy it to Vercel” and in an hour you have it.
The bottleneck is no longer the technology. It’s creating valuable content. And that, my friend, is still human work (for now 😅).
Dodging the black hole (again)
In my 2020 post about multi-language in Jekyll I talked about the “developer’s black hole” - that moment when you get lost updating the blog’s technology instead of writing content.
This time I dodged it. How? By delegating the technical work to Claude Code. I didn’t fall into the trap of “I’m going to learn Astro from scratch and rewrite everything myself”. I told Claude what I wanted and it took care of the heavy lifting.
Did I learn about Astro in the process? Yes, by reviewing the code and understanding the decisions. But without wasting days on it. I delivered value - a renewed and functional blog - instead of being stuck in a half-finished project.
Conclusion
In 2014 Jekyll was revolutionary. In 2021 it was convenient. In 2025, with tools like Astro and Claude Code, having a technical blog is trivial.
There are no technical barriers. There are no excuses of “I don’t have time to set up the environment”. The only question left is: do you have something to say?
If the answer is yes, this is the best time to share it.
PS: This post was written by a human (me) but reviewed and improved by Claude. The meta is real.