
Tailwind Compiled Almost Nothing
RoomCraft's stylesheet produced zero colour variables and no layout utilities — and its dark theme could not have worked no matter what the toggle wrote to the DOM. The build never complained once.
Read articleThoughts on building a startup studio, product updates, and lessons learned along the way.

RoomCraft's stylesheet produced zero colour variables and no layout utilities — and its dark theme could not have worked no matter what the toggle wrote to the DOM. The build never complained once.
Read article
Our package registry now speaks RubyGems alongside npm, PyPI, Maven, Cargo, Docker, NuGet and Composer. Our own marketing site had been claiming seven.
Read article
The last hosted service we depended on moved onto our own fleet. It took us a day to notice that the backups had gone with it.
Read article
A deploy that emitted no DATABASE_URL took the registry down. The fix emitted one that was there and wrong — and that was worse. Four separate things failed open in the same two hours.
Read article
Every page on blueforge.studio was rendered from scratch for every visitor, because our root layout read a request header. One line of diagnosis, and 107 pages became static.
Read article
A private package's README, a user's private package list, another account's version history, and the whole registry's audit log — all readable by anyone, all found in a single day of looking.
Read article
Five deploys reported success and changed nothing a visitor could see. The site had been running on a host nobody meant to put it on — and our own test asserted the fix must not be written.
Read article
A deploy died with an exit code and no message, because a container was capped at 512 MB by a default nobody had chosen. The host had 9.2 GB free.
Read article
Every clone, fetch and push failed for 75 minutes across 110 repositories. Our monitoring was fine the whole time, because we were watching the half of the service that was still working.
Read article
Two Docker images that had never once been built, and a cache volume that was never created. Both were configured, in files, by us — and no one had ever verified either.
Read article
Firestore tables, realtime channels, sixteen schemas and a control plane's data layer all moved to Postgres we run ourselves. One of the four hit a wall we should have seen coming.
Read article
In one week in June we dropped Beehiiv, replaced a third-party error tracker with one we run, and took Vercel's credentials out of CI that no longer deployed to Vercel. What it cost, and what it bought.
Read article
In May we wrote infrastructure as code, stood up self-hosted git, and shipped almost no product. Seven commits in the build system that entire month. Here is what that month bought.
Read article
Eight tables were documented as enforcing tenancy in code rather than in the database — including the servers and SSH keys. One of them was the reason it mattered.
Read article
Today we're launching Silver ($19/mo) and Gold ($39/mo) memberships — bundling forge-hosting, forge-git, forge-error-tracker, forge-control, and MailStackOS.
Read article
MailStackOS is our answer to expensive email delivery services: own your email pipeline with Hono API, BullMQ queue, and Postfix on Hetzner.
Read article
Twelve months, 41 products, 5 ecosystems, and countless pivots. Here's what we know now that we wish we knew when we started.
Read articleWe've completely rebuilt forge-error-tracker with multi-tenant auth, role-based access control, invite flow, and Stripe billing integration.
Read article
forge-git is a code review and collaboration layer that works with your existing GitHub/Gitea repos — enhanced PR workflows, AI suggestions, and merge queues.
Read article
forge-hosting is our new deployment platform: git push → Docker build → Traefik routing. Zero config, instant SSL, and automatic rollbacks.
Read article
Horizontal SaaS is saturated. Vertical SaaS is where the margins are. Here's why we're building GarageOS, ConstructionOS, and InspectionOS for Southeast Asian businesses.
Read article
Building a game is hard. Building a game studio is harder. ForgeStudio combines project management, team formation, and publishing tools in one platform.
Read article
GameVault solves a real problem: assets created for one game engine are hard to use in another. Our .gas interchange format makes assets portable across Godot, Unity, Unreal, and more.
Read article
Firebase served us well at launch. But as we scaled to 50K+ users and planned multi-region expansion, Firebase's pricing and complexity forced a rethink.
Read article
The architectural decisions that let us add 8 new language groups in 6 weeks — and why QuestLang's group system is the key to sustainable expansion.
Read article
Why we decided to build our own browser-based voxel RPG engine, and what we learned about WebGL performance, procedural generation, and multiplayer architecture.
Read article
How we adapted the QuestLang model for Nordic languages, starting with Danish — and what Viking mythology has to do with effective language retention.
Read article
Thailand's 70 million people, high smartphone penetration, and underserved English learners made it the perfect launchpad for our RPG language learning platform.
Read article