existence
e_core · the Existence framework

The foundation is already built.

e_core is the modular Flutter framework behind every app we ship. Sign-in, theming, settings, notifications, navigation and monetisation are solved before day one. Your team builds only what makes your app yours.

09:41
e_core_auth
e_core_theming
e_core_settings
e_core_notifications
your 20% goes here
e_core_navigation
Every app starts 80% done
Powers every Existence app.
Six products · live in production · Android / iOS / Web
TrueTimeGrooveCheatCodesConfessionsAfterLifeXFlush
faster to market
15production packages · 7 layers
250+senior engineering days · ≈R1.9M invested
How it’s built

Seven layers. Dependencies only point down.

Fifteen packages, arranged so every layer knows only the layers beneath it. Swap any one without breaking the ones above. It is why an app can move from Firebase to a REST backend without rewriting a single screen.

L7ToolsScaffolding and codegen, wires a new app together.e_core_clie_core_full
L6FeaturesDrop-in product features: auth flows, settings, notifications.e_core_authe_core_settingse_core_notifications
L5PresentationEverything the user sees: widgets, theme, locales, routes.e_core_uie_core_theminge_core_localizatione_core_navigation
L4ApplicationAll app state. Every screen is a pure function of it.e_core_state
L3InfrastructureConcrete backends, swappable without touching the layers above.e_core_firebasee_core_rest_apie_core_ads
L2DataRepositories and datasources: the bridge to the outside world.e_core_data
L1DomainPure entities and use-cases. No framework, no I/O.e_core_foundation
↓ dependencies only point downwardswap Firebase for REST or Supabase without rewriting a screen.
State

State done right.

All state lives in one package, e_core_state, built on modern annotated Riverpod. No global mutable state, no stringly-typed events. Every screen is a pure function of app state, which is why it can be tested like one.

Compile-time-generated, type-safe providers
Immutable Freezed models throughout
90%+ test-coverage target on providers
auth_notifier.darte_core_state
@riverpod
class AuthNotifier extends _$AuthNotifier {
  @override
  AuthState build() =>
      const AuthState.unauthenticated();

  Future<void> signIn(Credentials c) async =>
      state = await authRepo.signIn(c);
}
The CLI

Zero to a running app in one command.

The newest tool in the chain: e_core_cli scaffolds what our team used to wire by hand. Pick your auth, backend and features interactively, and it generates the app around them.

$ e_core create my_app
? Authentication Email · Google · Apple
? Backend Firebase
? Features Settings · Notifications · Ads
42 files generated with auth flows, routes and theming wired
cd my_app && flutter run
$
Runs on macOS, Linux and Windows. Everything it generates is plain Flutter, no lock-in.
e_core createScaffold a new app, features picked interactively
e_core initAdopt e_core inside an existing Flutter app
e_core add auth|ads|notificationsBolt a feature module onto a project
e_core doctorVerify config, keys, and platform setup
e_core upgradeMove every e_core package to the latest release together
Questions

Asked before every build.

Who owns what we build?

You do. Your product code and your app are yours. e_core comes to you under a commercial licence, and everything it generates is plain Flutter, so nothing in the stack locks you to us.

What happens if we outgrow Firebase?

Backends live in one layer, Infrastructure. Because dependencies only point downward, we swap Firebase for REST or Supabase without touching business logic or rewriting a screen.

Is it actually in production?

Six apps, TrueTime, Groove, CheatCodes, Confessions, AfterLife and XFlush, run on it today on Android, iOS and web, through real App Store review and in front of real users. Every release hardens the framework before it reaches your project.

Can our own developers build on it?

Yes. Access is a paid licence, and the documentation comes with it, so ask us and we will set your team up. Teams that want us alongside, reviews, upgrades and guaranteed response times, take the enterprise SLA.

What does a build cost?

Every build is different, so every build is scoped in one call. Talk to sales and you will see a working prototype in the first week.

The hard 80% is done. Let’s build your 20%.

Start your build
Scoped in one call · working prototype in the first weekOr ask for docs access →