feeddo_flutter 0.1.6
feeddo_flutter: ^0.1.6 copied to clipboard
Feeddo Flutter SDK - A lightweight Intercom alternative for Flutter. AI-powered customer support, live chat, and feedback widget.
Feeddo Flutter SDK #
Drop a live AI support chat into your Flutter app with just 2 lines of code.
What is Feeddo? #
Feeddo is an AI-powered customer support widget for your Flutter app. Beining the best Intercom alternative for Flutter, Feeddo provides a native, lightweight, and AI-first experience. Here's what it does:
- AI Agent handles simple questions by reading your docs and FAQs
- Auto-creates support tickets when the AI can't solve the issue
- Live chat - You can jump in and chat directly with users
- Smart bug tracking - Auto-detects and creates issues for bug reports
- Feature requests - Captures and organizes feature requests from users
- Community board - Let users vote on feature requests and see known bugs
All this drops right into your app with zero hassle.
Screenshots #
1. Simple & Clean Home #
Your users get a clean dashboard to manage their conversations and tickets.
2. AI Support Agent #
If a user asks how to do something, the AI agent searches your docs and answers instantly.
3. Smart Bug Reporting #
If a user reports a bug, the agent automatically gathers details and creates a bug report for you.
4. Community Board #
Other users can see feature requests and reported bugs, upvote them, and add comments.
Installation #
Add to your pubspec.yaml:
dependencies:
feeddo_flutter: ^0.1.4
Then run:
flutter pub get
iOS Setup #
Feeddo requires a minimum deployment target of iOS 15.0.
- Open your project in Xcode (open
ios/Runner.xcworkspace). - Select the Runner project in the left navigation panel.
- In the project targets list, select Runner.
- Select the General tab.
- In the Deployment Info section, set Minimum Deployments to 15.0.
- Make sure your
ios/Podfilealso specifies platform 15.0:platform :ios, '15.0'
Quick Start #
1. Get Your API Key #
Sign up at feeddo.dev and grab your API key from the dashboard.
2. Initialize Feeddo #
Call Feeddo.init() when your app starts (usually in your main screen):
import 'package:feeddo_flutter/feeddo_flutter.dart';
await Feeddo.init(
apiKey: 'your-api-key-here', // Get this from feeddo.dev
context: context,
);
3. Show the Support Chat #
Add a button anywhere in your app to open the support widget:
ElevatedButton(
onPressed: () {
Feeddo.show(context); // Opens the support home screen
},
child: Text('Get Help'),
)
That's it! Your users can now chat with the AI and create support tickets.
4. Show the Community Board #
Want to show just the feature requests and bug reports? Use this:
ElevatedButton(
onPressed: () {
Feeddo.showCommunityBoard(context); // Opens feature requests & bugs
},
child: Text('Request a feature'),
)
Understanding Feeddo.init() #
The init() method sets up Feeddo with your user data. Here's what each parameter does:
await Feeddo.init(
// Required: Your API key from feeddo.dev
apiKey: 'your-api-key',
// Required: The BuildContext for showing notifications
context: context,
// Optional: Your app's user ID (links Feeddo to your users)
externalUserId: 'user_12345',
// Optional: User's display name (appears in chats)
userName: 'John Doe',
// Optional: User's email
email: 'john@example.com',
// Optional: Segment your users (e.g., 'pro', 'free', 'trial')
userSegment: 'premium',
// Optional: Track subscription status
subscriptionStatus: 'active',
// Optional: Any extra data you want to track
customAttributes: {
'plan': 'pro',
'signupDate': '2026-01-01',
'country': 'US',
},
// Optional: Enable/disable in-app notifications (default: true)
isInAppNotificationOn: true,
// Optional: Push notification token (for remote notifications)
pushToken: 'fcm-token-here',
// Optional: Push provider (fcm, apns, or onesignal)
pushProvider: FeeddoPushProvider.fcm,
);
Returns: The userId that Feeddo created for this user.
Notifications Setup #
Push Notifications #
1. Configure App & Dashboard
To allow Feeddo to send push notifications, you need to provide your Firebase Service Account credentials:
- Go to the Firebase Console > Project Settings > Service accounts.
- Click Generate new private key to download the JSON file.
- Go to feeddo.dev, select your app, and navigate to Settings > Notifications.
- Select Google (FCM) and upload the JSON file (or paste its contents).
If you haven't set up push notifications in your Flutter app yet, follow the Firebase Cloud Messaging Get Started guide.
2. Register Your Token
To get notifications even when the app is closed, register your push token:
String? token = await FirebaseMessaging.instance.getToken();
// When you get the FCM token
await Feeddo.registerPushToken(
pushToken: token,
pushProvider: FeeddoPushProvider.fcm, // or .apns, .onesignal
);
Or pass it directly to init():
await Feeddo.init(
apiKey: 'your-api-key',
context: context,
pushToken: 'your-push-token',
pushProvider: FeeddoPushProvider.fcm,
);
When a push notification arrives, handle it like this:
// Handle notification tap when app is in background/terminated
FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
Feeddo.handleNotificationTap(context, message.data);
});
// Handle notification when app is in foreground
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
Feeddo.showInappNotification(
context: context,
title: message.notification?.title ?? 'New Message',
message: message.notification?.body ?? '',
data: message.data,
);
});
Customizing Colors #
Feeddo comes with dark and light themes, but you can customize any color:
Using Built-in Themes #
// Dark theme (default)
Feeddo.show(context, theme: FeeddoTheme.dark());
// Light theme
Feeddo.show(context, theme: FeeddoTheme.light());
Custom Colors #
Create your own theme by customizing colors:
final myTheme = FeeddoTheme(
isDark: true,
colors: FeeddoColors(
// Main background
background: Color(0xFF1A1A2E),
// Text colors
textPrimary: Color(0xFFFFFFFF),
textSecondary: Color(0xFFB0B0B0),
// Primary action color (buttons, links)
primary: Color(0xFF00D9FF),
// Cards and surfaces
cardBackground: Color(0xFF252540),
surface: Color(0xFF252540),
// App bar
appBarBackground: Color(0xFF1A1A2E),
// Status colors
success: Color(0xFF4CAF50),
error: Color(0xFFFF5252),
// Borders and dividers
border: Color(0xFF3A3A5C),
divider: Color(0xFF2A2A3E),
),
);
// Use it when showing Feeddo
Feeddo.show(context, theme: myTheme);
You can also apply the theme to notifications and the community board:
// Show with custom theme
Feeddo.show(context, theme: myTheme);
Feeddo.showCommunityBoard(context, theme: myTheme);
// Set default theme in init()
await Feeddo.init(
apiKey: 'your-api-key',
context: context,
theme: myTheme, // This theme will be used for notifications
);
Available Colors #
| Color Property | What it controls |
|---|---|
background |
Main screen background |
textPrimary |
Primary text (titles, main content) |
textSecondary |
Secondary text (timestamps, hints) |
cardBackground |
Background of cards and message bubbles |
primary |
Primary buttons, links, active elements |
surface |
Secondary surfaces (bottom sheets) |
success |
Success states, completed tasks |
error |
Error states, urgent notifications |
border |
Borders around inputs and cards |
divider |
Separators between items |
appBarBackground |
Top navigation bar background |
Gradient Background #
Want a gradient background? Easy:
final gradientTheme = FeeddoTheme(
isDark: true,
colors: FeeddoColors(
background: Color(0xFF1A1A2E), // Fallback color
backgroundGradient: [
Color(0xFF1A1A2E),
Color(0xFF16213E),
Color(0xFF0F3460),
],
),
);
Update User Info #
Need to update user info after they sign up or change their profile?
await Feeddo.updateUser(
userName: 'Jane Smith',
email: 'jane@example.com',
userSegment: 'enterprise',
);
Show Unread Message Count #
Want to show a badge with unread messages?
int unreadCount = Feeddo.unreadMessageCount;
// Use it in your UI
Badge(
label: Text('$unreadCount'),
child: Icon(Icons.chat),
)
Need Help? #
- Docs: docs.feeddo.dev
- Website: feeddo.dev
- Issues: GitHub Issues
License #
MIT License - see LICENSE file for details
