November 28, 2025
Browser spam meets hobby glam
C++ Web Server on my custom hobby OS
Hobby web server goes live, commenters split: 'add features' vs 'keep it pure'
TLDR: An indie developer got a DIY operating system serving web pages after fixing nasty bugs and building a custom request handler. Comments split between “add OpenAPI, borrow standards” and “keep it from‑scratch,” with AI hype gatecrashing; it matters because it spotlights craft vs convenience in how we build the web.
A lone tinkerer brought a homegrown operating system back to life with a working web server. They wrangled bugs like a rogue terminal buffer and a grumpy network card, then taught the machine to speak HTTP, TCP, and serve pages. Cool, yes—but the comments turned it into a street fight.
One camp cheered maintainability and clean code — Aldipower’s “sign of great engineering” — while skeptics poked holes. roetlich asked why the “straight forward” network bits were easy but [HTTP] and [TCP] were hard, suggesting borrowing from other projects like DNS. Feature-chasers piled in, with yupyupyups insisting: add OpenAPI at /openapi.json. Meanwhile, the meme brigade yelled: “Can it run AI agents?” (slurrpurr), turning a web server milestone into an AI wishlist.
There were laughs about “refresh rage” causing reset storms (RST packets) and the dev’s own warning that “graceful shutdown” is boring… until you corrupt files. canyp blew the doors off with an Ada/SPARK rabbit hole, sparking a side quest over formal proofs vs scrappy builds. In short: purists loved the from‑scratch vibe; pragmatists said “use libraries.” The dev’s next move — a DIY browser — has everyone waiting to see if this becomes a tiny, handmade internet.
Key Points
- •A custom hobby OS now includes a functioning userspace C++ web server.
- •The networking stack implements Ethernet, IP, ARP, UDP, TCP, DHCP, and DNS; TCP/HTTP initially caused failures.
- •Debugging fixed a terminal buffer bug overwriting a process lock and corrected E1000 driver handling of burst packets.
- •Performance issues from TCP RST packet spam were resolved, hardening the stack against rapid browser refreshes.
- •An HTTP engine using a parser from c-web-modules and a minimal web engine with routing and file serving were implemented; next steps include UI, graceful shutdown, and a web browser.