Just a random developer.
I recently rebuilt my personal website after it had been down for a long time. Previously, it was hosted on my Raspberry Pi, but when the Pi went offline, I chose not to migrate it to another one. Since I was dissatisfied with the tech stack of my old website, I decided to rebuild it from scratch.
Category | Tech Stack |
---|---|
Framework | SvelteKit |
Styling | Tailwind CSS |
Runtime | Bun |
ORM | Prisma |
Database | PostgreSQL |
One of the biggest issues I had with the old setup was Prisma as the ORM. While Prisma is a great tool, it adds an extra layer of abstraction, requiring queries to pass through its binary. This created issues when bundling the project. Additionally, Prisma detects the environment during installation and downloads the appropriate binary, meaning I had to exclude it during build time to avoid compatibility issues.
Another drawback was Prisma’s limited support for raw SQL queries. Although I am not a SQL expert, I prefer optimizing data loads by writing my own SQL queries, which Prisma made difficult.
Category | Tech Stack |
---|---|
Framework | SvelteKit |
Styling | StyleX by Meta |
Runtime | Bun |
ORM | Drizzle (with bun:sql ) |
Database | PostgreSQL |
I still love Svelte, so I stuck with SvelteKit as my framework. However, I switched from Tailwind CSS to StyleX for styling. While Tailwind CSS is great, it has some drawbacks, such as class merging issues. StyleX addresses these problems, and even though it’s not yet stable, I’m willing to experiment with it for my personal website.
For the ORM, I replaced Prisma with Drizzle, which functions more like a query builder than a traditional ORM. This allows me to write SQL-like queries with greater flexibility and control. Additionally, Drizzle supports bun:sql
, reducing the dependencies of my project since I’m already using Bun as the runtime.
After finalizing the tech stack, I began development. My main requirements were:
I faced several challenges throughout the development process, which I will discuss in a future post.
With this new blogging system, I can now easily share my thoughts, ideas, and programming discoveries. Stay tuned for more insights into the development of this website and the simplicity of the blogging system I built!
Next: Styling with StyleX