Skip to content

Working with the Reason codebase ​

Reason is a social app built on the Wish stack. Discussions, profiles and files are documents that the users' own devices store and sync with each other. It's also the stack's example app, and these pages explain its codebase as a worked example. Each page takes a problem you'll meet building your own app on the stack and shows how Reason solves it.

The stack's own layers, such as the Document Store, the SDKs and the app framework, are documented where they live, mostly on developer.wishtech.fi. Pages here cover what Reason decides for itself and link to those layers for the rest.

These docs are added one page at a time. A page is published once it has been checked against the code. The map below shows what's written and what's planned.

How a page reads ​

  1. Status: whether what it describes is settled, or works with parts still missing.
  2. Problem: what you're trying to do, and why the obvious approach falls short.
  3. How Reason does it: the mechanism, the files, the flow.
  4. Copy it into your app: what to take and what to leave.
  5. Gotchas: what bit us.

Paths that start with backend-rs/, webui/, locales/ or i18n/ are inside apps/reason/. All other paths start at the root of the wish-stack repo.

The map ​

Titles in italics are planned and not written yet.

Start here ​

  • Your first feature
  • Codebase tour
  • The dev loop

Data ​

  • Schemas & documents
  • Membership & roles
  • Files & media

Sync ​

  • How Reason uses sync
  • Keeping the UI live

App platform ​

  • Translations: one catalog per language, shared by backend and webui, AI-assisted
  • Settings & app state
  • Notifications

UI ​

  • Talking to the backend
  • Navigation
  • Mobile layouts

Tooling & shipping ​

  • Debugging
  • Testing
  • Building & releasing