Architecture
Presentum separates presentation logic into five clear layers:Fetch candidates
Your app fetches presentations from Firebase Remote Config, APIs, or local sources.
Guards process
Engine runs all guards in sequence to determine eligibility, apply rules, and update state.
The five layers
1. Payloads
Domain data - campaigns, tips, app updates
2. Guards
Business logic - eligibility, targeting, scheduling
3. Engine
State management - slots, transitions, history
4. Storage
Persistence - impressions, dismissals, conversions
5. Outlets
UI rendering - widgets without business logic
Key concepts
Surfaces
Where presentations appear. Named locations in your UI:Payloads
What you show. Your domain objects:Items
Concrete decisions: “show this payload with this option on this surface”:Slots
Each surface has one slot containing:- Active item - Currently displayed (or null)
- Queue - FIFO list of items waiting