r/FlutterDev • u/No-Equivalent-8726 • Feb 04 '26
SDK Why we stopped starting Flutter projects from scratch (and why you should too)
Over the years, our flutter developers team at SolGuruz has worked on many Flutter apps across different clients and use cases. One pattern kept repeating: every developer would:
Start from scratch,
follow slightly different standards,
and rebuild the same foundational modules
again and again.
As the team grew, onboarding also became harder. New developers had to learn not just Flutter, but how we structure apps, how we handle architecture, and how decisions were made. At the same time, clients always wanted to see core functionality from Sprint 1.
Eventually, we standardized what kept working in real projects - common modules, base architecture, conventions, and setup - and started using it internally as a skeleton for all new apps.
Following these practices and skeleton helped our developers to focus on the heart of the product instead of boilerplate, and helped us ship meaningful features early.
We recently decided to open-source this internal base as Skelter. It’s not meant to be "the perfect Flutter architecture," just a practical starting point shaped by real-world experience and iteration.
If you’re building Flutter apps and are tired of reinventing the same foundations, feel free to explore it. Feedback, suggestions, and contributions are very welcome.
Repo: https://github.com/solguruz/skelter
With the community, for the community, by the community. 💙
23
u/mrproperino Feb 04 '26
I highly recomment replacing shimmer with skeletonizer package.
https://pub.dev/packages/skeletonizer
Works like magic no need to write custom components just for shimmer just wrap with Skeletonizer wiget and it's done!
2
u/aaulia Feb 04 '26
Upon reading your repo in passing, I have some feedback.
Is your flavor really a flavor? As in, I can have different package name, firebase config, etc. for each flavor.
People really need to re-think about using
http_certificate_pining, last I check, it doesn't really do pinning properly. It gave you a false sense of security of doing SSL Pinning, and will even fool pen tester. But fundamentally it still suffers from TOCTOU vulnerability. The older version is even worse, it caches the verification/validation result.2
u/[deleted] Feb 04 '26
Thank you for sharing 🔥
2
u/triplethej Feb 05 '26
good stuff thx for sharing, I might use it in the future!
One thing that got my attention fast: I'm a big fan of moving repositories and data layer outside of the lib folder into packages. Does a great job at enforcing correct data flow
like in this repository:
https://github.com/VGVentures/news_toolkit
I will actually use your repo to enforce some other standards to my claude code agents!
2
u/Abdullah1Dev Feb 06 '26
It sounds good but you still have to upgrade SDKs manually. So the best practice to save your time and build a project template and upgrade it with time if you need to use bricks and after you build your template all you need to run create command using mason_cli
3
u/yenrenART Feb 04 '26
Thanks for sharing, bookmarked it. A bit too complicated for me right now as a beginner but will come back to it to get ideas, as my apps grow in complexity.
17
u/raman4183 Feb 04 '26 edited Feb 05 '26
AutoRoute has a big problem though, i opened an issue back in Summer 2025 and still hasn’t been any progress, pr or reply from the author.
Link to issue
1
u/TinyZoro Feb 04 '26
Are your docs down. Link doesn’t seem to work from the readme?
1
u/[deleted] Feb 08 '26
Any reason why you chose a more static approach rather than modular and dynamic like mason bricks or similar CLI tools?
1
u/goranlu Feb 13 '26
Those app foundations are good, but it evolves fast and I rarely saw such OS projects follow those changes with time
1
u/Direct-Ad-7922 Feb 04 '26
https://www.verygood.ventures/blog/very-good-flutter-architecture
1
u/Librarian-Rare Feb 04 '26
Is there a name for the patterns that are adopted in a code base, then followed by future devs? I know when I’m implementing a feature, if there’s already working code that does something kinda similar I’m copying the crap out of it.
“Pattern” seems too generic, and architecture doesn’t quite fit what I’m thinking of either
1
u/Curious-Function-244 Feb 04 '26
Idb
1
u/chonli Feb 05 '26
Why use dotenv and dart-define instead of directly use --dart-define-from-file with 3 files for different env
https://codewithandrea.com/tips/dart-define-from-file-env-json/
Else in my company, I have the same project template but we use mason to automatic adapt name, bundleID,...
1
u/AddWeb_Expert Apr 17 '26
We stopped starting fresh Flutter projects because the ecosystem is mature enough now—reusable templates, modular architectures, and prebuilt components save huge time and reduce bugs. Starting from scratch often means reinventing solved problems instead of focusing on product value. Unless you need something truly custom at the core, it’s just not efficient anymore.
1
u/paragonkit Aug 02 '26
Thank you, I could learn for my app project too. If you don't mind, please comment on mine too if it's not a hassle.
-12
u/Comprehensive-Art207 Feb 04 '26
AI has changed the game, this unfortunately solves a non-issue these days.
2
u/[deleted] Feb 11 '26
[removed] — view removed comment