Phase One – Build Baseplate
In the initial phase, a development team will build the Baseplate framework, establishing the common infrastructure for all future apps all built on a common technical infrastructure. This includes all the features outlined in this document and others developed during the course of development.
- Implement basic user authentication and role-based access control using Firebase standard models and basic app endpoints
- Integrate logging and central configuration management
- Integrate Stripe Billing functionality
- Implement in system rich user persona modelling and management
- Implement standardized LLM (Large Language Models) customer setups (Gemini, ChatGPT, Perplexity) and access via GenKit
- Implement customer management for multi-customer SaaS
- Implement QA automation framework and standard approach
- Introduce basic app performance monitoring through Firebase Performance Monitoring
- Perform initial security hardening for enterprise compliance (SOC 2, GDPR, etc.)
- Formalize integration model for apps that implementing apps will integrate with
- Formalize integration model for application specific APIs (ProxyCURL, NewsAPI, etc.)
- Formalize mechanics of launching new features on Baseplate apps
Phase Two – Build An App On It, Refine Baseplate
Once the Baseplate system is built we’ll have the same team build a first application on top of it. Idea being to validate the Baseplate setup by building a real-world application on top of it, demonstrating the platform’s capabilities and identifying any areas for improvement.
Conceptually, we’d branch the code base for the implemented app and then extend the functionality of Baseplate to implement the relevant business requirements. As we go, however, we’ll invariably change / fix / update aspects of the Baseplate framework that will make sense in the context of future apps we want to implement.
Phase Three – Build Lots of Apps
At this point we should have a functioning, refined Baseplate and one application working on top of it. We’ll now be able to develop multiple apps in parallel using Baseplate. This approach should allow us to build and launch new SaaS applications concurrently with a dedicated development team for each that leverages shared Design and DevOps resources.