UserOrient

Feature voting board for Flutter apps.

Let your users vote on what to build next. Collect feedback, prioritize your roadmap, ship what matters.

UserOrient Cover

Getting Started

1. Install

dependencies:
  userorient_flutter: <latest-version>

2. Configure

import 'package:userorient_flutter/userorient_flutter.dart';

void main() {
  UserOrient.configure(apiKey: 'YOUR_API_KEY');
  runApp(MyApp());
}

Get your API key from the UserOrient dashboard.

3. Open the board

UserOrient.openBoard(context);

That's it — two lines of setup, one to launch.


User

Identify the current user so votes persist across sessions. Call setUser before opening the board.

UserOrient.setUser(
  uniqueIdentifier: '123456',
  fullName: 'Kamran Bekirov',
  email: 'kamran@userorient.com',
);

All fields are optional. Pass whatever you have:

Field Description
uniqueIdentifier Your internal user ID
fullName Display name
email Email address
phoneNumber Phone number
isPaying Whether this is a paying customer (learn more)
extra Any additional key-value data

If uniqueIdentifier is omitted, UserOrient generates one automatically.


Language

UserOrient.setLanguage(Language.en);

Supported: az de en es fr it tr ru ar uk zh

You can also parse a locale string:

UserOrient.setLanguage(Language.fromCode('en-US')); // Language.en

Falls back to Language.en for unsupported codes.


Theming

UserOrient.setTheme(
  light: UserOrientColors(
    backgroundColor: Colors.white,
    accentColor: Colors.blue,
  ),
  dark: UserOrientColors(
    backgroundColor: Color(0xff1D1D1D),
    accentColor: Colors.blue,
  ),
);
Property Description
backgroundColor Board background color
accentColor Buttons, active tabs, voted state (text color adjusts automatically)

Font family is inherited from your app's ThemeData.


Data Collection

Control what data the SDK collects when a user submits feedback:

UserOrient.setDataCollection(DataCollection(
  email: CollectionMode.required,
  metadata: CollectionMode.optional,
));
Mode Email behavior Metadata behavior
required User must enter an email before submitting Always collected
optional User can skip the email step (default) Collected if available (default)
notCollected Email step is skipped entirely Not collected

Metadata includes device info (model, OS version) and app info (version, build number).


Paying Users

Mark paying customers so you can filter their votes in the dashboard:

UserOrient.setUser(
  uniqueIdentifier: '123456',
  isPaying: true,
);

Logging Out

Clear cached data when a user logs out:

await UserOrient.clearCache();

Contact

Libraries

userorient_flutter
Flutter SDK for UserOrient — embeddable feature voting and feedback board.