/neuma-base-flutter

A lightweight yet scalable Flutter starter with a feature-first architecture and a DDD-inspired folder structure.

Primary LanguageDartMIT LicenseMIT

neuma header

πŸ’‘ What is Neuma?

Derived from the Greek word "pneuma" meaning breath or spirit, Neuma Base Flutter is designed to bring life into your Flutter projects without getting in your way 🀩

It’s a lightweight yet scalable Flutter starter with a feature-first architecture and a DDD-inspired folder structure β€” perfect for rapid prototyping, real-world app development, and clean production-ready codebases.

πŸ’» Technologies

Technologies

🧱 Project Structure

lib/
β”œβ”€β”€ core/             # App-wide configurations and helpers
β”‚   β”œβ”€β”€ constants/    # App constants (colors, strings, keys)
β”‚   β”œβ”€β”€ services/     # Core service implementations (e.g., navigation, logging)
β”‚   β”œβ”€β”€ theme/        # Centralized theming
β”‚   └── utils/        # Utility functions
β”‚
β”œβ”€β”€ data/             # Low-level data layer (network, DB, etc.)
β”‚   β”œβ”€β”€ api/          # API clients and endpoints
β”‚   β”œβ”€β”€ database/     # Local DB interfaces
β”‚   β”œβ”€β”€ models/       # DTOs and data representations
β”‚   └── repositories/ # Data sources implementation
β”‚
β”œβ”€β”€ features/             # Modular feature-first structure
β”‚   β”œβ”€β”€ home/
β”‚   β”‚   β”œβ”€β”€ domain/       # Entities, usecases, abstract repos
β”‚   β”‚   β”œβ”€β”€ presentation/ # UI widgets, screens
β”‚   β”‚   └── state/        # State management (e.g. cubits/providers)
β”‚   └── profile/          # (Placeholder for other features)
β”‚
β”œβ”€β”€ routing/          # App routing setup
β”‚
β”œβ”€β”€ shared/           # Shared UI & logic across features
β”‚   β”œβ”€β”€ dialogs/
β”‚   β”œβ”€β”€ extensions/
β”‚   └── widgets/
β”‚
β”œβ”€β”€ tests/            # Testing files and mocks
β”‚
β”œβ”€β”€ main.dart         # Entry point

πŸš€ Getting Started

1. Clone the repo

git clone https://github.com/abelherl/neuma-base-flutter.git
cd neuma-base-flutter

2. Install packages

flutter pub get

3. Run the app

flutter run

4. (Optional) Update README and LICENSE file

You can alter this LICENSE and README file for your project if needed. You can also choose your own license here.

πŸ› οΈ Future Plans

  • βœ… Clean folder separation with feature-first approach
  • ⏳ Integrate a mason template for CLI bootstrapping
  • ⏳ Multiple base templates (e.g. Bloc, Provider, Riverpod, Getx)
  • ⏳ Pre-setup CLI toolchain

πŸ“„ License

Licensed under the MIT License