Our Tech Stack
Core Technologies
- Frontend: React, TypeScript, Next.js
- Backend: Python, FastAPI, PostgreSQL
- Infrastructure: Docker, Render
- Tools: GitHub, Linear, Slack
Development Workflow
- Planning: Features planned in Linear
- Development: Feature branches, regular commits, AI-assisted coding
- Review: If the change needs a design document, fill in Security considerations, review that pull request first, then the code pull request. Other changes are a normal pull request.
- Testing: Automated tests + manual QA
- Deployment: A CI and CD pipeline for automated deployment.
Standards we follow
Standing rules live in architecture decision records. An accepted ADR is binding, so read it before you change a pattern it covers. Cubic and/polar-code-review check each pull request against these ADRs. A teammate may still approve the change if it’s low risk.
Request and response bodies are validated with Pydantic schemas, as described in the REST API guidelines. React and the API serializers encode output. Protected endpoints use a typed AuthSubject and scopes. See authorization and ADR-0005. Give the caller the minimum access they need.
Secrets are envelope-encrypted (ADR-0008). Signing keys live in KMS (ADR-0010).

