B Squared2
←  All work

Driftkeep

An idle RPG with offline progression and community goals — Godot client, NestJS API, full self-hosted infrastructure.

Client
Own product
Role
Founder & Lead Developer
Year
2026
Status
Live
Stack
Game Dev, NestJS, Postgres, Redis, WebSockets, Godot, Next.js
Driftkeep game screenshot

The vision

Driftkeep is an idle RPG built around the idea that progress should feel earned even when you're not playing. Offline gains, weekly community goals, and a persistent world keep players invested without demanding their attention.

What we built

The full stack, from the Godot 4.5 game client through to the self-hosted infrastructure:

  • Game client in GDScript, with split-resolution rendering, real-time combat, and offline progression
  • NestJS API with REST + WebSocket gateways, JWT auth, and a server-authoritative state model
  • PostgreSQL for persistence, with 70+ entities covering characters, inventory, quests, the social systems
  • Redis for sessions, real-time community goal counters, party state, and pub/sub
  • MinIO for self-hosted S3-compatible storage
  • Next.js apps for the marketing site, wiki, forum, and admin panel — all sharing infrastructure

Outcome

Driftkeep is live and being played by a growing community. The codebase is structured for long-term maintenance: 150+ design documents, comprehensive type safety, and a deployment pipeline that ships updates with a single command.

Something like this, for your business.

Tell us what you're working around at the moment and we'll tell you how we'd approach it.

00Cookies

This site uses Google Analytics to count visits and see which pages get read. It sets cookies, so it stays switched off unless you say yes. Nothing else is tracked, nothing is sold, and there is no advertising. What this means

00Analytics

We count visits with Google Analytics, which sets two cookies, to see which pages get read and improve the site. Google only processes it for us: no advertising, no data sharing, no profiles. You can turn it off now or any time from Cookie settings in the footer. The details