Major Website Update
Hello there, fellow tech nerds!
What a wonderful month, eh? Anyway, I’ve moved the website from Zola to Astro.js and I would like to tell you why I did that.
Table of Contents
PreHistory
My personal website started out as a small page that I had built with Vue.js. After some time I had moved to Nuxt.js, since I wanted a Statically Generated Site. I did not like Vue.js way of building the website, since it slowed down the development quite a lot. Nuxt had simplified some things, but after some time - using it with Tailwind CSS was a nightmare. I found so many quirky bugs, and weird hard-edges, that I could not come in terms with.
After Nuxt.js, I started a search for a new framework to build my personal website with. I wanted something written in Rust, beause #REWRITEINRUST, and I found Zola. Zola’s perfomance was at a good point. It did not have any kind of Tailwind CSS integration, so I had to use a little Bash script to generate the CSS from classes.
Main Reason
I was fine with Zola, it had somewhat weird syntax, but there was one major problem. It did not have a Component system. Meaning, I could not easily put big but reusable pieces of code into small containers.
This feature is really important for me, since I wanted to make my website feel special. I wanted it to be animated, and weird, and really personal.
I really like how personal websites and RSS feeds are coming back to our lives. It makes me smile. I really like when people post about this on Mastodon, it makes me feel connected.
You see, due to me wanting to make my website personal and special, I needed a way to pack huge chunks of reusable HTML into small tags like <Header /> or <Button>Press Me</Button>. The code behind those components would be a bit too big to paste into every page. And editing it would be a pain. So a component based system is essential for my workflow.
I wanted to have something Rust based again, but I could not find anything with my requirements, since I do have a lot of them.
I guess I’ll have to give up on Rust based SSG for now, but it does not mean that I will give up on my personal website.
I had discovered Astro.js after attempting to use Nuxt.js again. And it just clicked. It was perfect. Sure, it’s not written in Rust, but it had everything I needed.
It has a really awesome Tailwind CSS integration, content from Markdown, even an automatic RSS feed generation and most importantly - a Component based system.
To sum it up, the main reason to switch was:
- Need for a complex layout building using a Component based system.
Updated Things
I had added an automatic Pride Month banner that shows up on Pride Month automatically. I haven’t tested it yet, but it should work (I hope).
I also added some more advanced customization on basic components. For example, a header button (If hovered for long enough) will have nice slide effects with different colors. Or look at the collapses, they are really animated, and even have a homosexual option! There is also a new banner for the latest blog post. I feel at home now! :3
With all of this refactoring and some re:writing, it finally feels great to me. I hope you like it as well!
You can always suggest something to me on my Mastodon, or just give some feedback.
What’s next
I’m working on a few things at the moment. I’m also working on getting a job in real life, which is really important. Please understand that I might not update everything as fast as I wish I could. I get busy from time to time.
I’m going to continue updating my website with some smaller changes. I really like adding some neat but kinda useless features!
There is a really nice project upcoming, and it’s going to be Free and Open Source Software, of course it will be on my Coderberg. You won’t miss it if you are subscribed to my RSS feed or my Mastodon.
I’m also rewriting the procedural generation in WolfBorn. It might take some time, there are a lot of optimizations to be made.
Well, until then, you can call me Crystal, and I’ll see you soon!
Happy Pride Month! :3
- Crystal