Site Design

Ryan Pek (b. 2001) | Final Year Undergraduate SUTD | Canned food enjoyer

Site Design

It’s built the same way I like writing code and solving problems: start small and from scratch, don’t hide complexity behind tooling, and make sure it works offline.

If something loads slowly, that’s probably on me. Though the site itself is static and overall a pretty small payload for the browser.

This site is currently self hosted from my homelab. There is a VPS acting as a proxy for my homelab to anchor to, and behind the VPS is my exposed VLAN70 network. This site is served by nginx, and I have caddy running in this VLAN for the reverse proxy as well as to renew the certificate for this site and future sites I plan to host for public viewing.

There is just something nice about having just having a website that looks like a text document.

If we look at Stroustrup’s or the McMaster-Carr website, they just have everything accesisble at a glance. Fabrice Bellard's site is even easier to navigate. These sites look information dense but because there are so little elements or moving parts in the page, it is actually pretty easy to understand what is going on at a glance.

Truly simple is the best.

Workflow I guess

I write everything manually in this site using vim/nvim, then build it locally to test before pushing it to my local gitea instance for my internal repos.

My Jenkins server detects the push, making my admin config node (thats a Jenkins worker) do some pulling and building, creating a tarball of this build for rollback, then using rsync to make the changes. (since rsync only pushes new files and removes outdated files)

Then poof, this site is updated. unlike my terraform pipeline, this one dosen't need approval since it won't instantly break everyting.

Other than that, this vm is managed by my terraform repo, the vm configured to reach this state by ansible. That's about it. Pretty cool I guess when I first got this working.