About Glacius

Contents hide

Glacius (glay-see-uss) is a wiki engine I wrote from scratch. It's named after a character from the fighting game Killer Instinct.

Tech stack

Glacius is pretty simple. It is a Node.js application that uses SQLite for data storage. Static content and uploads are stored in S3 and served through Cloudfront. nginx is used as a reverse proxy to the Node app.

It has very little client-side JavaScript because that's a philosophy I'm starting to (re-)subscribe to. Basically I'm yearning for the days circa 2008 when graceful degradation was a proud endeavor.

During development I use Docker, a bunch of custom Bash scripts, and SASS. At the moment it's written in plain JavaScript but someday I may port it to TypeScript. The incredible slowness of the TypeScript compiler turned me off of it for a while but now I'm in love with esbuild which basically alleviates that pain.

Infrastructure is deployed (mostly) with CloudFormation. This site currently is sharing resources with a bunch of other stuff I host.

Other tools

  • mediainfo for introspecting uploaded media files
  • file (via libmagic) for determining mimetypes of uploaded files

Wiki content

I decided to use XML (mostly XHTML) as the markup text for all wiki content. Mostly because XML is very easy to parse, and since I could just write regular HTML, custom styling would be easy. Markup languages like Markdown or something similar to MediaWiki were deemed too complex and frankly I don't like Markdown very much.

When I need customization in the form of markup I create a new tag prefixed with glacius:, e.g. <glacius:link />.