Bye Ghost, hello SvelteKit!
October 21, 2025Welcome to the new VMUNIX Blues
It’s been about a year since I revived the old blog, and while Ghost has been just fine and I like supporting them, I decided I really don’t need a CMS I just need a simple static site. I tried a few different tools and frameworks by generating whole sites with Claude Code and settled on SvelteKit in the end. I almost just went for handcrafted HTML and maybe a future version will do that but for now it’s nice to not have to deal with CSS directly and instead let Svelte do the heavy lifting.
The site does need the browser to download about 20KB of JS regardless of it’s going to be used or not, mostly for faster page navigaton and responsive views, but it should gracefully fall back to full page loads of the pre-rendered files if you don’t have JS enabled.
Posts are written in Markdown with full support for code blocks and syntax highlighting.
Code Examples
Here’s a simple shell script:
#!/bin/bash
# Check system uptime
uptime -p
# Display disk usage
df -h | grep -v tmpfs And here’s some C code:
#include <stdio.h>
int main(void) {
printf("Hello from VMUNIX!
");
return 0;
} Configuration Files
The blog also handles configuration blocks nicely. Here’s a sample nginx configuration:
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
} Features
So in the end after much trial and error the blog is being built with:
- SvelteKit - Fast, modern framework
- MDsveX - Markdown processing
- Shiki - Beautiful syntax highlighting
- Static generation - Deploy anywhere
The entire site is pre-rendered at build time, making it extremely fast to load with zero runtime JavaScript required for content display.
Writing Posts
To create a new post, I simply add a .md file to the src/posts directory with frontmatter containing:
title- The post titledate- Publication date (YYYY-MM-DD)excerpt- Optional short descriptionslug- optional slug URL
That’s it!