zotan.pw-web/Posts/site-update-2022.md

27 lines
4 KiB
Markdown
Raw Permalink Normal View History

2022-11-27 20:42:40 +01:00
---
title: "Site update: 2022 Edition"
date: 2022-11-26
...
2022-11-27 20:51:26 +01:00
Longer term readers of this blog probably know this already, but the website that this blog is a subpage of hasn't exactly changed much over the past few years. Small content updates here and there did happen, but nothing major.
About a week ago I started completely rewriting the website in ASP.NET for a variety of reasons. First and foremost, the [old](https://git.ztn.sh/zotan/zotan.pw-web-legacy){target=_blank} site was a mess of handwritten HTML with a bit of PHP thrown in, which was completely fine for the original use case the website had, which was a simple index page with exclusively static content. Over the years the annoyances and jank caused by this setup increased quite significantly, especially as I added things like the blog (the one you are reading right now!), the [travelynx](https://travelynx.de){target=_blank} integration and the dynamic footer.
What caused the rewrite project (that I had been planning to start for over a year) to finally happen was the idea of a [now playing](/np) page inspired by those a couple friends started to maintain. This idea quickly snowballed into a complete rewrite because of technical limitations of the old website codebase, as well as the usual ADHD project flow we know and love.
### The rewrite
After finally getting started with this project, it went along relatively quickly, albeit with more of a "lots of rapid progress interrupted by hour-long tiny problem debugging sessions" progression. Quickly realizing that most of the work needed for a complete site rewrite would already be implemented if I just finished the [now playing](/np) bit, I started reimplementing all of the pages the old site had to offer in the new ASP.NET codebase and started preparations for deprecating the old site.
Initially, I didn't plan to rewrite the blog part and instead move it over as-is, but a couple friends convinced me to try a [Markdown renderer](https://github.com/xoofx/markdig){target=_blank} and it turned out to be one of the easier parts of the rewrite. Polishing it to work *exactly* like the old site was significantly more difficult however, though I suppose this is expected with a somewhat nontrivial software project.
I also finally got to use a lot of nice features I had read about in the last couple C# language version changelogs in this project, which was refreshing. I really like the direction the language is taking, even though I know this is a rather spicy take. People have been trying to get me to learn Rust for a while now, but I've not managed to catch on to that just yet.
The old travelynx.txt file (for displaying train travel & location information) was replaced by a SQLite database, which was also used for the [now playing](/np) page that needed some kind of data store. Currently said page isn't entirely complete, as I've not found a good way to import Apple Music listening data just yet (even though that's how this whole project started) as the beautifully named *Music User Token* (I apologize for my cynicism) expires after less than 24 hours. If I eventually discover a good way to make this happen, or I find myself using another music medium with a solid data feed, I will of course try my best to integrate it into the page.
The new site, in addition to having a couple new features (see below) and a significantly improved backend, also has subtle style improvements across the board in order to make the whole site feel a bit more personal and cohesive. Overall I am unreasonably happy about this project. Not because it's anything groundbreaking or impressive, but because my website now feels substantially more like me, like ***my*** homepage, my little corner of the internet. And I'm proud I finally got to that point. If you have feedback on any of the new or changed things, please [contact me](/#contact)!
Some of the smaller changes include:
* Proper breadcrumbs in the header
* Functional warning if connected via IPv4
* JSONFeed & Atom support for the blog
* Finally, after however many years, a favicon