Lightweight developer observability platform — analytics, uptime monitoring, error tracking, and API performance. Built for African developers. Priced in Naira.
# observe. — Backend
The FastAPI backend for observe. — a lightweight developer observability platform built for African developers.
## What it does
- Ingests events, errors, and API request data from the SDKs
- Manages organisations, projects, and API keys
- Runs uptime monitor checks on a schedule with retry logic
- Aggregates raw events into daily stats
- Enforces rate limiting, usage caps, and tier restrictions
- Handles billing via Squad by GTCO with recurring payments
- Sends transactional emails via Resend
- Serves a REST API for the dashboard frontend
## Stack
- **FastAPI** — API framework
- **PostgreSQL** — primary database
- **SQLModel** — ORM (SQLAlchemy + Pydantic)
- **Alembic** — database migrations
- **Celery + Redis** — background jobs and scheduling
- **httpx** — async HTTP client (uptime checks, GitHub OAuth)
- **Resend** — transactional email
- **Squad by GTCO** — payment processing (NGN)
## Project structure
```text
app/
main.py # FastAPI app entry point
config.py # Settings via pydantic-settings
database.py # Async engine and session
dependencies.py # Reusable FastAPI dependencies (auth, api key, rate limiting)
redis_client.py # Async Redis client
models/ # SQLModel table definitions
schemas/ # Pydantic request/response models
routers/ # HTTP route handlers
auth.py # Register, login, refresh, logout, password reset
github_auth.py # GitHub OAuth flow
projects.py # Project CRUD
api_keys.py # API key management
events.py # Event and identify ingestion
errors.py # Error capture and dashboard
monitors.py # Uptime monitor management
stats.py # Analytics stats and event explorer
api_monitoring.py # API request ingestion and stats
billing.py # Squad billing, webhooks, subscriptions
admin.py # Internal admin stats endpoint
services/
auth.py # Password hashing, JWT, token utilit …