Project
namlit.dev

Frontend

My frontend is built with the modern Svelte Kit framework, Svelte 5, Tailwind CSS and written in TypeScript.
This part covers my decision-making behind each of the technologies.


Svelte & Svelte Kit are frameworks that my entire frontend application builds upon. It is important to understand the fundamentals on how they work to fully understand my project!


I created individual posts for Svelte basics and Svelte Kit basics that follow this one.
In case you are already familiar with both of them, you can jump right ahead to the Project Structure :)



Why TypeScript?

I'm a fanatic for building type-safe applications. This is in huge part thanks to working with Rust and Kotlin over the years. They try to be as null-, and type-safe as possible!
Therefore, JavaScript was already a no-go for me.


Although I like the idea of cross-platform applications, I wanted to keep this website native. Meaning no use of Flutter either.


WebAssembly would've been an interesting option as well. Especially with my love to Rust and its awesome Leptos framework.
But that is usually for compute-heavy websites - so the opposite of my simple portfolio website :D
I will definitely build something with it in the future tho!!


Leaving us with TypeScript for a type-safe-ish & native development environment. Enhanced by the true-myth dependency, which adds a couple extra types:

  • Maybe to get rid of null and undefined in the code base.
  • Result to enforce error-handling.
  • Task to enforce error-handling in async context. It's pretty much like Promise<Result>.


Why Svelte?

With TypeScript chosen as the programming language, my next step was choosing a framework.

I dabbled with React and Angular in the past. They were alright to work with, but I wanted to try something different for my website.


It became quite clear that Svelte has been one of the most admired frameworks in the past years. This is based on Stack Overlow Surveys and some additional research through Blogs and YouTube videos.
Although it is less desired, I decided that I'd rather have fun building my website and slightly fewer job opportunities, than the other way around.


Spoiler-alert: I've been having a blast working with it!
Its Runes and Template syntax were super easy to get started with (more details in the Svelte basics post), and the component-based structure felt very familiar. Most likely because I've been building native Android applications with Jetpack Compose since it was in Beta.



Why Tailwind CSS?

Tailwind was a straightforward decision: it's the go-to CSS framework for Svelte applications and pretty easy to work with.



Bun Runtime

I switched to the Bun Runtime for better performance. It's designed as a drop-in replacement for Node.js projects and works well with all the dependencies that I am using.

© 2020 - 2026 Namlit. All rights reserved.