logo
Start Here

Introduction to GrantMaster engineering docs

Orient yourself in the GrantMaster codebase, architecture, and operations with a focused ramp-up path and links to core engineering runbooks.

Why these docs matter

GrantMaster is a multi-tenant SaaS used by NGOs to manage grants, projects, budgets, and compliance. The engineering docs here are the shared map of how the system works and how to operate it safely.

Keep these docs aligned with the code; the codebase is the source of truth. When behavior changes, update the relevant pages so operational runbooks stay reliable.

Start here (10–15 minutes)

Follow this ramp-up path when you join the team or return after a long break. Each step builds context for the next.

Read the architecture overview

Skim the high-level system design: Firebase backend (Auth, Firestore, Storage, Functions), EventBus and BaseService patterns, integrations (Novu, HubSpot, KoboToolbox), and multi-tenancy enforcement via organizationId and security rules. You should come away knowing the major components and how requests flow through the system.

Review the glossary of terms

Learn the domain language: what Grant, Project, Budget, Workflow, and Compliance mean in this product, and how they map to data models. This makes tickets, PRs, and architecture docs much easier to parse.

Set up your local environment

Install required tooling, configure Firebase access, and add any organization-level secrets or configs. By the end of this step, you should have all environment variables in place and be ready to run Functions and the frontend locally.

Run GrantMaster locally

Start the services and confirm you can sign in, load an organization, and navigate core flows like viewing grants and projects. Use this as a sanity check before tackling your first issue or PR.

After this initial pass, move to Quickstart or Getting Started for your first contribution or integration task.

What you will find here

These overview pages are the backbone of the GrantMaster engineering documentation. Treat them as live references, not one-time reading.

Where to go next

Use these flows once you have the core context and local setup.