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 free

Setup steps

  1. 1

    Install: flutter pub add upstep_flutter

  2. 2

    Wrap your app near the root with Upstep(apiKey: ...)

  3. 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 works

Start collecting feedback in Flutter today

Free plan. No credit card. Your API key is ready the moment you sign up.

Get started free