Skip to content

Tech Stack Overview

This document provides a detailed overview of the technologies and tools used in Forest.


1. Programming Languages

  • Python: primary language for backend services and scripting where needed. We are currently moving to Go.
  • Go: New company standard for backend services, event processing and high-performance tasks.
  • sqlc: command-line tool that functions as a SQL compiler, generating type-safe Go code from SQL queries.
  • Flutter: For mobile apps development.
  • TypeScript / JavaScript: for frontend services.

2. Databases

2.1 Cloud SQL (GCP)

  • Primary relational database for backend services.
  • PostgreSQL compatible.

2.2 Supabase

  • Used for internal apps and data management.
  • Provides authentication and RBAC.
  • PostgreSQL compatible.
  • Support local development using containerized supabase image.

2.3 PostgreSQL

  • Used for backend services local development.
  • Seeded with mock data for testing.

3. Cache

  • Redis / Memorystore for Redis (GCP)

  • Caching sessions and frequently accessed data.

  • Supports replication and failover.
  • Used for backend services local development by local instantiation.

4. Database Migrations

  • Atlas: primary migration tool for managing DB schema changes on backend services.
  • Supabase migrations: primary migration tool for managing DB schema changes on frontend services.
  • Goose: used for webhooks-api service as lightweight migration.

5. Secrets Management

  • GCP Secret Manager: centralized secrets for services deployed in Cloud Run.
  • Doppler: secret management for local development and CI/CD pipelines, already integrated with GCP secrets manager.

6. Event & Webhook Tools

  • Hookdeck: webhook management, monitoring, and retries.
  • Pub/Sub (GCP): event-driven architecture for async processing. (Not implemented yet)

7. Monitoring & Logging

  • Sentry: error monitoring for backend and frontend services.
  • Grafana: dashboards and metrics visualization.
  • Prometheus: metrics collection for backend services.

8. Cloud Platform & Infrastructure

  • Google Cloud Platform (GCP)

  • Cloud Run for containerized services.

  • Cloud SQL for managed PostgreSQL.
  • Redis / Memorystore for Redis.
  • Cloud Storage buckets.
  • Cloud NAT, VPC, and IAM for networking and security.
  • Pub/Sub for async messaging.

  • Vercel

  • Preview and Production branches.


9. Documentation Tools

  • MkDocs + Material theme + plugins: internal documentation site, with plugins for diagrams for architecture and processes, among other uses.
  • APIDog: API reference documentation.

10. Others

  • Wunder: TBD.
  • Directus: CMS used to manage customer-facing information.
  • Lokalize: TBD
  • CloudFlare: TBD