$ date

Tue Nov 24 22:07:29 UTC 2015

How this blog is set up

This blog is powered by CBlargh, a basic blog engine running on Carbon.

CBlargh utilizes Markdown as the source form of the posts.

It gets rendered by Carbon's Github Markdown preset, and markdown.lua as fallback if the version of Carbon used does not have it yet.

Basic Pipeline

The processing pipeline is as follows:

+-------+    | +-CBlargh-----------------------------------------Lua-+|    +-------+
|Browser| -> | |[Posts] -> [Markdown Renderer] -> [Template Renderer]|| -> |Browser|
+-------+    | +-----------------------------------------------------+|    +-------+

The Browser sends the request to the Web server, Carbon, which properly extracts all the information from it and routes the request to a matching route.

This route gets in either of two routes: The main page or the post route.

Both are templates which are rendered with the the available Markdown engine and fitted with the data: The posts.

The post's filename, modification date and HTML version are stored in a temporay in-memory key-value store that is Carbon internal.

Once the template is rendered, it gets send to the Browser, and the cycle starts over again.

Set up on a deeper level

This Blog run on a DigitalOcean VPS, the lowest tier of VPS DO offers.

Why? Not because I can't afford a better one, but because I can.

Carbon is lightweight enough to run comfortably on a low end server and still have plenty resources spare.

Running this blog with CBlargh, a pastebin server - CPaste - and my testing site where I test out features of Carbon, it barely uses 26 megabyte of ram, 10 of that being shared.

Do note that this is most likely lower in normal cases, but things do add up if you have a lot of dynamic content.

All things in this used to build this blog (software) are open source and most of which are available on github.


This is still an early version of Carbon and CBlargh, so there may be bugs, it may be slow at times and it doesn't have all the features you may want, but since it's open source, feel free to contribute! ;)

$ cd ..