Rebuilding rootlabs.us
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.
| Host | AWS Lightsail, smallest sensible tier |
|---|---|
| OS | Ubuntu LTS |
| Web server | Caddy 2, automatic HTTPS via Let's Encrypt |
| Runtime | PHP 8.3 (FPM) |
| Database | MariaDB 10.11 |
| Blog | WordPress with a custom "Root Labs Notebook" theme |
| Forums | bbPress |
| Front end | Hand-written PHP, CSS, and vanilla JavaScript. No frameworks, no build step. |