Why I Built April⋅SSG Static Site Generator
I've been writing online for many years. I started with Google's Blogger, moved to WordPress, tried pure HTML, hopped on Medium, experimented with Dev.to, and eventually landed on Jekyll + GitLab Pages.
Every platform taught me something. But none of them gave me exactly what I wanted: a simple, stable, and fully controlled way to publish my thoughts.
The platforms I tried (and why they didn't work)
- Blogger.com: Over-complicated template language, bloated interface, too many moving parts.
- WordPress: Powerful, but running it myself meant being a server admin, which I didn't want.
- Pure HTML: Simple, but uploading files manually was slow.
- Medium: Didn't feel like my own space, had paywalls, and I couldn't control how my posts were shown.
- Dev.to: Good for tech posts, but not for other kinds of writing.
- Ghost: I liked it, but it cost too much for a personal blog.
My simple requirements
- Full control of my content, so I can move it between platforms easily when I want to switch. Many platforms lock your content in, making it hard to switch.
- Freedom to use any editor I like, whether it's Obsidian or a basic text editor.
- Preview the site locally before publishing, so I know exactly how it will look.
- A clean, minimal design with no unnecessary extras. A fast-loading page that works well everywhere.
- A straightforward tool that's easy to understand and adjust without dealing with confusing errors.
In essence, I wanted a tool that respects simplicity and gives me full control over my writing and publishing process without unnecessary complexity or dependencies.
The Jekyll phase
In 2020, I decided to switch to Jekyll with the minima theme, deployed via GitLab Pages. It gave me full control over content and layout, and I loved that it was static — no server, no backend, just pure files.
But over time, Jekyll started to feel fragile.
- Updates broke my setup.
- Getting it running locally was sometimes hard.
- Small changes often meant dealing with Ruby internals I didn't want to learn..
I just wanted to write, not fix my website tool all the time.
Trying Hugo
A week ago, I tried Hugo. It's very fast. But I still found it a bit complex, with too many rules. I ran into incompatibilities, layout complexities, cryptic error messages, and too much convention over clarity. It felt like a big system, and I just wanted a simple tool.
Building my own simple tool
I always wanted to build a very basic static site generator, but I kept putting it off because of the boilerplate and figuring out template engines. Now that I have GitHub Copilot, I finally decided it was the right time to give it a shot.
With great assistance from Copilot, I was able to get the core functionality up and running in just a few hours. The result was a single JavaScript file that processes Markdown files and uses the Handlebars template engine to generate HTML. Over the following days, I polished it further — organizing it into a clean folder structure, ensuring it was responsive, adding styling, and writing clear, user-friendly documentation. Today, it proudly powers this blog.
I called it April⋅SSG (with a middle-dot) — partly because I built it in April, and partly because I wanted a small, simple name.
Here's what it does:
- Uses a single JavaScript file with less than 300 lines.
- Works with a simple folder structure.
- Reads Markdown files, uses Handlebars templates, and makes HTML files.
- Add posts, pages, and extra files easily.
- Preview the site locally before publishing.
- It doesn't do anything extra. That's the whole point.
One of my primary goals was to be able to simply copy-paste the Markdown content from my existing blog to this and make it work seamlessly. It worked like a charm. I never had to rewrite anything.
Why this matters
April⋅SSG is not built to compete with Hugo or Jekyll. It was built primarily for personal satisfaction and to address my specific needs. Building it achieved several key goals:
- Resolved a long-standing problem: Gaining complete control over my content and website.
- Provided deep satisfaction: The process of creating the tool and seeing it successfully power my blog is highly rewarding.
- A learning opportunity: It allowed me to re-engage with front-end development and explore modern HTML and CSS features (like variables, flexbox, and dark mode support) that have evolved significantly over the years. Read my post on learning about Cumulative Layout Shift (CLS).
Try April⋅SSG
It's free, open-source, and you can find the repository on GitHub↗.