Bye Ghost, hello SvelteKit!

Welcome 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 title
  • date - Publication date (YYYY-MM-DD)
  • excerpt - Optional short description
  • slug - optional slug URL

That’s it!

← Back to posts

© 2026 Mark Mayo · RSS