Building this site
I wanted a personal website. Not a template, not a drag-and-drop builder — something I actually built myself, from scratch, that I understood end to end.
The stack I landed on: SvelteKit with the static adapter, MDsveX for writing pages in Markdown, and GitHub Pages for hosting.
Why SvelteKit
I’d been working with Oracle and PL/SQL for most of my career. Frontend was always something I touched at the edges. Picking up SvelteKit felt like the right move — it’s lean, the syntax is close to plain HTML and JavaScript, and the documentation is clear. No magic you can’t trace.
The static adapter (@sveltejs/adapter-static) turns the whole site into plain HTML files at build time. No server needed. That suited me perfectly.
MDsveX
MDsveX is what makes writing content pleasant. It lets you write .svx files — Markdown with Svelte components mixed in. That means a story like this one is just a text file with some frontmatter at the top. No database, no CMS, no API call.
---
title: "Building this site"
date: 2026-03-02
tags: ["Log"]
--- The stories listing page reads all .svx files using Vite’s import.meta.glob, extracts the frontmatter, and renders the list automatically. Add a file, get a new story. Simple.
Deploying on GitHub Pages
Deployment is a GitHub Actions workflow that runs on every push to main. It installs dependencies, runs npm run build, and pushes the build/ output to the gh-pages branch. The site is live within a minute of pushing.
The one thing that needed attention: SvelteKit’s static adapter needs export const prerender = true set globally, otherwise pages don’t appear as HTML files in the build output.
What I learned
Starting with a real project is faster than following tutorials. Every problem you hit is one you actually care about solving.
SvelteKit and MDsveX are genuinely well-designed tools. The rough edges are few and the mental model is consistent. I’d pick this stack again.