Looking back on 2024

Dec 31, 2024 5 min read

Info

I intended to publish this post on the 28th of December, but I didn’t have enough time to do so. :p

2024 was intense, but I’m happy with how it turned out. I’ve learned a lot of new experiences and I’m excited to see what the future holds.

There were some roadblocks in life, but I’m glad I was able to overcome them.

Learning

I’ve learned a lot of new things this year. I’ve been working on my website (which you’re on!) for a while now, although it may have been odd choice of me to use Nuxt instead of say, Astro like all my friends do, but I’m glad I did it. Also, Nuxt Modules are real fun.

Timeline

I’ll skip January, as it wasn’t much besides maintenance of projects and some other stuff.

February

February was a bit of a blur. I helped my friends at uwu.network with their shelter documentation, which is written in VitePress. I redesigned the plugins page to match the design system of VitePress, bringing nice looking plugin cards with author details and GitHub repo links, as well as search, and copying support. As you can say, it’s not anything special, you can view it here.

I forked Nitter to add new features for my friends, such as data-profile-id for userscript uses, tokyo night themes, a homepage which itself was a monster to implement, and other cool stuff!

I played around with htmx, paired up with PicoCSS and Go to build a website, I didn’t like it so much. I hope to never use this again.

March

March wasn’t much of a month, but I did manage to get a few things done. I experimented with Rolldown to build a bundler and its surprisingly fast! Obviously don’t use it in production, I recommend you use unbuild instead.

April, May and June was when I was pretty much on a break. I got struck up on life, was mostly semi-available, and had a few other things to do.

July

I open-sourced my bot I’ve been working on for a while. It’s written in oceanic.js, which is in my opinion, way better than discord.js. It supports Discord’s new user install feature so you can use its utilities anywhere, an amazing reminder system, report module, and much more.

I made a auto-generated, typesafe API client for Discord’s newly released OpenAPI specs, which albeit its a bit of a mess, is still usable. It was written in orval, which I regret using, as you’ll find out later.

August

August was a bit of a break, but I did play around with Hanukkah of Data, unfortunately I didn’t get around to completing it.

September

September was when I made this website, which you’re on now. As all these months, I again, went on a break.

October

I made vitepress-transform to transform your markdown before VitePress processes it. It’s mainly for FMHY, as lots of unsupported markdown is used, which won’t look pleasing in the final output.

With a friend of mine, we started work on hacienda, an open-source, deemix alternative supporting many other platforms than Deezer with a Web UI. It’s written in SolidStart, although I regret using it, as it’s a bit of a mess. The devtools were sluggish, they use nitro improperly (even the maintainer frowns upon it), and I generally didn’t like it. I mean, solid-js itself is awesome, just I would rather use Astro instead or a more-over-configured Vite. I plan to make it use Nuxt.

November

I was working on my image host, flan, for a while now, and this month I finally got it to be released publicly. Fun story, but it originated from when I was bored and wanted to write something in Rust using axum, that was almost 2 years ago. I’m glad I did it, now. I’m currently working in a 0.2 version.

December 🎅

Oh yes, it’s December. Advent of Code is here, and my friend, Alyxia hosted this year’s annual leaderboard, this time with even more friends than last year! It was insane.

Simultaneously, I resumed work on aocity, which I deprecated and moved it to aockit. It’s a polyglot advent of code CLI for running your solutions, in any language, as well as managing the inputs and file structure, and submitting your solutions. I hope to make a proper release for it soon.

Unfortunately, I didn’t get around to completing the 2024 challenge. I guess I got bored? Fatigue? I just didn’t feel the drive to complete it, unlike last year. I did enjoy making new friends and talking with them, though.

Now, during this holiday, Rolldown released a new beta, and I was able to use integrate it within Lune, shelter’s build tool. I also brought in LightningCSS into the mix for CSS Modules, as rolldown does not support them yet, though LightningCSS is still good to have so the esbuild builder now uses it too! It was released in Lune v1.5.0, and you can start using it by setting builder to rolldown in your lune.config.js file.

I hope to further improve Lune in the future, one of them being a rust rewrite of babel-plugin-jsx-dom-expressions, which currently uses, well, Babel. It will use oxc for parsing and transforms, and currently I’ve been able to successfully build a few plugins, much much faster than before, from ~600ms to just measly ~40ms. This eliminates much of the overhead from calling to babel, deciding if to use the typescript preset, then transforming the source, to just one transform. Hopefully can be bundled natively into rolldown one day to avoid any form of overhead.

And at last I redid discord-openapi-client to use openapi-generator and openapi-ts, as Orval generated over 2600 symbols, bloated the bundle size, and sometime later my CI broke, the builder is just flimsy or Discord sucks. Either way, this is much better now.

Now, onto 2025!