Skip to content
K

The Floor

The Monday Morning desktop app is a native application built with Tauri 2.x and Svelte 5. It is local-first project management for developers — it runs your agents, whoever sells the model. You track tasks, specs, issues, and notes across repos, and you dispatch, watch, and record agent work from one screen: the Floor.

Project data lives in .mm/ directories inside your repositories. The app reads and writes these files directly — there is no separate database or server process. Sign-in is optional: signed out, everything works locally (“Local only — team sharing off”); signing in enables cloud team visibility.

The Floor is a fixed five-row layout. It never rearranges, and there is no page navigation — what changes is what occupies the middle.

┌────────────────────────────────────────────────┐
│ Title bar logo · project · settings · team │ 34px
├────────────────────────────────────────────────┤
│ Command bar › ask · CODE/PLAN · model · Dispatch │
├────────────────────────────────────────────────┤
│ Roster one card per running agent │
├────────────────────────────────────────────────┤
│ │
│ Stage one occupant at a time │ flexes
│ │
├────────────────────────────────────────────────┤
│ Doors bar Roadmap · Artifacts · Review · │ 34px
│ Git · Activity Usage · sync · v │
└────────────────────────────────────────────────┘
RowWhat it is
Title barThe app logo, the project cell and its switcher menu, the Settings toggle, the team cell (avatar stack), and the account cell. Settings is a mode you toggle, not a page you navigate to.
Command barThe one front door: type an ask, pick Code or Plan and a model, and dispatch an agent.
RosterOne card per running agent in the active project. Cards page rather than scroll, and selecting a card puts that agent’s session on the stage.
StageThe only row that flexes. It hosts exactly one occupant at a time — a live session, the settings takeover, an artifact’s detail view, the roadmap board, and so on.
Doors barFive project doors that open drawers over the stage — Roadmap, Artifacts, Review, Git, Activity — plus the account-scope Usage cell, the machine-scope sync cell, and the version string.

The layout is fluid down to a 1024px-wide floor with no horizontal window scrolling; below an 880px height the window scrolls vertically.

The Floor holds a few rules everywhere, so once you learn them they apply on every surface:

  • One screen. There is no navigation stack. The stage swaps occupants; the other four rows stay put.
  • No toasts. Transient pop-ups do not exist — conditions appear as inline notice regions in the row they concern, and they stay until resolved or dismissed.
  • Almost no modals. Settings, entity detail, team views — everything that used to be a dialog is a stage occupant or an inline row. A single confirmation modal remains (removing a project).
  • One filled button per region. Each region has at most one filled “commit” button — the thing that actually commits work. When the app knows a commit would refuse (nothing typed, no provider connected), the fill is withheld rather than a fake-disabled control invented.
  • Exact counts, never summaries. Faces and meters show real figures — 6 · 2, +4037 / −1642, 3/8 — never rounded percentages or “a few”.
  • Warmth means a person is blocking. The warm highlight appears only when something genuinely needs you. It is never used for emphasis.
  • One black theme. There is no light mode and no skin system; the whole app is built on one semantic token set.