> ## Documentation Index
> Fetch the complete documentation index at: https://docs.presentum.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Building outlets

> Create widgets that render presentations

## Overview

Outlets are widgets that render presentations. They watch a surface and rebuild when the active item changes.

## Basic outlet

```dart theme={null}
class MyOutlet extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return PresentumOutlet<CampaignItem, AppSurface, CampaignVariant>(
      surface: AppSurface.homeTopBanner,
      builder: (context, item) {
        return BannerWidget(
          title: item.metadata['title'] as String,
          onClose: () => context
              .presentum<CampaignItem, AppSurface, CampaignVariant>()
              .markDismissed(item),
        );
      },
    );
  }
}
```

[Learn more about outlets ->](/core-concepts/outlets)

## Production example

<Card title="See popup host implementation" icon="code" href="https://github.com/itsezlife/presentum/blob/master/campaigns/presentum/widgets/campaign_popup_host.dart" horizontal>
  Real-world dialog management with queuing
</Card>
