About This Portfolio

This page exists to outline many interesting technical details about this website. I want to describe in detail the many design decisions I made while creating this website by talking about how it operates. The goal of this process is both to share how I think and operate, but also to re-evaluate these decisions as a part of formally writing about my design.

Notable Technologies

Articles

All the articles written on this website (including this one) are written in one of two formats. Either markdown or typst. The articles are stored in a dependency injectable file storage system in their raw editable form. These formats are great for plain text editing purposes, but leave a lot to be desired in viewing. Thankfully these formats are designed to be compiled into formats that are for viewing.

Markdown Articles

Articles that have been written in markdown get rendered into HTML and then rendered into the template on the server side.

Typst Articles

Articles written in typst are compiled into both a PDF and HTML. The PDF is the primary viewing format supported by the typst compiler. However HTML support exists and is being actively improved. Right now the HTML output is used as a backup if the PDF is unable to be displayed for any reason.

Caching

The compilation process for these articles can actually take a few seconds especially typst articles. For this reason in order to increase responsiveness on the website the compiled article output is cached in server memory. This means that the server can skip compilation once it has been done once.

Infrastructure

This website takes advantage of the infrastructure I put together for my family. I won't go too in depth but it consists of a few key components: