Introduction
What is Dogen?
Dogen takes a unique approach to enhancing your Firebase development. You start by using the Dogen client to create blueprints that define your entities. When you're ready, create a new generation. In a few minutes you'll be notified theres an app update available. Install it, and voila! Your new client now handles all your data with schema validations, custom field types, and more.
How it Works
1. Set Up Your Project
Begin by installing the Dogen Application Platform extension in your Firebase project. This sets up everything you need to start using Dogen in about 5 minutes.
View setup instructions →2. Create Blueprints
Use our starter client's Blueprint editor to define your data structures. Our type system is as flexible as a programming language:
Internal Types
Int, Double, Bool, String, DateTime, List<X>, Map<String, X>
Blueprint Types
Object, Embedded, Adapter, Variant, and Enum
Custom Types
Every Blueprint entity you create becomes its own type.
Relationships & References
Connect your entities using powerful relationship types. The generated client provides intuitive entity pickers that make it easy to browse, search, and select related documents.
Type Flavors
Built in flavors allow for enhanced capabilities. For example, String(@Email) adds email-specific validation and UI.
3. Create a Generation
When your blueprints are ready, create a new generation. This process compiles your blueprints and builds a custom client tailored to your specifications.
4. Preview and Deploy
Once generation is complete, preview your new client version. Test the changes and either promote the generated client to make it live, or demote it if further adjustments are needed.
5. Use Your Custom Client
Your generated client provides specialized UI controls for each field type. Number fields get numeric inputs, dates get date pickers, and image fields get upload functionality - all automatically.
Fine-tune behavior through the configuration section, where you can set default values, add validation rules, and customize display properties.