The previous version of this site was built with Laravel back in 2018. It was a fully custom application that handled both the CMS and the front end, because apparently building a portfolio was not enough of a project on its own. The front end actually looked remarkably close to this version, but behind it was a database, authentication, a custom admin area, and all the other moving parts that come with running a real application.
That setup made sense at the time. I wanted complete control over how work and journal entries were managed, so I built it. The problem was that a portfolio site does not really need to behave like a small SaaS product forever. Getting the old version running again meant dealing with a server, the Laravel app, the database, user authentication, and a bunch of dependencies that had not been touched in years. It was all still there, but it was not exactly inviting.
Moving to Astro meant separating the content from all of that machinery. Work and journal entries now live in MDX files with frontmatter instead of database records, and the images are just public assets. There are no migrations to run, no admin users to manage, and no custom CMS to keep alive just so I can add a paragraph or swap a screenshot. The old site used SCSS and a pile of custom styles; this rebuild uses Tailwind, which has made it much easier to work quickly without rebuilding the same utility classes over and over.

Astro has been a really nice fit for this. Most of the site is static, which is exactly what a portfolio should be, but I can still use React where it makes sense for interactive components. The result is simpler to deploy, easier to maintain, and much less likely to require an archaeological dig the next time I want to update my own website. GitHub Pages takes care of hosting, MDX takes care of content, and I get to spend my time making the site better instead of babysitting its old CMS. And at the end of the day, isn’t that what we all want?


