Koder Mosaic — Universal Organization Management App

  • Area: Foundation (flagship product side)
  • Path: services/foundation/kompass/app
  • Kind: Cross-platform Flutter client for the Kompass engine

Role in the stack

Koder Mosaic is the flagship Koder product that lets any kind of organization — a company, a church, a school, a nonprofit, a condominium, a sports club, a cooperative — run its entire operation from a single cross-platform app. It is the consumer-facing companion to the Koder Kompass engine.

The name reflects the product's central metaphor: every organization is a mosaic of different pieces (members, units, roles, events, projects), and Mosaic's job is to let each piece shine as part of a bigger picture — regardless of whether the organization is a Fortune 500 company or a local chess club.

Distinctive features

  • Single codebase, all platforms — Flutter targets for Android, iOS, Linux, macOS, Windows, and Web from one repository
  • Terminology-aware UI — every label in the app is rendered through Kompass's Terminology Engine, so a church sees "Ministry" where a company sees "Department"
  • Fast org switching — users with multiple organizations (company + church + condo) toggle instantly via a top-level menu
  • Module-aware shell — the app loads the active org's Kompass modules, shows a Home summary first, and renders navigation only for enabled modules
  • Offline-first mobile — local cache of the active org, sync when online

Primary couplings

Consumer / dependency Relationship
services/foundation/kompass/engine Engine backend — org APIs, /me/bootstrap, modules, terminology
services/foundation/id/platform Authentication via Koder ID OIDC
services/foundation/pass/app Companion identity app (shared sign-in)
suite/kmail, suite/talk, ai/gateway, suite/cadence, suite/drive Integrations surfaced inside org modules

Interfaces

Surface Contract
MosaicShell Restores the last destination per org and renders module-filtered navigation
HomeScreen Shows active org summary: members, units, vacancies, alerts, and enabled modules
MembersScreen Directory filters, invitations, CSV import/export, bulk lifecycle actions
MemberDetailScreen Member profile edit, tags, and notes
KompassClient.getCurrentUserBootstrap() Consumes GET /api/v1/me/bootstrap when available
KompassClient.getOrgModules() Falls back to GET /api/v1/organizations/{id}/modules

Status

Active — Koder ID bootstrap, org switching, terminology-aware core screens, shell telemetry, module-aware Home navigation, and member directory lifecycle workflows are implemented. Offline cache/sync and deeper module workspaces remain backlog items.