Mu'afa Riski Ali

Bloxboxd

WebSolo developer2026
Bloxboxd screenshot

Why it exists

Roblox holds tens of millions of experiences and no good way to keep a personal record of what you played or what your friends are into. The platform surfaces popularity, not taste. The goal was the Letterboxd model, a diary and a rating, applied to Roblox games.

The data decision

The core loop is deliberately small: search a game, log it, rate it, add a note if you want. Everything else serves that loop. The integration uses the official Roblox API rather than scraping, so metadata stays accurate when experiences get renamed or re-listed.

Most of the work sat in the data model. A log entry joins a user, a game and a timestamp, and the game record has to survive the source changing. Each row stores the canonical Roblox universe ID plus a snapshot of the display metadata taken at log time, so a diary never rewrites itself when a thumbnail changes.

What is live

TypeScript throughout, deployed on Vercel, Turso (LibSQL) as the primary store. Edge replication decided the stack. Query latency from Indonesia to a distant Postgres instance was the worst part of the first prototype, and replicating reads near the user removed it.

Game metadata goes through a cached server layer with a short TTL, refreshed lazily. That keeps the integration inside rate limits while still feeling live. The discovery surface reads from a materialised popularity view instead of aggregating per request, so page loads stay flat as the catalogue grows. The platform is public and usable today.