Technology Stack
Technology Stack
Section titled “Technology Stack”Generated: 2026-01-04
Overview
Section titled “Overview”NexisChat is built with a modern TypeScript-first stack optimized for developer experience and performance.
Core Technologies
Section titled “Core Technologies”| Category | Technology | Version | Purpose |
|---|---|---|---|
| Language | TypeScript | 5.8+ | Type-safe development |
| Runtime | Node.js | ≥18 | Server runtime |
| Runtime | Bun | 1.2+ | whatsapp-web-server runtime |
| Package Manager | pnpm | 10.16.1 | Workspace management |
| Monorepo | Turborepo | 2.5.5 | Build orchestration |
Frontend Stack
Section titled “Frontend Stack”Client App (apps/client)
Section titled “Client App (apps/client)”| Technology | Version | Purpose |
|---|---|---|
| TanStack Start | 1.121.2 | React 19 meta-framework |
| React | 19.1.0 | UI library |
| Vite | 7.0.0 | Build tool |
| TailwindCSS | 4.1.10 | Styling |
| TanStack Router | 1.121.2 | File-based routing |
| TanStack Query | 5.x | Server state management |
| tRPC Client | 11.x | Type-safe API client |
| React Hook Form | 7.x | Form handling |
| Zod | 3.x | Schema validation |
| Sentry | 9.x | Error tracking |
Landing Page (apps/landing)
Section titled “Landing Page (apps/landing)”| Technology | Version | Purpose |
|---|---|---|
| Astro | 5.x | Static site generator |
| TailwindCSS | 3.x | Styling |
| Paraglide | 2.x | i18n (via @nexischat/i18n) |
| Sharp | - | Image optimization |
Documentation (apps/docs)
Section titled “Documentation (apps/docs)”| Technology | Version | Purpose |
|---|---|---|
| Next.js | 15.x | React framework |
| Fumadocs | 15.x | Documentation framework |
| MDX | 3.x | Markdown with JSX |
Backend Stack
Section titled “Backend Stack”API Server (apps/server)
Section titled “API Server (apps/server)”| Technology | Version | Purpose |
|---|---|---|
| Hono | 4.x | HTTP framework |
| tRPC | 11.x | Type-safe API layer |
| Drizzle ORM | 0.44.x | Database ORM |
| PostgreSQL | 15+ | Primary database |
| Better Auth | 1.x | Authentication |
| Zod | 3.x | Schema validation |
| Vitest | 2.x | Testing |
| Sentry | 9.x | Error tracking |
WhatsApp Server (apps/whatsapp-web-server)
Section titled “WhatsApp Server (apps/whatsapp-web-server)”| Technology | Version | Purpose |
|---|---|---|
| Elysia | 1.x | Bun-native HTTP framework |
| whatsapp-web.js | 1.x | WhatsApp Web automation |
| Drizzle ORM | 0.44.x | Database ORM |
| PostgreSQL | 15+ | Session storage |
| WorkOS | 7.x | Authentication middleware |
| Swagger | - | OpenAPI documentation |
Shared Packages
Section titled “Shared Packages”UI Library (packages/ui)
Section titled “UI Library (packages/ui)”| Technology | Version | Purpose |
|---|---|---|
| React | 19.x | UI library |
| Radix UI | 1.x | Accessible primitives |
| TailwindCSS | 4.x | Styling |
| CVA | 1.x | Variant management |
| Storybook | 9.x | Component development |
| Vitest | 2.x | Unit testing |
| Chromatic | - | Visual regression |
i18n (packages/i18n)
Section titled “i18n (packages/i18n)”| Technology | Version | Purpose |
|---|---|---|
| Paraglide | 2.x | Compiled i18n |
| Inlang | - | Translation management |
Infrastructure
Section titled “Infrastructure”Database
Section titled “Database”| Technology | Purpose |
|---|---|
| PostgreSQL (Neon) | Primary relational database |
| Drizzle ORM | Type-safe queries and migrations |
| Drizzle Kit | Migration management |
Authentication
Section titled “Authentication”| Technology | Purpose |
|---|---|
| WorkOS AuthKit | Enterprise SSO, primary auth |
| Better Auth | Self-hosted auth fallback |
Payments
Section titled “Payments”| Technology | Purpose |
|---|---|
| Creem | Subscription billing |
DevOps
Section titled “DevOps”| Technology | Purpose |
|---|---|
| GitHub Actions | CI/CD pipelines |
| Turborepo | Build caching and orchestration |
| Docker | Local development (postgres) |
| Sentry | Error tracking and monitoring |
| Codecov | Code coverage reporting |
Development Tools
Section titled “Development Tools”Code Quality
Section titled “Code Quality”| Tool | Purpose |
|---|---|
| ESLint 9 | Linting (flat config) |
| Prettier | Code formatting |
| TypeScript | Type checking |
| Knip | Unused code detection |
Testing
Section titled “Testing”| Tool | Purpose |
|---|---|
| Vitest | Unit and integration tests |
| Testing Library | React component testing |
| Storybook | Component isolation and docs |
| Chromatic | Visual regression testing |
| Playwright (planned) | E2E testing |
Version Control
Section titled “Version Control”| Tool | Purpose |
|---|---|
| Git | Source control |
| Commitlint | Commit message linting |
| GitHub | Repository hosting |
| Changesets | Version management |
Version Compatibility Matrix
Section titled “Version Compatibility Matrix”| Package | Node.js | Bun | TypeScript | React |
|---|---|---|---|---|
| client | ≥18 | - | 5.8+ | 19.x |
| server | ≥18 | - | 5.8+ | - |
| whatsapp-web-server | - | 1.2+ | 5.8+ | - |
| landing | ≥18 | - | 5.8+ | - |
| docs | ≥18 | - | 5.8+ | 19.x |
| ui | ≥18 | - | 5.8+ | 19.x |
| i18n | ≥18 | - | 5.8+ | - |
Configuration Files
Section titled “Configuration Files”Root Level
Section titled “Root Level”| File | Purpose |
|---|---|
pnpm-workspace.yaml | Workspace package definitions |
turbo.json | Turborepo pipeline configuration |
package.json | Root scripts and dependencies |
.nvmrc | Node.js version |
.npmrc | pnpm configuration |
Per-App Configuration
Section titled “Per-App Configuration”| File | Apps | Purpose |
|---|---|---|
tsconfig.json | All | TypeScript configuration |
eslint.config.{js,mjs} | All | ESLint flat config |
vite.config.ts | client | Vite bundler config |
next.config.ts | docs | Next.js config |
astro.config.mjs | landing | Astro config |
drizzle.config.ts | server, whatsapp-web-server | Database config |
vitest.config.ts | server, ui | Test config |
Key Dependencies by Concern
Section titled “Key Dependencies by Concern”HTTP/Routing
Section titled “HTTP/Routing”client: @tanstack/react-router, @tanstack/startserver: hono, @trpc/serverwhatsapp: elysialanding: astroState Management
Section titled “State Management”client: @tanstack/react-query, zustandclient: react-hook-form, zodStyling
Section titled “Styling”all: tailwindcss, @nexischat/uiclient: tailwind-merge, clsx, cvaDatabase
Section titled “Database”server: drizzle-orm, postgreswhatsapp: drizzle-orm, postgresAPI Communication
Section titled “API Communication”client ↔ server: @trpc/client, @trpc/react-queryserver ↔ whatsapp: fetch (REST)