mywbs.com — My Web-Based Social. The oldest thing I have ever built, online since November 1999, and the one I keep coming back to.
MyWBS first went online in November 1999 — ten thousand friends before the world even had a name for social networking. There was no word for what it was yet. It was a web-based social space because that is literally what it was: your page, your people, your stuff.
Then life moved on, and I spent the years since building for everyone else — Caltech, MySpace, Jdate, Yellow Pages, Amazon, Apple, Disney, television networks, and other corporations. Twenty-five years of building other people's platforms. But this one never left my mind.
MyWBS is now rebuilt from the ground up: same idea, modern foundation. If you were here in 1999, you were always in my Top 8.
A deliberately simple social network. Not an engagement machine, not an algorithmic feed — a small, human, moderated place. Stories and photos, friends and blocks, and the parts of the early social web that were actually fun and quietly disappeared.
Python CGI and MariaDB over a unix socket, with a vanilla-JavaScript front end — no framework, no build step. The database user is low-privilege with per-table grants, and member-written text only ever reaches the DOM through textContent, never innerHTML. All timestamps are UTC.
The interesting constraint is that this runs on a shared box alongside a dozen other sites, so heavy computing is Go. Games compile to WebAssembly and run in the member's own browser — the server's entire role is one tiny score-recording API call, so an arcade full of players costs essentially nothing. Genuinely server-side heavy work gets a native Go binary instead of Python: the audio-rooms signalling daemon is a standalone Go service on loopback, reached through an Apache reverse proxy, sharing a session secret with the Python side for stateless HMAC tickets.