Infrastructure · Security · Software · Endurance
Build. Secure. Endure.
Document everything.
What I build, what breaks, and what I learn fixing it. Projects are the products, topics are the knowledge behind them, and every article says exactly where it belongs.
The knowledge
Topics
The products
Projects
The 5N3 Domain
fiventhree.com and everything under it: home page, portfolio, this
Blog
The knowledge base itself: markdown files, a zero-dependency build
Lifestyle Tracker
A self-hosted life dashboard covering habits, training, nutrition,
Job Monitor
Scrapes eight job boards daily, matches postings against a real
Latest project updates
All activityChecking fiventhree.com for the October 2026 Node CVEs
A routine ask: make sure nothing on the VPS was exposed to recent Node.js or PHP CVEs. There was no PHP to check, and Node turned out to be running an end-of-life line that a real security release had just skipped over.
Consolidating the project pages, and the YAML bug hiding underneath
Vault and the portfolio were never separate infrastructure, so their project pages became sections of The 5N3 Domain instead. Along the way: a project page with a blank title in the editor, traced to an unquoted colon that a hand-rolled parser never minded and a real YAML parser refused outright.
Setting up Decap CMS, and the four things that broke
Adding a graphical editor to the Blog meant no new database and no format migration, since Decap just commits to the same markdown files. Getting GitHub, Caddy and Docker to actually agree with each other took four separate fixes.
A full security audit of fiventhree.com, and the bug it found
An external and internal audit of the whole domain, five subdomains in. Most of it held up. One header fix turned out to be silently ignored in production for a reason worth knowing about.
Recent articles
See allChecking fiventhree.com for the October 2026 Node CVEs
A routine ask: make sure nothing on the VPS was exposed to recent Node.js or PHP CVEs. There was no PHP to check, and Node turned out to be running an end-of-life line that a real security release had just skipped over.
Consolidating the project pages, and the YAML bug hiding underneath
Vault and the portfolio were never separate infrastructure, so their project pages became sections of The 5N3 Domain instead. Along the way: a project page with a blank title in the editor, traced to an unquoted colon that a hand-rolled parser never minded and a real YAML parser refused outright.
Setting up Decap CMS, and the four things that broke
Adding a graphical editor to the Blog meant no new database and no format migration, since Decap just commits to the same markdown files. Getting GitHub, Caddy and Docker to actually agree with each other took four separate fixes.
A full security audit of fiventhree.com, and the bug it found
An external and internal audit of the whole domain, five subdomains in. Most of it held up. One header fix turned out to be silently ignored in production for a reason worth knowing about.
Six layers behind \"the Wi-Fi in my room isn't working\"
A guest's one-line complaint sits on top of a GPON access platform tracking per-subscriber state across six independent layers. A near-pattern in the service numbering, trusted instead of checked, took a working room down and then explained exactly why.