Mobile
Feedback SDK for Flutter apps
A dedicated Flutter package with an inherited controller, a floating launcher, and a bottom-sheet feedback flow that talks to the same Upstep project as your web app.
Get your API key freeSetup steps
- 1
Install: flutter pub add upstep_flutter
- 2
Wrap your app near the root with Upstep(apiKey: ...)
- 3
Keep FeedbackSheet() and FeedbackButton() mounted in the same subtree, or open the sheet from your own button via Upstep.of(context).openSheet()
Code
dart
import 'package:flutter/material.dart';
import 'package:upstep_flutter/upstep_flutter.dart';
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Upstep(
apiKey: "upstep_xxx",
child: Scaffold(
appBar: AppBar(title: const Text("Upstep demo")),
body: Stack(
children: const [
Center(child: Text("Your app")),
FeedbackSheet(),
FeedbackButton(),
],
),
),
),
);
}
}- The Flutter SDK persists an anonymous visitor id locally for vote dedupe, then switches cleanly to userId when you call identify() after login.
✦
While you're here: connect an AI agent
Every Upstep project ships a built-in MCP server. Once feedback starts flowing in from Flutter, Claude Code, Cursor, or any MCP client can list it, triage it, and file Dev-only tasks, without leaving your editor.
See how the MCP server worksStart collecting feedback in Flutter today
Free plan. No credit card. Your API key is ready the moment you sign up.
Get started free