@tour-kit/announcements · Pro
Ship the news
inside your product.
In-app announcements for React — modal, banner, toast, slideout, and spotlight variants with scheduling, audience rules, and a priority queue.
Runs free in dev — pay once ($99) when you ship.
5 variants · priority queue · frequency rules · your repo, your code
Live demo
Press the button. That's the component.
The modal and toast below are the live @tour-kit/announcements components — focus-trapped, Esc to close, styled with this site's tokens. This very site's sale banner runs on the same package.
Release notes nobody reads
Features users never discover may as well not exist. The fix is announcing in-product — without turning your app into a popup festival.
Changelogs live in a graveyard
The /changelog page gets traffic from you and your cofounder. Users learn about features by accident.
News lands inside the product
Announce where users already are — modal for the big stuff, toast for the small, spotlight to point at the new button.
Popup chaos, zero coordination
Three teams ship three banners and the user gets all of them at once, on their first session back.
One queue, clear priorities
The priority queue shows one announcement at a time; frequency rules and audience targeting keep each one relevant.
$300/mo for a banner
Messaging suites price in-app announcements like enterprise software and render them in their styles, not yours.
Your design system, $99 once
shadcn-native components or fully headless render props — the announcement looks like your product.
Three steps to production
No iframe embeds, no script tags, no vendor dashboard. The code lands in your repo.
- 1
Install
One package, zero config.
terminalpnpm add @tour-kit/announcements - 2
Compose
Declarative config, headless or pre-styled — the announcement renders with your design system.
release-modal.tsximport { AnnouncementsProvider, AnnouncementModal, } from '@tour-kit/announcements' <AnnouncementsProvider announcements={[release]}> <AnnouncementModal id="v2-launch" useConfig /> </AnnouncementsProvider> - 3
Ship it
The announcement lives in your bundle and your version control — no embed script, no vendor dashboard.
Read the docs
A messaging system, not a popup
Three pillars every userTourKit package shares, plus the coordination machinery that keeps announcements welcome.
Headless or pre-styled
Five shadcn-style variants, each with a headless render-prop twin for fully custom UI.
WCAG 2.1 AA accessible
Focus-trapped modals, Esc to dismiss, screen-reader announcements, reduced-motion safe animations.
The code lands in your repo
No embed script, no vendor dashboard. Announcements are config in your codebase, reviewed in your PRs.
Priority queue & frequency rules
critical > high > normal > low, one at a time; show once, per session, or every N days — per announcement.
Scheduling & timezones
@tour-kit/schedulingDate windows, business hours, and recurring patterns evaluated in each user’s local timezone.
Rich media embeds
@tour-kit/mediaYouTube, Vimeo, Loom, Wistia, GIF, and Lottie inside any announcement, lazy-loaded.
Try it free in dev — watermark until you license.
Full functionality in development and on localhost, no key required. One $99 license unlocks production for all Pro packages.
No signup, no credit card — install and go.
In-app messaging without the platform tax
| userTourKit | SaaS platforms | OSS libraries | |
|---|---|---|---|
| Cost | $99 once | $200–900/mo | DIY time |
| Priority queue | ✓ | ~ | — |
| Design system fit | Your components | Their iframe | CSS overrides |
The honest pitch
Why pick a fresh library?
Tour Kit is new — no legacy API debt, no corporate-UX baggage, no AGPL contamination. Built headless-first so you bring your own components and styles. Every chip below is a measured technical fact, not a marketing claim.
- < 8KB core gzipped
- WCAG 2.1 AA
- Lighthouse a11y 100
- TypeScript strict
- >80% test coverage
- MIT core
- React 19 ready
- shadcn-native
See the documentation or source on GitHub.
Announcement questions, answered straight
What developers ask before replacing the changelog page nobody visits.
Five variants from one config shape: centered modal for releases that matter, top/bottom banner for persistent notices, corner toast with auto-dismiss, slideout panel for longer changelogs, and spotlight that anchors to a specific element. Each has a headless render-prop twin.
Yes — pair with @tour-kit/scheduling to gate announcements by date windows, business hours, recurring patterns, and timezones. Ship the config on Friday; the banner appears Monday 9am in each user’s local time.
A priority queue (critical > high > normal > low) shows one at a time by default — the next dequeues when the current dismisses. Frequency rules (once / per session / every N days) and audience targeting decide who sees what, how often.
Yes. Announcement configs take a media slot — YouTube, Vimeo, Loom, Wistia, GIF, Lottie, or plain images via @tour-kit/media, with lazy loading and reduced-motion handling built in.
Everything works. @tour-kit/announcements runs unlicensed in development and on localhost with full functionality; production shows a small watermark until you activate a $99 lifetime license that covers every Pro package.
Announce it where they'll see it.
Install now, run it free in dev, license it when it ships.



