Community RaidersDEVELOPER FIELD GUIDEVisit Community Raiders

COMMUNITY RAIDERS / ENGINEERING

Architecture & ownership

Keep identity, persistent gameplay state and browser presentation separate.

Source-backed guide · 2026-10-26

One service, distinct responsibilities

The current deployment is a FastAPI service with persistent SQLite and self-hosted browser assets. The dashboard and docs are normal HTML; character/campsite presentation uses pinned Phaser4.2.1. There is no separate custom3D engine.

WEBSITEDashboardCreator & player controls
TWITCHNative panelLinked viewer + channel
PHASERRaidervilleAccepted room state
SERVER AUTHORITYCommunity Raiders APIIdentity · community scope · inventory · progression
Persistent SQLite storageShared appearance / community-owned gameplay records
Browsers request changes. The API validates identity and ownership; persistent state determines what renders.
LayerOwnsDoes not own
TwitchVerified platform identity and approved platform integrationsCommunity inventory, combat results or our XP rules
FastAPIAuthentication, community binding, validation, accepted mutations and room lifecycleClient-supplied grants or client-decided rewards
SQLitePlayer/community records, shared appearance, scoped gear/progression and session dataBrowser layout or animation state
Browser / PhaserInputs, previews, interpolation and rendering accepted stateAuthoritative identity, inventory or rewards

Where to work

ConcernSource seam
Application and routesapp/main.py, app/config.py
Website identity/community contextapp/auth.py, app/player_login.py, app/player_context.py
Shared appearance and community inventoryapp/player_appearance.py, app/outfits.py, app/viewer_inventory.py
Native panelapp/extension_auth.py and app/static/extension/
Raidervilleapp/raiderville.py, app/raiderville_web.py and app/static/raiderville/
Chat permission setupapp/chat_authorization.py; transport activation is separate

Current runtime limits

The runtime command uses one worker. Pending account-login intents and streamer activity/live caches include process-local state; this is not a claim of multi-instance readiness. Do not increase workers or split services without reviewing those ownership and persistence boundaries.

The API and creator website use separate configured origins. The Extension uses its own approved origins and cookie-free viewer requests. The docs hostname is read-only public content, not another authenticated API origin.

CHECK THE IMPLEMENTATION

Read the source

Links are pinned to the edition above. Repository access is managed separately.