Side project: uSite — tiny static site generator

Last time I wrote about my struggles with unfinished side projects and what I am going to do about it. Today its time to cover first fruits of success following the new action plan.

“uSite” started with one of the best type of use-cases a project can have — a personal pain. I was looking for a static site generator for my personal blog, but after going through some of the popular engines on I decided to create a new one. My biggest frustration with existing static site generators was the amount of documentation and conventions I needed to learn before using one (e.g. I was looking more for a content transformation API. Instead of a tool which requires significant knowledge of concepts like Git, extensions, themes and data exchange types, but pretends that I still don’t know how to make a website.

I thought that “content transformation API” is a cool concept and so uSite was born. In essence uSite has two parts: a set of functions for transforming content and a recipe for a blog. The cool part about this separation is that you can use uSite like any other static site generator with its own stupid conventions and all. But if you know some basic JS programming, you can copy and tailor my recipe for your own blog needs or completely rewrite it from scratch. The recipe is only 70 lines of code and could be even smaller if I have not added RSS and Sitemap generation.

This is how is made (Gist might not display on a mobile device, so visit it directly):

And this is how I completed my first side project in 2017. Without complications, overthinking or geeking out on cool new language or paradigm. Just picking a clear problem, selecting the simplest tool and implementing the essential functionality.

uSite is currently tailored for needs and does not have a documentation. I am still exploring how content transformation API could look like and do not want to set API in stone just yet. There is also some blog features left unfinished like: media handling, single content pages and pagination. Moreover, I would really like to hear what other people are considering as a must have in a static site generator. So, please drop a comment bellow or create an issue at

More by Tomas Grubliauskas

Topics of interest

More Related Stories