Talk to your users inside your app.

Banners, announcements, guided tours, checklists, surveys and an in-app inbox, targeted by who each user is and what they've done. Published in minutes, with no code changes.

Install once. Everything else happens in the dashboard.

Built for product, growth and support teams

message formats, one editor
6
snippet to install, ever
1
deploys to publish a message
0
environments: staging and production
2

Try it before you install anything

This is a sample app with Proly running inside it. Pick a format and use it the way your users would.

New: export any report to PDF

Reports

Last 30 days

Revenue

$48.2k

+12%

Active users

3,912

+8%

Churn

1.8%

−0.4

Every way to guide a user, in one place

One editor, one targeting engine and one SDK for every format. Each message lands only where it helps.

Live in three steps

Engineering spends an afternoon once. Product ships every message after that.

  1. 1

    Add the snippet

    Drop the SDK into your app and identify your users. It renders in a Shadow DOM, so it never clashes with your styles.

  2. 2

    Build your message

    Write it, style it, choose the audience and the schedule. Preview it as any real user before it goes out.

  3. 3

    Publish and learn

    Ship to staging, then production. Watch reach and responses, and iterate without a release.

Your engineers install it once

A small SDK, a typed API and sensible defaults. After the first deploy, product never has to file a ticket for a message again.

  • Shadow DOM rendering, SPA route awareness and lazy-loaded widgets
  • Staging and production environments with separate keys
  • Identity verification to keep user data trustworthy
  • Team roles and a public REST API with scoped keys
  • A headless notifications API when you want to draw the inbox yourself
app.ts
// Load once, anywhere in your appproly.init({ key: "pk_live_8f2c…" });// Tell Proly who is signed inproly.identify(user.id, {  name: user.name,  plan: user.plan,}, { hash: user.prolyHash });// Events power targeting and checklistsproly.track("report_created");

Questions, answered

Anything else? Sign in and look around; setup takes minutes.

Do I need an engineer for every message?

No. An engineer adds the snippet once. From then on, banners, announcements, tours, checklists, surveys and notifications are created, targeted and published from the dashboard.

Do users get an inbox?

Yes. The notification center adds a bell and an inbox to your app. Each user keeps their own read and unread state, notifications are grouped by category, targeted by segment, translated and themed like everything else, and new ones arrive with a toast. Prefer your own UI? Use the headless API and render it however you like.

Will it slow down or break my app?

Widgets load lazily and render inside a Shadow DOM, so your styles and Proly's never touch. Nothing is downloaded for messages a user isn't eligible to see.

Which frameworks does it work with?

Any web app: React, Vue, Angular, Svelte or plain HTML. The SDK follows client-side route changes, so single-page apps work out of the box.

How do I build a guided tour?

Open your app with the Chrome extension and click the elements you want to highlight. Proly stores robust selectors for you, so there's nothing to write by hand.

How does targeting stay accurate and private?

Targeting is evaluated on the server from the traits and events you send. Identity verification signs each user, so nobody can pose as someone else to see their messages.

Can messages match my brand and language?

Yes. Themes follow your colors and switch between light and dark automatically. AI translation drafts every language for you to review before publishing.

Ship your first message today

Create your workspace, add the snippet and have something live in your app before lunch.