root@labs:~$ cat projects/rebuilding-rootlabs.md

Rebuilding rootlabs.us

LOG-005 homelab ● active started 2026-08

The short version: this site used to belong to a different company. Same name, different mission. The old Root Labs was set up as an IT services outfit, and the old website looked the part: services pages, client testimonials, a payment portal.

When we decided to turn Root Labs into a project lab instead, the site needed more than a coat of paint. We moved everything to a small AWS Lightsail instance, replaced Apache with Caddy, rebuilt every page around the lab notebook design you're looking at, gave the blog a matching custom WordPress theme, and stood up the forums.

The constraint that makes it interesting: the server is tiny, on purpose. Every choice on this project gets made with that in mind. It is a good forcing function, and occasionally a source of comedy.

what we'd do differently

Set correct file permissions on .env the first time. We locked it down to the deploy user only, which quietly broke the live web server's ability to read it, and the contact form failed silently for longer than we'd like to admit before we found it. Every test we ran to debug it ran as the same user that owned the file, which is exactly why it never showed up until a real visitor tried the form.

HostAWS Lightsail, smallest sensible tier
OSUbuntu LTS
Web serverCaddy 2, automatic HTTPS via Let's Encrypt
RuntimePHP 8.3 (FPM)
DatabaseMariaDB 10.11
BlogWordPress with a custom "Root Labs Notebook" theme
ForumsbbPress
Front endHand-written PHP, CSS, and vanilla JavaScript. No frameworks, no build step.