I migrated this very site to Astro
How I migrated my portfolio from Next.js on GitHub Pages to Astro on Cloudflare Pages — with help from AI.
I used to write code to create AI. Now, my AI writes my code.
If you told me a year ago that I would be writing a blog post about frontend frameworks, I would have not believe it. I’m a backend developer. My “stuff” is APIs, databases, and server logic — not the webpages. But here I am, writing about how I migrated my personal site from Next.js to Astro, and honestly? It was way easier than I expected.
This is also the first post on my new blog. Welcome aboard.
Why I Had a Next.js Portfolio in the First Place
I didn’t pick Next.js because I deeply understood its architecture or had strong opinions about React Server Components. I picked it because everyone was using it. As a backend developer trying to catch up with frontend trends, Next.js seemed like the safe, popular choice.
The portfolio itself was simple — just showcasing my projects, skills, and work experience. It deployed on GitHub Pages, and it worked fine. Then life happened, the project went on hiatus for about six months, and I didn’t touch it.
No regrets there. It served its purpose.
Astro + Cloudflare Partnership
Fast forward to recently. I was scrolling through Hacker News and saw headlines about Astro partnering with Cloudflare. My curiosity hit me, but I didn’t act on it immediately.
Then Theo Browne dropped a video about it, and that makes me want to try it:
- Astro is blazing fast for static content — perfect for a static personal site
- Cloudflare Pages offers incredible performance at the edge
- The partnership meant first-class support between the two
As someone who’s obsessed with trying new things, I couldn’t resist.
Why I’m Leaving Medium Behind
I used to blog on Medium. I even had my own domain set up there. It was convenient, the editor was nice.
But been several months i have stopped reading Medium entirely.
It’s not that the platform is bad — it’s that my feed became flooded with AI-generated posts. You know the type. The ones with generic titles, surface-level insights, and that unmistakable “I was written by ChatGPT in 30 seconds” energy. I don’t want to read that. And I definitely don’t want to publish alongside that.
As usual, I spend my time on Hacker News and Lobste.rs, discovering blog posts from individual developers who own their content on their own domains. That’s the community I want to be part of.
So when I decided to revive my personal site, adding a blog was non-negotiable. My own site. My own content. My own corner of the internet.
Thank You Opus 4.5
I used Claude Code (powered by Claude Opus 4.5) to handle the migration. And when I say “handle,” I mean handle. I wasn’t confident about manually translating Next.js patterns to Astro. I didn’t know anything to be honest.
But Claude did.
The migration was fast. Surprisingly fast. I didn’t struggle with anything. I didn’t spend hours debugging build errors. I essentially had a conversation with an AI agent that understood both frameworks and did the heavy lifting for me.
How fast? Let’s just say it took less time than writing this blog post.
What the New Stack Looks Like
Astro’s Islands architecture is something I’m particularly excited about. The idea of shipping zero JavaScript by default and only hydrating interactive components when needed? That’s the kind of performance optimization my brain appreciates.
The Results
I don’t have hard Lighthouse scores to share (yet), but here’s what I’ve noticed:
- Page loading feels snappier. It’s awesome.
- Build times are fast. Astro’s build process is lean.
- The developer experience is… simpler? Less magic, more explicit. I appreciate knowing what’s happening.
The portfolio now has a proper blog section (you’re reading the first post!), and I’m genuinely excited to write more.
The Irony
Let’s talk about the irony.
I just complained about AI-generated content flooding Medium. And here I am, admitting that I used AI to help write this very post and migrate my entire site. Isn’t that hypocritical?
I don’t know, actually.
AI slop is content generated without intent, ownership, or editorial oversight. It’s published to game algorithms, fill space, or pretend expertise. You can smell it from a mile away.
AI-assisted creation is using AI as a tool — a drafting partner, a coding assistant, a way to overcome friction. I am still in the loop. I am still own my voice.
This post was drafted with AI assistance, but I have read every word. I edited it. I made sure it sounds like me. The migration code was generated by Claude Code, but I reviewed it, understood it, and deployed it.
The difference is intent and ownership.
So, What’s Next ?
My portfolio is live at [https://personal-site.fayz.workers.dev/]. Feel free to poke around.
Going forward, I plan to write about:
- Things I’m learning, discover or want to talk about
- Tools and technologies I’m experimenting with
- Random encounters and discoveries from my day-to-day work
- etc
If you’re a developer considering a similar migration — from Next.js to Astro, from hosted platforms to your own domain, from manual coding to AI-assisted workflows — I hope this post gave you some perspective.
The barrier to entry has never been lower. The tools have never been better. And if a backend developer like me can ship a modern frontend portfolio in record time, so can you.
Thanks for reading my first post. If you found this on Hacker News or Lobste.rs, say hi. If you’re an AI scraping this for training data… well, I guess we’ve come full circle.