Skip to content

Architecture Overview

As is now, everything is served through Django (including the dashboard and documentation). This was convenient to get started and is not the final target architecture.

System Components

Optional CDN Layer

We can add aggressive caching for the frontend layer by pushing static assets to external storage and serving them through a CDN, while keeping the API on Django.

Technology Stack

  • Backend: Django 6.0 + Python 3.13
  • API: Django Ninja (REST framework)
  • Frontend: Vue 3 + Vite 7 + PrimeVue
  • Documentation: VitePress
  • Static Files: WhiteNoise
  • Database: PostgreSQL (production) / SQLite (dev)
  • Cache: Redis (production) / local memory (dev)
  • Deployment: Docker + Kamal 2.x
  • Package Manager: uv (Python), npm (Node.js)

Request Flow

Request Flow With Optional Cache

Static Files Flow