Being Human — Internal Docs

Roadmap & TODO

What exists, what's next, and open decisions

Done

  • API foundation — Hono + tsup + Vitest, app-factory pattern, OpenAPI + Scalar at /docs
  • Database — Drizzle on Postgres/PGlite, auto-migrations
  • Auth — better-auth email+password, sessions, /api/me
  • Wishlist — idempotent signup, count, rate limiting
  • Invitations — create / check / redeem, race-safe
  • Achievements — canonical store, idempotent unlock, Steam mirroring hook
  • Discord — event webhook + discord:setup server builder
  • @repo/shared — Zod schemas shared api ↔ web
  • This docs site
  • Landing page (apps/web) — hero, demo reel, story/epochs, systems, features, news, media gallery, roadmap, working wishlist form + count
  • Discord server built — channels created, webhook live, permanent invite discord.gg/fKkp8pvvFt
  • PostHog analytics — web pageviews + wishlist events, server events, launch dashboard (docs)

Next up

  • Deploy the API + web (deployment)
  • Steam page — Steamworks app, achievements defined with matching API names
  • Real trailer — the hero demo reel is generated from stills (ffmpeg ken-burns); replace with captured gameplay footage when ready

Later

  • Sign in with Steam (OpenID) and Discord OAuth
  • Achievement backfill sync (unlocks that predate a Steam link)
  • Scheduled Steam polling (wishlists, reviews) → #dev-log
  • Discord bot with slash commands (/invite, playtest-key DMs)
  • Playtest gating — tie build access to redeemed invites
  • Cloud saves / leaderboards (this API)
  • Multiplayer realtime server (Rust, deterministic-lockstep — not in this API)

Open decisions

  • Domain + final name confirmation ("Being Human")
  • Hosting (Railway vs. Fly vs. VPS) for the API
  • Whether the game client authenticates with session cookies or a token plugin

On this page