Flutter SDK

In-app support for your Flutter app

One package from pub.dev puts support conversations, bug reports and a feedback board inside your Flutter app. Your team answers from one dashboard; replies stream into the open thread live and arrive as push notifications when the app is closed.

clariodesk on pub.dev · Live in 10 minutes · No backend to deploy

How it works

Three calls and you're live

No webhooks, no OAuth dance, no support backend to build. Devices register themselves with hardware-backed keys, so there's no user-auth plumbing either.

1. Install the package

flutter pub add clariodesk

2. Initialize once at app start

import 'package:clariodesk/clariodesk.dart';

Future<void> main() async {
  // First launch generates a hardware-backed device key and registers it.
  // Later launches reuse it with no network round-trip.
  await ClarioDesk.init(apiKey: 'pk_live_…');
  runApp(const MyApp());
}

// Optional — after your own auth knows who the user is.
await ClarioDesk.identify(externalId: user.id, email: user.email);

3. Open the support UI

Prebuilt and themeable, or skip it entirely and build your own on the headless API.

// The host pushes one route; the SDK owns everything inside it.
ClarioDesk.openInbox(context);
Built for Flutter

What's specific to Flutter

All three ClarioDesk SDKs share one frozen contract, so every feature behaves the same everywhere. These are the parts that are particular to Flutter.

Your router is never touched

The prebuilt screens render inside a self-owned modal with a private nested navigator, so GoRouter or Navigator 2.0 keeps working exactly as it did.

Streams, not polling

ClarioDesk.ticketsStream() is a normal Dart stream you can drop straight into a StreamBuilder. It auto-primes and updates in realtime.

About 1 MB

Roughly 1 MB added to an app that already ships Firebase, about 3.5 MB standalone. Push is a separate optional package, so headless installs pull no native dependencies they don't use.

What you get

One SDK, the whole customer relationship

Support, bug reports and feedback share one customer record — so the person who joined your waitlist, filed a bug and voted for dark mode is one person, not three strangers.

  • Support conversations with live streaming replies
  • Push notifications when the app is closed
  • Bug reports with device, OS, version, network and logs attached
  • Photos, video and file attachments both ways
  • An in-app feedback board with voting
  • A satisfaction rating on every resolve
  • One-click escalation to a pre-filled Linear issue
  • RevenueCat subscription status on every ticket
FAQ

Flutter questions, answered

Run flutter pub add clariodesk, call ClarioDesk.init() with your publishable pk_live_ key at app start, and present the prebuilt support UI with ClarioDesk.openInbox(context). That is the whole integration — there is no backend to deploy, no webhooks to configure, and no user-auth plumbing, because devices register themselves with hardware-backed keys.

Yes. The prebuilt screens render in a self-owned modal with a private nested navigator, so they never touch your router. GoRouter, Navigator 2.0 and any custom routing keep working unchanged.

About 1 MB if your app already ships Firebase, and about 3.5 MB standalone — several times lighter than typical support SDKs. Push notifications ship as a separate optional package, so a headless install never pulls native dependencies it does not use.

Yes. The headless API exposes the same methods and live subscriptions without any UI, so you can build a support flow in your own design system. The docs are written to be pasted into Claude Code or Cursor, which will generate that flow for you.

Be first in line when
ClarioDesk launches

We onboard the waitlist in small batches. Early users get hands-on integration help — from a human — and a real vote on what ships next, starting with the feedback board.

No spam, ever. We'll only email you about ClarioDesk.