Tech Stack

Status: Accepted Owner: @bilal Last Updated: 2026-02-15

Overview

LayerTechnology
FrameworkNext.js 16 (App Router)
FrontendReact 19, Tailwind CSS 4, shadcn/ui, Apollo Client 4
BackendPrisma 6, Pothos (GraphQL schema), GraphQL Yoga 5
DatabaseSupabase PostgreSQL 16 + pgvector
AuthSupabase Auth (SSR, JWT)
StorageSupabase Storage
AI (primary)Claude (Anthropic)
AI (fallback)OpenAI, Kimi, GLM
AI (embeddings)OpenAI text-embedding-3-small (1536 dim)
WhatsAppTwilio + Meta WhatsApp Cloud API
VoiceVAPI / Retell
SMSTwilio
EmailSendGrid
TestingVitest
CIGitHub Actions
Package managerpnpm

LLM Providers

ProviderModelRole
Claude (Anthropic)claude-sonnet-4Primary generation + tool use
OpenAIgpt-4oFallback generation
OpenAItext-embedding-3-smallEmbeddings (1536 dim)
Kimi (Moonshot)moonshot-v1-8kExperimental
GLM (Zhipu)glm-4-flashExperimental

Automatic fallback chain: Claude OpenAI Kimi GLM raw chunks.

Development Principles

  • Data model first — Schema before implementation
  • Modular monolith — Single Next.js app, structured by domain
  • GraphQL over REST — Flexible queries, end-to-end type safety
  • Minimal DevOpsdev prod, no staging initially

Non-Functional Requirements

CategoryRequirement
PerformanceDashboard load < 1.5s, API < 500ms
ReliabilityZero dropped issues, retry queue for notifications
SecurityJWT auth, full RLS, prompt injection protection
Scalability3,000+ properties
Availability99.5% uptime target

Future Considerations

  • Multi-region (Supabase supports regional deployment)
  • Mobile app (React Native + Apollo Client)
  • GraphQL Federation (if monolith needs extraction)
  • Vector store migration (abstraction ready for Qdrant/Pinecone)

See also: System Design, RAG Pipeline