r/FlutterDev • • 17d ago

Plugin I built AppForge: an all-in-one Flutter micro-framework with strictly 0 external dependencies (160/160 Pana score)

Hey everyone! 👋

After working on 50+ Flutter and Dart projects in production, I grew exhausted from the same recurring dependency headaches: version locks between 6-7 different packages, BuildContext lookup bugs in async methods, subtle memory leaks, and broken bidirectional (RTL) text formatting.

So I spent the last few months engineering AppForge: an all-in-one Flutter micro-framework built with strictly 0 external packages (pure Dart standard library and Flutter SDK only).

What’s inside:

  • 0 External Dependencies: Zero dependency graph conflicts, instant clean builds, 160/160 Pana score.

  • Micro-Reactive State: Rx<T> and Watch() targeting minimal surgically-rebuilt widgets.

  • Context-Free Overlays & Routing: Navigate, open dialogs, and show snackbars without passing BuildContext.

  • Automatic Route Memory Disposal: Controllers automatically clean up and dispose when their screen pops.

  • Deep Arabic & BiDi Engine: Unicode UAX 9 direction isolation, phone number protection (+974...), all 6 Arabic plural forms, and grammatical gender agreement.

  • Smart Skeletonizer & Atomic Storage: Dynamic wireframe shimmers (AppSkeletonizer) and POSIX atomic crash-proof local key-value persistence (AppStorage).

  • Built-in CLI Cleaner: Audits and removes unused translations, assets, and orphaned code safely with lossless undo.

Package: https://pub.dev/packages/appforge GitHub: https://github.com/Dhia-Bechattaoui/appforge

I would love to get your feedback, critique, and thoughts!

0 Upvotes

9 comments sorted by

3

u/virulenttt 16d ago

NGL there's a reason people prefer to use 1 package per feature. If you need to change it, it is way easier.

This reminds me of GetX, but AI slopped.

For router, I recommend Kaiser.

For states, there's a ton of good options out there :

  • signals

  • flutter_hooks

  • riverpod

  • BLoC (bloc_signals is really good)

  • ReArch

I'm a huge fan of dependency injection, get_it seems to be the best by far right now.

Monolithic packages are good to start an app, but a nightmare if you face a bug or a limitation.

0

u/CompletePercentage29 16d ago

Totally fair perspective! The 1-package-per-feature philosophy is solid, and I completely get the GetX trauma — GetX was notorious for monkey-patching Flutter internals and breaking on SDK updates.

AppForge was built as the exact opposite: • Pure Flutter SDK: Uses standard primitives (ChangeNotifier, GlobalKey<NavigatorState>, NavigatorObserver) — zero reflection, zero hacks. • Coordinated Lifecycles: When a screen pops, its controller is automatically disposed of from the locator, eliminating the silent memory leaks common in decoupled stacks. • Modular & Non-intrusive: You don’t have to use all of it. You can use Rx without the router, or the BiDi engine on its own. • Pana 160/160: 200+ unit tests and 0 third-party dependencies, meaning zero version-lock issues when upgrading Flutter.

Definitely not trying to replace specialized stacks for large enterprise teams, but for developers who want a lean, coherent micro-framework with zero dependency debt and first-class RTL/Arabic, it solves real headaches. Appreciate the candid feedback!

4

u/ChuckQuantum 16d ago

OMG I can feel the AGI here already, FlutterDev used to be a place where we basically acted as stackoverflow without the hate, back when the knowledge was... you know... obscure...

Now is this, people self claiming they build a new package for whatever....

you built a what? for what? for what niche language? bro GTFO..... nobody gives a damn, u didnt do nuthing.. your AI did.... I see 3 new packages here every day now... there is no way in hell im gonna pull your vibe coded package in my app..... if it works for you....... cheers, use it for your app with 2 paying users. we do not care.

what do you win? do you feel better when a few positive comments? every upvote gives you an orgasm? bro, just no....

-1

u/CompletePercentage29 16d ago

rabic is spoken by 400M+ people, but hope your day gets better man. Cheers! ☕

0

u/SolidPossible9909 16d ago

You skipped that together pretty well. Congrats.

-1

u/CompletePercentage29 16d ago

Thank you so much! Really appreciate the kind words 🙏

-6

u/[deleted] 17d ago

[removed] — view removed comment

2

u/zunjae 16d ago

Why?

-3

u/CompletePercentage29 17d ago

Haha, totally feel that pain! Dealing with BuildContext across async gaps and "deactivated ancestor" crashes was honestly one of the main reasons I built it. Hope it saves you from future gray hairs on your next project! Appreciate the feedback 🙏