Being Human — Internal Docs

Overview

What this repo is and how the pieces fit together

This monorepo is the web presence and backend for Being Human (working title Factorio 2) — the falling-sand survival-automation game. The game itself is a separate Rust workspace (dougwithseismic/thisisbeinghuman-rust, locally ../Factorio-2); this repo handles everything around it: the landing page, wishlist, player accounts, invites, achievements, and the community plumbing (Discord, Steam). Live site: thisisbeinghuman.com.

The map

WhereWhatPort
apps/webNext.js landing page / site3000
apps/apiHono backend — wishlist, auth, invites, achievements3001
apps/docsThis docs site (Fumadocs)3003
packages/sharedZod schemas + types shared by api and web
packages/uiShared React components
packages/eslint-config, packages/typescript-configShared tooling config

Golden rules

  • Schemas live in @repo/shared. The API validates with them, the OpenAPI docs are generated from them, and the web app imports the same types. Change the schema, everything follows.
  • The backend is the canonical store. Steam and Discord are mirrors/notifications, never sources of truth.
  • Everything runs with zero setup. No DATABASE_URL locally means an embedded Postgres (PGlite). Tests run against in-memory Postgres. If you need infra to run pnpm dev, something's wrong.

Quality gates

From the repo root, all of these must pass:

pnpm turbo run build check-types lint test

On this page