Tech Stack
Owner: Engineering Last reviewed: 2026-Q2
This summarizes our core technologies and why we use them.
Languages
- TypeScript (frontend) – type safety, strong tooling, predictable contracts.
- Python 3 (backend) – rich ecosystem for APIs and AI integrations.
Frontend
- Build: Vite 7, React 19, TypeScript 5.8.
- UI: Tailwind v4, Radix primitives, shadcn-inspired components.
- Data: TanStack Query 5, Orval 7-generated API clients from OpenAPI.
- Auth: Clerk (
@clerk/clerk-react).
Backend
- Framework: FastAPI + Starlette.
- Data: PostgreSQL, SQLAlchemy 2.x (async), Alembic.
- Auth: Clerk JWT verification via JWKS; dual model with JIT user provisioning.
- AI/Docs: Azure OpenAI, Vision, Document Intelligence; LlamaIndex; pgvector.
- Storage: Azure Blob Storage with SAS patterns.
- Observability: OpenTelemetry libraries + Azure Monitor exporter.
DevX & Quality
- Lint/Format: ESLint + Prettier (frontend), Ruff config present for Python style.
- Testing: Pytest/pytest-asyncio on backend; component/integration tests on frontend.
- Codegen: Orval keeps frontend clients in sync with backend OpenAPI.
CI/CD & Hosting
- CI: Azure DevOps Pipelines with reusable templates.
- Images: Docker; pushed to ACR.
- Hosting: Azure Web App for Containers; CDN/Front Door in front of frontend.
Conventions
- API grouped under
/api/*with tags and prefixes per domain. - Health endpoints under
/health/*. - ADRs in
backend/py/docs/adr/*for major decisions.