What is this page?
This website's main page has a subsection that talks a bit about its technical details, but I didn't want it to be too overwhelming, so I really only gave an overview.
This page goes into the juicy details and aims to cover the entire history of the website, keep on reading if you're interested!
Please note that the entire commit history of this website is available on Codeberg.
How it started
I created a repo on GitHub where I experimented with Netlify so that it could get my data from Last.fm upon clicking a button on a page.
It was a success, and I instantly decided to use my domain to host that page and add the data from more websites!
Simultaneously, I added React to the whole thing. I wanted to experiment with it, because my only experience with it was from making a game, and that's quite different from the usual web dev experience.
Eventually as I added the data of more and more websites, I had to deal with APIs that provided temporary tokens, so I added MongoDB so that I could store them.
Storing API tokens client-side is not a good idea, and making a new token for each new request just feels bad, you know?
More than data
After adding the data from some websites, I felt like I wanted my own website to tell its visitors more than just "what I was up to", I wanted to tell them who even am I in the first place!
One month after Bun v1.0 came out, I switched my package manager from yarn to it, and then got my code ready to have written content.
Also, I wanted that content to have a french version if the user wanted to switch the website's language.
I had to reorganize my website's code so many times because of the increased complexity!
But it worked out in the end, so it was worth all the struggles.
About the design
First of all, this page's dark colours are meant to make you think of it as a backstage, the main page having the bright colours.
The usage of sky blue can be attributed to both my name ("Taevas", estonian for "sky"), but also to the book Visual Experiments Lain!
That book's early pages (4-7) has credits for all episodes of the Serial Experiments Lain anime with a design I took heavy inspiration from to make the initial design of the "infos" (what I call the display of data from other websites), which led them to look red and blue, though there's not much red left anymore.
The website's written content is in "windows" that can be moved, opened, and closed, like how computer applications work.
At some point, to match modern desktop environments like Windows 11 and KDE Plasma 6 more closely, I made a redesign in which things became more rounded.
During the redesign, I replaced red with a more subtle purple and did some other things.
Something that has never changed however was the usage of Tailwind CSS!
Something that became more prominent was IBM's influence, I have used some of Carbon's icons since May 2024, and have been using the Plex Mono font since my website's redesign in March 2025.
I had changed the font as an opportunity to solve a faux bold problem and to finally have a monospaced font, such fonts are more practical!
New limits, new changes
Let's establish a fact: My website was entirely dependent on the USA.
- The repository Netlify used was hosted on GitHub (Microsoft, American tech giant)
- Netlify itself is an American company
- The MongoDB Atlas servers only gave me the choice between those of Microsoft Azure, Google Cloud, and Amazon AWS
- React is by Meta, as in Facebook
- That's not mentioning TypeScript, the main language this website still uses, which is by Microsoft
In early 2025, I became concerned with the idea of being so dependent on a country that was going so far in the wrong direction.
Aside from that, I was starting to feel limited by Netlify in what I could even do, I could only do so much for free!
Which is why I replaced the technologies I was using and starting selfhosting on a cheap European VPS.
- No more Netlify, now using IONOS
- The code became hosted on KitsuDev (moved to Codeberg since) instead of GitHub
- The serverless functions were replaced with an actual API running with the website
- Netlify restricted me to using Node.js as the runtime, so I was using Bun only as a package manager, now it also replaces Node.js
- Through Bun, using PostgreSQL on the same server instead of MongoDB was easy
That way, it felt like I learned new things, made my website more flexible, and made it more independent!
The future
Of course, as I create more and more things on the Internet, my website will similarly expand.
As I always aim to experiment to make things better, I'd like to remake my website in Rust at some point.
Or maybe that'll never happen and it'll stick to TypeScript, I don't know what the future has in store for me!