Hangsolow.OptimizelyAudienceSearch
1.3.0
dotnet add package Hangsolow.OptimizelyAudienceSearch --version 1.3.0
NuGet\Install-Package Hangsolow.OptimizelyAudienceSearch -Version 1.3.0
<PackageReference Include="Hangsolow.OptimizelyAudienceSearch" Version="1.3.0" />
<PackageVersion Include="Hangsolow.OptimizelyAudienceSearch" Version="1.3.0" />
<PackageReference Include="Hangsolow.OptimizelyAudienceSearch" />
paket add Hangsolow.OptimizelyAudienceSearch --version 1.3.0
#r "nuget: Hangsolow.OptimizelyAudienceSearch, 1.3.0"
#:package Hangsolow.OptimizelyAudienceSearch@1.3.0
#addin nuget:?package=Hangsolow.OptimizelyAudienceSearch&version=1.3.0
#tool nuget:?package=Hangsolow.OptimizelyAudienceSearch&version=1.3.0
Hangsolow.OptimizelyAudienceSearch
A lightweight Optimizely CMS 12 shell module that adds a real-time search/filter bar to the "Who can see this content?" audience picker in the CMS editorial UI.
When editors personalize content blocks, the audience list can grow long. This module injects a live filter input so editors can quickly find the right visitor group without scrolling.
Features
- 🔍 Real-time filter input inside the audience tooltip
- ✖ Clear button and Escape-key support
- 🖊 Also enhances the Rich Text Editor personalization dialog (scrollable list)
- Zero server-side dependencies — pure client-side Dojo AMD module
- One-line setup
Compatibility
| Optimizely CMS | .NET |
|---|---|
| 12.x | 10 |
Installation
dotnet add package Hangsolow.OptimizelyAudienceSearch
Or add to your .csproj:
<PackageReference Include="Hangsolow.OptimizelyAudienceSearch" Version="1.0.0" />
Note: This package requires the Optimizely NuGet feed. Add it to your
nuget.config:<add key="optimizely" value="https://api.nuget.optimizely.com/v3/index.json" />
Setup
In your Startup.cs or Program.cs, call AddOptimizelyAudienceSearch() as part of your service configuration:
services
.AddCmsAspNetIdentity<ApplicationUser>()
.AddCms()
.AddOptimizelyAudienceSearch(); // ← add this
That's it. The module registers itself with Optimizely's protected module system and its client resources are served automatically.
How it works
The package ships a protected Optimizely shell module containing a Dojo AMD module. On install, an MSBuild .targets file copies the module files into your project's modules/_protected/Hangsolow.OptimizelyAudienceSearch/ directory. The AddOptimizelyAudienceSearch() extension method registers the module name with ProtectedModuleOptions so the CMS shell can load it.
Contributing
Pull requests are welcome. Please open an issue first to discuss any significant changes.
License
Sample App
This repository includes an Alloy CMS sample at samples/AlloySample and an Aspire AppHost at samples/AlloySample.AppHost.
Run it with:
dotnet restore samples/AlloySample.AppHost/AlloySample.AppHost.csproj
dotnet run --project samples/AlloySample.AppHost/AlloySample.AppHost.csproj
The AppHost starts SQL Server and launches the Alloy sample web app.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- EPiServer.CMS.UI.Core (>= 12.0.2 && < 13.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.0 | 132 | 5/14/2026 |
| 1.3.0-beta.3 | 73 | 5/14/2026 |
| 1.3.0-beta.2 | 75 | 5/14/2026 |
| 1.3.0-beta.1 | 74 | 5/14/2026 |
| 1.2.0 | 146 | 3/28/2026 |