Moderation for Flutter apps
A report button in the app, the decision in the dashboard, enforcement via webhook. The API key always stays in your backend and never ships in the app.
The app talks to your backend
An API key never belongs in a mobile app, and a snapshot sent from the reporter’s device cannot be trusted. So your Flutter app calls your own backend, which forwards to Limenia.
Flutter app ──▶ your backend ──▶ Limenia POST /v1/reports
Flutter app ◀── your backend ◀── Limenia webhook decision.createdWhat your backend takes care of
A small endpoint is enough, for example a Cloud Function or an Edge Function. The examples on GitHub show it for seven backends.
- Set the reporter from the sign-in, never from the device.
- Load the content snapshot from your own database.
- Pass the Idempotency-Key, status and Retry-After through to the app unchanged.
- Forward appeals (POST /v1/appeals) and reviews (POST /v1/reviews) the same way.
Bans that survive a reinstall
The Flutter plugin limenia_device gets a token from Play Integrity on Android and from Apple DeviceCheck on iOS. Your backend forwards it to Limenia. Limenia marks devices of banned users and tells you when a new account uses a marked device.
- Hosted on GitHub and added via Git with a version tag.
- Android with Google Play from minSdk 24, iOS from version 15.
- A mark is a hint, never proof. Your app decides what follows.
dependencies:
limenia_device:
git:
url: https://github.com/DL3KB/limenia-flutter.git
ref: v0.1.0Dart package for reports and status
For Dart and Flutter there is a client package without widgets and without runtime dependencies. It validates reports, appeals and reviews, sends them through your backend with a queue and retries, and reads decisions with their statements of reasons. The package is not public yet, ask us for access.
Frequently asked questions
Your question is not here? Write to us, a person will answer.
[email protected]Can my Flutter app call Limenia directly?
No. The API key belongs in your backend. The app calls your backend, which sets the person from the sign-in and forwards the report to Limenia.
Are there ready-made widgets for the report button?
No. You design the UI and texts yourself, to fit your app. The client package and the plugin deliberately ship without widgets.
Which backend do I need?
Any that speaks HTTPS. There are runnable examples for Firebase Cloud Functions, Supabase Edge Functions, Node.js, Python, Go, PHP and AWS Lambda.
How do I install the plugin?
Via Git from the public repository DL3KB/limenia-flutter, with a version tag in pubspec.yaml. The plugin’s README has the details.
Ready for your notice and action process?
We show you Limenia with an example and work out what your app needs for the DSA and the app stores.
Or email us directly: [email protected]