medium complexity extracted Organization Management Confidence: 100%
6
Components
106
Shared
0
User Stories
Yes
Analyzed

Description

Feature Toggles gives Organization Administrators the ability to enable or disable specific platform capabilities for their organization independently of the global release schedule. Each feature toggle corresponds to a distinct product capability such as speech-to-text input, gamification, encrypted assignments, or expense reimbursement. Disabling a toggle hides the corresponding UI elements and disables the related API endpoints for that organization's users. This allows Norse Digital Products to ship features to production for early-adopter organizations while keeping them hidden from others until they are ready, and allows organizations to opt out of features that are not relevant to their context or that conflict with their internal processes. The toggle dashboard shows each feature's status, a description, and a link to documentation.

User Flow

Feature Toggles user flow
Click to expand

Analysis

Business Value

Feature toggles serve a dual purpose: they give Norse Digital Products the operational control needed to roll out new capabilities gradually with minimal risk, and they give organizations the autonomy to shape their own product experience. Organizations like HLF, which is coordinating a parallel portal project, may need to defer certain features to avoid overlap. Others may want to enable experimental features ahead of general availability to gain a competitive advantage in volunteer engagement. This flexibility significantly reduces the coordination overhead of multi-organization deployments and supports the inkrementell utrulling principle identified across all workshop organizations. From a product operations perspective, feature toggles also provide a safe mechanism for incident response — a misbehaving feature can be disabled for affected organizations without a code deployment.

Implementation Notes

Feature flags are stored in the feature_flags table with columns for organization_id, feature_key, enabled boolean, and metadata. The API middleware reads the feature flag state from a Redis cache (TTL 60 seconds) backed by PostgreSQL, so toggles propagate quickly without database load on every request. The admin portal renders a toggle list page using a data table with switch controls and inline descriptions fetched from a static feature registry file. The registry defines all known feature keys, default states, and human-readable descriptions. On the mobile app, the feature map is included in the session bootstrap payload alongside terminology, so no extra requests are needed. Flutter widgets consume the feature map via a Riverpod provider and conditionally render or hide UI elements. API endpoints enforce feature access server-side regardless of client state to prevent bypass.

Components (112)

User Interface (2)

Service Layer (2)

Data Layer (2)

Shared Components

These components are reused across multiple features

Service Layer (34)

Data Layer (22)

Infrastructure (38)

infrastructure Keychain/Keystore Adapter low Shared infrastructure JWT Claims Extractor low Shared infrastructure Organization Labels Adapter low Shared infrastructure Keychain/Keystore Adapter low Shared infrastructure Auth API Client medium Shared infrastructure REST API Client medium Shared infrastructure WCAG Accessibility Adapter low Shared infrastructure Registration API Client low Shared infrastructure Accounting API Client high Shared infrastructure PDF Renderer Adapter medium Shared infrastructure File Share Adapter low Shared infrastructure FCM/APNs Adapter high Shared infrastructure Share Sheet Adapter low Shared infrastructure Share Plus Adapter low Shared infrastructure Platform Accessibility Bridge medium Shared infrastructure Semantics Override Adapter high Shared infrastructure URL Launcher Adapter low Shared infrastructure Markdown Content Renderer low Shared infrastructure Network Connectivity Monitor low Shared infrastructure Expense Receipt Storage Adapter low Shared infrastructure Audit Log Writer low Shared infrastructure Feature Flag Checker low Shared infrastructure Logo Upload Adapter low Shared infrastructure Terminology Constants Registry low Shared infrastructure Feature Flag Cache Adapter low Shared infrastructure Org Scope JWT Resolver medium Shared infrastructure Association Audit Logger low Shared infrastructure Token Blocklist medium Shared infrastructure Analytics Tracker low Shared infrastructure SEO Metadata Config low Shared infrastructure Analytics Tracker low Shared infrastructure Analytics Tracker low Shared infrastructure Sales Analytics Tracker low Shared infrastructure Email Provider Adapter low Shared infrastructure Terms of Service Content Provider low Shared infrastructure Legal PDF Asset Provider low Shared infrastructure Consent-Gated Script Loader low Shared infrastructure Legal Page Layout low Shared

User Stories

No user stories have been generated for this feature yet.