Building Applications on the Stock SaaS Platform
Develop and build out documentation for developers covering the following topics:
Getting Started
- Overview of Baseplate – This section introduces the Baseplate as a foundational platform for rapidly building B2B SaaS solutions, highlighting its standardized backend and frontend. It emphasizes how it accelerates development by providing out-of-the-box functions like authentication and customer management. It can largely be drawn from this documents
- Prerequisites – This section outlines the necessary development environment setup, including required software and tools, to ensure developers have a consistent starting point. It prepares them for the technical requirements of the platform.
- Code Setup – An overview of the project’s directory structure and the key components of Baseplate, helping developers understand the organization and architecture. It allows developers to quickly navigate and understand the codebase.
Core Concepts
- 3.1. Extensibility vs. Branching – This section explains the difference between extending the base application via the frameworks extensibility, versus creating a completely separate branch of the code. It will guide developers on the proper way to add to the application.
- 3.2. Understanding the Tech Stack – This section provides a detailed explanation of the core technologies used, including Firebase and PostgreSQL for the backend and React with Material UI for the frontend. It helps developers grasp the technical foundation of the platform.
- 3.3. Authentication and Authorization – Here, the guide explains the platform’s built-in authentication and role-based access control mechanisms, ensuring developers understand how to secure their applications. It details how user authentication, SSO, and user roles function within the system.
- 3.4. Billing and Subscription Management – This part covers the integrated billing and subscription management features, including Stripe integration, enabling developers to implement monetization strategies. It details how to manage user licenses, seat utilization, and subscription statuses.
- Note – In most cases the vast majority of billing and subscription functionality is implemented natively by Stripe and the app is simply processing callback functions from Stripe.
- 3.5. customer Management – An overview of the multi-customer architecture and customer isolation principles is provided, ensuring developers understand how to build scalable and secure applications. It explains how data and resources are separated and managed for different customers.
- 3.6. Configuration Management – This section details how to manage application configurations, including environment variables and settings, using the platform’s tools. It ensures developers can effectively control application behavior across different environments.
- Note that application specific configuration is performed via Firebase Remote Configuration and that a fully structured Firebase Remote Configuration will readily be stood up for the developer by a central team
- 3.7. Logging and Monitoring – Guidance on using the platform’s logging and monitoring tools is provided, enabling developers to track application performance and diagnose issues. It explains how to access and interpret logs and metrics.
- 3.8. DevOps Pipeline – This section outlines the standardized CI/CD pipeline and deployment processes, ensuring developers understand how to automate builds and deployments. It provides best practices for maintaining a consistent and efficient deployment workflow.
Development Process
- 4.1. Setting up the Development Environment – Detailed steps for configuring the development environment, including installing dependencies and setting up local databases, are provided. It ensures developers can quickly get their development environment ready.
- 4.2. Building and Running the Application – Instructions on how to build and run the application locally are provided, enabling developers to test and debug their code. It covers the necessary commands and configurations.
- 4.3. Implementing App Features – This part guides developers through the process of implementing application specific features within the Stock SaaS framework, adhering to best practices and coding standards. It provides examples and templates for common development tasks.
- 4.4. Testing and Debugging – Guidance on testing and debugging applications, including unit testing, integration testing, and debugging tools, is provided. It ensures developers can deliver high-quality code.
- 4.5. Deployment Process – This section details the steps for deploying applications to production, including building, packaging, and deploying code to the platform’s infrastructure. It covers the automation tools and processes used for deployment.
Best Practices
- Coding Standards and Conventions – An overview of the coding standards and conventions to follow when developing on the Stock SaaS platform is provided, ensuring code consistency. It helps developers write maintainable and readable code.
- Code Reviews: Our standard pull review process and code approval process
- Security Guidelines – This section outlines the security best practices to follow, including data protection, authentication, and authorization, ensuring applications are secure. It covers common security vulnerabilities and how to mitigate them.
- Performance Optimization – Guidance on optimizing application performance, including database queries, frontend rendering, and caching, is provided. It helps developers build efficient and responsive applications.
- Troubleshooting Common Issues – This section provides solutions to common development issues and troubleshooting tips, enabling developers to quickly resolve problems. It covers common error messages and how to debug them.
Advanced Topics
- 6.1. Customizing the UI with Material UI – Advanced techniques for customizing the user interface using Material UI are provided, enabling developers to create unique and engaging UIs. It covers advanced styling and component customization.
- 6.2. Integrating with Third-Party APIs – Guidance on integrating with third-party APIs, including authentication, data exchange, and error handling, is provided. It helps developers extend the functionality of their applications.
- 6.3. Extending the Backend Functionality – This section details how to extend the backend functionality using Firebase and PostgreSQL, including writing custom functions and database migrations. It covers advanced database and server-side development.
- 6.4. Contributing to the Stock App Platform – This section will provide the guidelines for contributing back to the stock app platform, if a developer builds something that would be useful to the general user base. It will assist in maintaining the platform.
Appendix
- Glossary – A glossary of terms used in the guide is provided, ensuring developers understand the terminology. It defines key concepts and abbreviations.