Building in-app UI with Knock

Learn more about what in-app UI experiences you can build in Knock with our APIs and SDKs.

In addition to delivering to out-of-app channels such as email, push, SMS, and chat apps like Slack, you can also use Knock to build great in-app notifications experiences too.

You can use our in-app feed channel to build stateful, in-app notifications experiences like floating feeds, inboxes, toasts and banners, and you can use our preferences API to build powerful user-facing preference controls.

See a live demo

Why build in-app experiences on Knock?

  • Real-time ready. Our Knock Feed API comes ready with websocket support, no infrastructure setup required.
  • No data modeling required. We handle all of the common cases for you: accurate badge counts, polymorphic notifications, read, seen and archive tracking, and much more.
  • Build holistic experiences. Use the Knock workflow builder to create cross-channel notification experiences to power cases like "send to the in-app feed, if they don't see the feed message within 5 minutes then fallback to sending an email".
  • Complete APIs that are easy to use. We take all of the heavy lifting out of building APIs to support common in-app notification experiences, like preferences and feeds.
  • Drop-in components. We have components ready to help you get started with building in-app notification experiences in React.
  • Fully customizable. Want to build toasts instead of a feed? Want to build a full-page inbox experience? Need your notifications to match your style guide? It's easy to customize the experience by overriding styles, or components, or building your own headless UI using our lower level primitives.

Client SDKs available

We have the following SDKs available to use to build in-app experiences:

Under each you'll find guides and references to help you get started.

Going to production

You'll need to follow our checklist on going to production for any in-app notifications using Knock. Most importantly you'll need to secure your requests to the Knock API for each user.