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

# Overview

> Show your release notes inside your own app.

The widget puts your release notes inside your product, where customers already are, instead of hoping they visit your page. Attach it to a "What's new" button or a bell icon, and new releases surface automatically.

## What it does

* Shows your published releases and roadmap in a panel inside your app
* Automatically pops up the latest release a visitor hasn't seen yet
* Follows a light, dark, or system theme
* Can be opened, closed, and positioned programmatically from your own UI

## Set it up

<Steps>
  <Step title="Get your script">
    Go to **Settings → Widget**. You'll find your widget script and a preview.
  </Step>

  <Step title="Install it">
    Add the script to your app, or install the SDK via npm, yarn, or CDN. Full
    instructions in [Widget install](/developers/widget/install).
  </Step>

  <Step title="Configure and control it">
    Set appearance and behavior options with
    [configuration](/developers/widget/configuration), and open or close the
    widget and popup with the [methods](/developers/widget/methods).
  </Step>
</Steps>

## How "seen" state works

The widget does not identify users, and there is no user or identity option to pass to it.

Instead, it tracks which releases have already been shown in an `onset:latest` cookie on your own domain, holding a comma-separated list of release IDs. On load, the widget compares your latest release against that cookie:

* **Not in the cookie**: the release popup opens, and the ID is added to the cookie.
* **Already in the cookie**: nothing happens.
* **No cookie at all**: the current latest release ID is recorded and no popup is shown, so a first-time visitor isn't interrupted by an announcement they have no context for.

Set `showLatestPopup: false` in your [configuration](/developers/widget/configuration) to disable the popup entirely and open the widget only when the user asks for it.

<Note>
  Because seen state lives in a cookie, it is per browser and per domain. The same person on a second device, in a different browser, or after clearing cookies will be treated as new. If you need per-user read state, track it yourself and call [`openPopup`](/developers/widget/methods) when you decide it's warranted.
</Note>

## What appears in the widget

The same published, public releases that appear on your page. [Private releases](/guides/releases/visibility) and drafts are excluded.

<Tip>
  Put the widget trigger somewhere persistent, like a nav bar or user menu, rather
  than in a modal users close and never open again.
</Tip>
