Skip to content

Repository files navigation

DartZen

GitHub codecov Melos License

The opinionated, scalable core starter kit for Dart & Flutter.

Minimalist architecture, domain-first approach, and developer zen.

🎯 Philosophy

DartZen embraces minimalism, scalability, and developer zen, with a strong focus on predictable server behavior under load. Built on the principle that less is more, it provides a clean foundation for building production-ready Dart and Flutter applications without unnecessary complexity.

📖 Documentation

  • Zen Architecture: Explains the core principles behind DartZen: product-first design, minimal cognitive load, zero magic, and explicit integrations.
  • GCP-Native Approach: Describes how DartZen is built around Google Cloud Platform and Firebase as first-class dependencies, not abstracted infrastructure.
  • Development Workflow: How the monorepo is developed, tested, and maintained, including local development, emulators, and CI.
  • Local Development & Emulators: How to run DartZen locally using Firebase and GCP emulators, environment variables, and provided scripts.
  • Packages Overview: A high-level map of DartZen packages, their responsibilities, and how they are meant to be used together.
  • Server Runtime: Defines the DartZen server as a GCP-native runtime built on Shelf, focused on clarity, performance, and deterministic execution under load.
  • Versioning and Releases: Explains independent package versioning, SemVer, and release strategy within the DartZen monorepo.
  • Coverage model and aggregation: Defines the coverage model for this monorepo and explains how per-package and aggregate coverage is generated and interpreted.

📦 Repository Structure

This is a monorepo managed with Melos, containing multiple Dart packages organized for maximum reusability and independent versioning.

dartzen/
├── packages/
│   ├── dartzen_core/       # Core primitives, contracts, and domain value objects
│   ├── ...
│   └── dartzen_ui_navigation/ # Navigation widget for Flutter applications
├── apps/                   # Example applications
│   └── ZenDemo/           # Full-stack demo app (Flutter web + Dart Shelf server)
├── melos.yaml              # Monorepo configuration
└── CONTRIBUTING.md         # Contribution guidelines

Packages

  • dartzen_core: Core primitives, shared contracts, result types, and domain value objects — the foundation for all other packages. Does not include infrastructure, IO, framework, or platform-specific code.
  • dartzen_localization: Foundational runtime-aware localization package for the DartZen ecosystem.
  • dartzen_firestore: Firestore operations, typed access, and converters for the DartZen ecosystem.
  • dartzen_ui_navigation: Unified, adaptive navigation layer for DartZen applications with platform-specific optimizations.
  • dartzen_transport: DartZen transport layer for serialization, codec selection, WebSocket communication, HTTP client, and server/client middleware.
  • dartzen_cache: Simple, explicit, and predictable caching for the DartZen ecosystem with in-memory and GCP Memorystore backends.
  • dartzen_server: DartZen server application framework — defines application lifecycle, middleware, routing, and configuration.
  • dartzen_storage: Google Cloud Storage reader for the DartZen ecosystem.
  • dartzen_identity: Identity service for DartZen — provides a unified interface for identity management, including authentication, authorization, and user management.
  • dartzen_ui_identity: Cross-platform, adaptive UI components and screens for DartZen Identity flows.
  • dartzen_ai: AI integration package for DartZen — provides interfaces and implementations for GCP Vertex AI / Gemini integration.
  • dartzen_payments: Payments integration package for DartZen — provides interfaces and implementations for Stripe and Adyen payment providers.
  • dartzen_jobs: A unified background and scheduled jobs system for DartZen applications.
  • dartzen_telemetry: Telemetry and monitoring package for DartZen — provides interfaces and implementations for logging, metrics, and tracing using GCP Cloud Logging and Cloud Monitoring.
  • dartzen_executor: A unified task executor for DartZen applications, supporting concurrent and sequential task execution with error handling, retries, and policies.
  • dartzen_ui_admin: Cross-platform, adaptive UI components and screens for building admin CRUD interfaces in DartZen applications.

Example Applications

  • ZenDemo: A full-stack demo application showcasing DartZen in action with a Flutter web client and Dart Shelf server, using Firebase emulators for local development.

📄 License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.

About

The opinionated, scalable core starter kit for Dart & Flutter. Minimalist backend, secured by GCP, managed via Melos.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages