# Presentum > A declarative Flutter engine for building dynamic, conditional UI at scale ## Docs - [Popup hosts](https://docs.presentum.dev/advanced/popup-hosts.md): Advanced dialog and overlay management with PresentumPopupSurfaceStateMixin - [Surface observers](https://docs.presentum.dev/advanced/surface-observers.md): Reactive surface state observation with PresentumActiveSurfaceItemObserverMixin - [Guards](https://docs.presentum.dev/core-concepts/guards.md): Learn how guards control when and what presentations are shown - [Outlets](https://docs.presentum.dev/core-concepts/outlets.md): Learn how outlets render presentations in your UI - [Core concepts overview](https://docs.presentum.dev/core-concepts/overview.md): Understand Presentum's architecture and key building blocks - [Payloads, Options & Items](https://docs.presentum.dev/core-concepts/payloads-options-items.md): Learn about the core data types that flow through Presentum - [Slots & State](https://docs.presentum.dev/core-concepts/slots-state.md): Understand how Presentum manages state through slots - [Storage](https://docs.presentum.dev/core-concepts/storage.md): Implement the storage interface for tracking impressions, dismissals, and conversions - [Surfaces](https://docs.presentum.dev/core-concepts/surfaces.md): Define where presentations appear in your app - [Eligibility system](https://docs.presentum.dev/features/eligibility-system.md): Build complex eligibility rules with conditions, rules, and extractors - [Event system](https://docs.presentum.dev/features/events.md): Capture and handle presentation lifecycle events - [Inherited widgets](https://docs.presentum.dev/features/inherited-widgets.md): Use InheritedPresentumItem to access items in widget trees - [Transition observers](https://docs.presentum.dev/features/transition-observers.md): React to state changes with comprehensive diff snapshots - [Building outlets](https://docs.presentum.dev/guides/building-outlets.md): Create widgets that render presentations - [Implementing guards](https://docs.presentum.dev/guides/implementing-guards.md): Step-by-step guide to building guards for eligibility logic - [Implementing storage](https://docs.presentum.dev/guides/implementing-storage.md): Build the storage layer for tracking impressions, dismissals, and conversions - [State management](https://docs.presentum.dev/guides/state-management.md): Control presentation state through the Presentum API - [Installation](https://docs.presentum.dev/installation.md): Install Presentum in your Flutter project - [Introduction](https://docs.presentum.dev/introduction.md): Learn what Presentum is and how it helps you build dynamic, conditional UI at scale - [Quickstart](https://docs.presentum.dev/quickstart.md): Build your first Presentum-powered presentation in 5 minutes - [Happy New Year 🥳 (seasonal variants + scheduling)](https://docs.presentum.dev/recipes/happy-new-year.md): Ship a holiday experience with themed variants, time windows, cooldowns, and clean Presentum guards. - [Milestone achieved 🎉 (fullscreen dialog, declarative)](https://docs.presentum.dev/recipes/milestone-fullscreen-dialog.md): Show a congratulations fullscreen dialog without calling showDialog from your feature code. - [Firebase Remote Config integration](https://docs.presentum.dev/recipes/remote-config.md): Manage campaigns dynamically with Firebase Remote Config - [User preferences (feature toggles that remove UI everywhere)](https://docs.presentum.dev/recipes/user-preferences-feature-toggles.md): Build Settings toggles from a server-driven catalog, and make disabling/removal propagate across the entire app declaratively. ## Optional - [GitHub](https://github.com/itsezlife/presentum) - [pub.dev](https://pub.dev/packages/presentum) - [Ultimate production-ready example app](https://example.presentum.dev)