Feddy Docs
Flutter SDKInstallation

Installation

From flutter pub add to a working feedback modal in one flow — install, mount FeddyProvider, configure with your Project ID, drop in a button, verify in the dashboard.

This page takes you from a fresh Flutter project to a working feedback submission landing in your Feddy dashboard. Read top-to-bottom; every section is a step in the same flow.

Requirements

ItemVersion
Flutter3.10+
Dart3.0+
iOS deployment target12+
Android minSdk21+

Install the package

flutter pub add feddy_flutter

image_picker and in_app_purchase are bundled transitively — you do not need to add them yourself.

Get your Project ID

  1. Sign up at feddy.app and create a workspace
  2. Open Settings → API Keys
  3. Copy the Project ID — it looks like fed_xxxxxxxxxxxx (the fed_ prefix followed by 12 alphanumeric characters)

Project ID vs API Key

The Project ID (fed_xxxxxxxxxxxx) is safe to embed in your client app — it only grants ingest. The dashboard also generates API Keys (fed_sk_xxxxxxxxxxxx); those are server-to-server secrets and must never be shipped in a client. The SDK rejects anything starting with fed_sk_.

Configure and mount FeddyProvider

Call Feddy.configure(...) once at app launch and wrap your root widget in FeddyProvider. The provider mounts the built-in compose modal and Smart Review sheet so the imperative APIs (Feddy.openFeedback(), Feddy.requestReviewIfAppropriate()) work from anywhere in your widget tree.

import 'package:feddy_flutter/feddy_flutter.dart';
import 'package:flutter/material.dart';

void main() {
  Feddy.configure(apiKey: 'fed_xxxxxxxxxxxx');
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: const FeddyProvider(child: HomePage()),
    );
  }
}

Feddy.configure() is synchronous, fire-and-forget, and never throws — invalid keys or network failures log to the console rather than surfacing as a thrown error.

Verify the install

Drop the button below into any screen to confirm the SDK is wired up. It opens the bundled feedback modal — submit a quick test message:

import 'package:feddy_flutter/feddy_flutter.dart';
import 'package:flutter/material.dart';

class VerifyButton extends StatelessWidget {
  const VerifyButton({super.key});

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () => Feddy.openFeedback(boardKey: 'features'),
      child: const Text('Send Feedback'),
    );
  }
}

In the Feddy dashboard, navigate to Inbox — your test submission should appear at the top of the list within a second or two.

Offline retry

If the device was offline at submit time, the SDK queues the payload locally (via shared_preferences) and replays it on the next Feddy.configure(...) call. You don't need to handle this manually — but it does mean test submissions may take a moment to land if you're on a flaky network.

What's next

You're integrated. Continue with:

On this page