S4Mind · conglomerate

Cross-section

The layers are the concerns a frontend decision can touch. Each core is one real decision, drilled only through the layers it crossed. Pick a core to read it, or pick a layer to see which decisions cut through it.

A decision appears here only once its approach is verified and its trade-offs are confirmed. Today that is the six from FIRS; empty layers stay visible rather than being filled in.

D1 · FIRS Tax Management System

Navigation declared as data, filtered by role

  • Security
  • UX
  • Architecture
Problem
Four kinds of user share one dashboard application, and each should be offered only the areas that apply to them.
Approach
Every navigation entry lists the roles allowed to see it. An entry with no list is open to every role. The sidebar filters this one list against the signed-in user's role, which is held in the Redux session store.
Trade-offs
The rules sit in one reviewable place, and adding a role or a page is a change to data, not to components. The list decides what the interface offers. Which data a role may fetch is a separate concern outside the frontend code reviewed, so the replica below does not model it.
Outcome
One configuration drives the sidebar for all four roles.
Read it in the FIRS Tax Management System case study →
Every decision

All decisions, as a list