Now in Beta

Keep your users in the loop

Your marketing team creates in-app messages from a dashboard. Your devs drop in a lightweight SDK. Everyone sees the analytics.

Everything you need to engage your users

A complete toolkit for in-app messaging — from creation to analytics.

In-App Messages

Create and manage messages from a simple dashboard. Your marketing team writes the copy, picks a status, and hits publish.

Slots & Placements

Devs define display locations (slots) in the app. Marketing decides which messages go where — no code changes needed.

A/B Testing

Create variants with weighted distribution. Test different copy and measure what works best.

Real-Time Analytics

Track impressions, clicks, dismissals and CTR. See performance by message, slot, or across the whole project.

Lightweight SDK

A React hook that fetches your messages. A few lines of code, no heavy dependencies, works with any setup.

How it works

Three steps to start reaching your users where they already are.

1

Devs set up slots

Create a slot in the dashboard and add the SDK hook to your app. That's the only code you'll write.

2

Marketing creates messages

Write your message, pick a slot, set the status. Add variants if you want to A/B test.

3

Users see it, you measure it

Messages show up in your app instantly. Impressions, clicks, and CTR flow back to the dashboard.

Get started in minutes

Wrap your app with the provider, use the hook wherever you need messages.

App.tsx
import { LoopanaProvider, useSlot } from '@loopana/react'

function App() {
  return (
    <LoopanaProvider apiKey="pk_live_xxx">
      <YourApp />
    </LoopanaProvider>
  )
}

function ChatPage() {
  const { message } = useSlot("chat-banner")

  if (!message) return null

  return (
    <div>
      <h3>{message.title}</h3>
      <p>{message.body}</p>
    </div>
  )
}

Ready to keep your users in the loop?

Free while in beta. Set up in minutes, no credit card required.

Start for free