
Temple of Wisdom
A roleplay community I built for friends in 2010 — and never let die.
Temple of Wisdom is mine and my friends'. Has been since 2010. Three of us — me and two friends who'd never written a line of code — were tired of playing in other people's worlds, living by other people's rules, watching other people's projects fall apart in the same tired drama every time. We wanted our own place. Less drama, more stories. So I built one with the tools I knew best at the time: MODX for the content, phpBB for the forums, and a lot of glue code stitching them into something that felt like a single place. It wasn't elegant, but it ran, and people moved in.
And I didn't just build it — I played there. For years. I was a member of the thing I was maintaining, which means I felt every rough edge the way everyone else did, from the inside.
For a few years that was enough. Then it wasn't. Every new feature turned into a fight with software that had never been meant to do what we were asking. The parts of the community that made it ours lived in the cracks between the tools, and phpBB kept handing me maintenance and security headaches I hadn't asked for. The site started to feel less like a thing I owned and more like a landlord I had to keep paying.
So in 2013 I tore it down and built it again, this time in Rails and Angular 1.2. Not to chase a shinier stack — to build it properly this time, ours, in the tools I'd grown into. Temple stopped being a clever pile of other people's tools and became something we'd actually designed — ours, down to the bones.
That stack has since aged out from under me. Angular 1.2 is long dead, its ecosystem abandoned, the whole front end fused to versions nothing will safely move anymore. Updating in place stopped being possible years ago — the only way forward is another rebuild, and I put that one off far longer than I should have. So Temple is being rebuilt again, onto a Rails API and a Next.js front end. The rule is the same as in 2013: keep the home intact while making the foundations easier to live with. The old BBCode, the undocumented content conventions, the profile pages and forum quirks aren't dead weight to clear out — they're the memory of the place, and sixteen years of people live in those details.
First version, stitched together from MODX, phpBB, and a lot of custom glue.
Rebuilt from scratch in Rails and Angular 1.2 so the site could finally be its own thing.
Moving to a Rails API and Next.js front end — carrying sixteen years of content and habits forward without losing them.
Why it matters
This isn't a portfolio piece I dressed up after the fact. It's the project that taught me most of what I actually know.
It taught me that architecture is something you feel. The wrong one turns every small request into a wrestling match with your own code. And a rebuild isn't about chasing what's new — sometimes you tear the whole thing down just to win back the room to care about it properly.
It also taught me what "legacy" really means. Not old code. People's posts, their profiles, the in-jokes, the weird formatting they always used, the threads they'd point a new member to. Wipe that out and you haven't shipped a rebuild — you've evicted everyone and called it progress.
Sixteen years in, that's the whole job now: keep a place alive that I helped start and spent years living in myself, outgrow the tools that got us here, and come back with enough experience to protect the soul of it while making everything underneath worthy of how long it's lasted.
The Temple still stands — taking in new students, masters, and dwellers, holding the stories they leave behind. And it will go on standing.
What it does
One integrated home
Forums, profiles, pages and content under a single roof — the community's stories, discussions and shared rituals in one place.
Built for roleplay
A purpose-built Rails domain model shaped around how the community actually plays — characters and behaviors no off-the-shelf forum could hold.
Legacy that survives
Years of posts carried intact across two full rebuilds: legacy BBCode and custom tags like [more] still render exactly as they always did.
Migration, not replacement
The current Rails API / Next.js rebuild is designed to carry sixteen years of content, habits and expectations forward — not to start from a clean slate.
Come knock on the door.
Got a strange idea, a collaboration, or just want to argue about history and dice math? I answer to all of it.
hello@malkav.pro