follow_up
A forced, localized gospel-invitation flow for Flutter apps.
After a configurable number of app opens and a short delay, FollowUpGate
shows a non-dismissible teaser popup that leads into a full-screen, animated
five-scene narrative — localized to the visitor's device language (10
languages out of the box, with RTL support for Arabic) — ending in two
response buttons.
Features
- Configurable trigger:
openThreshold(default 40) anddelay(default 10s), tracked per install viashared_preferences. - Non-dismissible teaser popup — no close icon, no barrier dismiss, back gesture disabled.
- Full-screen animated flow: custom-painted illustrations (a cracked globe, falling petals, radiating light, a glowing cross, a hand-drawn heart), entrance animations, and a "next" button that reveals a couple seconds after each scene settles.
- Localized to Arabic, English, Spanish, French, Portuguese, Hindi, Mandarin, Russian, Indonesian, and Swahili — auto-detected from the device locale, with RTL layout for Arabic.
- Final response: an "interested" callback (
onInterested) and/or a configurablectaUrlopened viaurl_launcher, or "not now" — either way it's shown only once per install.
Getting started
dependencies:
follow_up: ^0.0.1
Usage
Wrap your app's home screen in FollowUpGate, inside MaterialApp (it needs
a Navigator above it):
MaterialApp(
home: FollowUpGate(
onInterested: (context) async {
// e.g. navigate to a contact screen, log an event, etc.
},
child: MyHomePage(),
),
)
Language is read straight from the device's own locale settings, so this
works out of the box regardless of whether MaterialApp.locale /
supportedLocales are configured. Pass locale: to force a specific
language instead (e.g. for a preview, a test, or an in-app language
switcher):
FollowUpGate(
locale: const Locale('ar'),
child: MyHomePage(),
)
See example/ for a runnable demo with a debug panel to force-trigger the
flow without waiting for 40 real app opens.
Additional information
Scene copy is original per language, not a literal translation — file an issue if you spot something that reads awkwardly in a given language.
Libraries
- follow_up
- Forced, localized gospel-invitation flow for Flutter apps.