I'd been meaning to try Svelte(Kit) for a while, and this portfolio felt like the right excuse to finally use it. It desperately needed an update, because I've grown a lot over the past few years and the old one looked outdated. So I went with SvelteKit, and it turned out to be one of the better decisions I've made in a while. Coming from React, it was a genuine breath of fresh air: less boilerplate, more intuitive reactivity, and a compiler that just gets out of your way.
The admin dashboard was the most challenging part of the project. Building it allowed me to dive deeper into subjects I've only touched briefly before, such as authentication flows, data sanitisation, and storing rich text content properly without allowing for XSS injections. The Copenhagen Book was invaluable here, which is a no-nonsense guide to web auth that I'd recommend to anyone building their own auth from scratch.
The image upload system was a fun rabbit hole I didn't think I'd like. I hadn't previously thought much about validating files beyond checking their extension, so learning about things such as magic bytes (bytes that reveal a file's true extension) was a nice little extra. It's one of those things you won't ever forget once you implemented them once.
I also got to put my GSAP knowledge to use, which is always enjoyable. I've always liked the front-end development part of a website the most, and making each thing on the website carefully animate is one of the best parts about building a website. Finally, this was my first time working with the View Transitions API. And it could be irritating at times, but after some trial and error I finally got it working. It's good that there is finally a native way to enjoy page transitions without engineering them in.
