# Architecture Overview **nself-chat System Architecture** - High-level design and technical overview. **Version**: 1.0.0 | **Last Updated**: April 17, 2026 --- ## 🎯 Executive Summary nself-chat is a production-ready, white-label team communication platform built as a **monorepo** with separate backend and frontend concerns. It supports **6 platforms** (Web, iOS, Android, Windows, macOS, Linux) from a single React codebase. **Key Design Principles:** - **Separation of Concerns**: Backend (nself CLI) and Frontend (React) are independent - **Code Reuse**: Shared packages across all platform apps - **Type Safety**: 100% TypeScript with zero errors - **Production Ready**: Zero compromises on quality, security, or performance --- ## πŸ—οΈ System Architecture ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ nself-chat v1.0.0 β”‚ β”‚ Multi-Platform Chat System β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–² β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Frontend β”‚ β”‚ Backend β”‚ β”‚ (React 19) │◄───────────────────────── (nself CLI) β”‚ β”‚ β”‚ GraphQL/WebSocket β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Platform Apps β”‚ β”‚ Backend Services β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β€’ Web (Next.js 15) β”‚ β”‚ β€’ PostgreSQL (database) β”‚ β”‚ β€’ iOS (Capacitor 6) β”‚ β”‚ β€’ Hasura (GraphQL) β”‚ β”‚ β€’ Android (Capacitor 6) β”‚ β”‚ β€’ Auth (Nhost) β”‚ β”‚ β€’ Windows (Electron 33) β”‚ β”‚ β€’ MinIO (storage) β”‚ β”‚ β€’ macOS (Electron 33) β”‚ β”‚ β€’ Redis (cache) β”‚ β”‚ β€’ Linux (Electron 33) β”‚ β”‚ β€’ MeiliSearch (search) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β€’ Mailpit (email dev) β”‚ β”‚ β€’ Nginx (proxy) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## πŸ“ Monorepo Structure ### Project Layout ``` nself-chat/ β”œβ”€β”€ backend/ # Backend infrastructure (nself CLI) β”‚ β”œβ”€β”€ migrations/ # SQL migrations (222 tables) β”‚ β”œβ”€β”€ hasura/ # GraphQL metadata and permissions β”‚ β”œβ”€β”€ nginx/ # Reverse proxy configuration β”‚ β”œβ”€β”€ postgres/ # PostgreSQL init scripts β”‚ β”œβ”€β”€ auth/ # Auth service configuration β”‚ β”œβ”€β”€ schema.dbml # Database schema (DBML format) β”‚ β”œβ”€β”€ docker-compose.yml # Generated by nself build β”‚ β”œβ”€β”€ .env # Local environment config β”‚ └── README.md # Backend documentation β”‚ β”œβ”€β”€ frontend/ # Frontend monorepo (all platforms) β”‚ β”œβ”€β”€ apps/ β”‚ β”‚ β”œβ”€β”€ web/ # Next.js 15 web application β”‚ β”‚ β”‚ β”œβ”€β”€ src/ # Source code β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ app/ # Next.js App Router β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ components/ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ hooks/ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ lib/ β”‚ β”‚ β”‚ β”‚ └── services/ β”‚ β”‚ β”‚ β”œβ”€β”€ public/ # Static assets β”‚ β”‚ β”‚ β”œβ”€β”€ package.json β”‚ β”‚ β”‚ └── README.md β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ mobile/ # Capacitor mobile app β”‚ β”‚ β”‚ β”œβ”€β”€ src/ # React source code β”‚ β”‚ β”‚ β”œβ”€β”€ android/ # Native Android project β”‚ β”‚ β”‚ β”œβ”€β”€ ios/ # Native iOS project β”‚ β”‚ β”‚ β”œβ”€β”€ capacitor.config.json β”‚ β”‚ β”‚ └── README.md β”‚ β”‚ β”‚ β”‚ β”‚ └── desktop/ # Electron desktop app β”‚ β”‚ β”œβ”€β”€ src/ β”‚ β”‚ β”‚ β”œβ”€β”€ main/ # Main process (Node.js) β”‚ β”‚ β”‚ β”œβ”€β”€ preload/# Preload scripts β”‚ β”‚ β”‚ β”œβ”€β”€ renderer/# Renderer process (React) β”‚ β”‚ β”‚ └── adapters/# Platform adapters β”‚ β”‚ β”œβ”€β”€ build/ # Build resources (icons) β”‚ β”‚ β”œβ”€β”€ electron-builder.json β”‚ β”‚ └── README.md β”‚ β”‚ β”‚ β”œβ”€β”€ packages/ # Shared packages (code reuse) β”‚ β”‚ β”œβ”€β”€ ui/ # Radix UI components β”‚ β”‚ β”œβ”€β”€ config/ # Configuration types β”‚ β”‚ β”œβ”€β”€ lib/ # Utility functions β”‚ β”‚ β”œβ”€β”€ graphql/ # GraphQL client & queries β”‚ β”‚ β”œβ”€β”€ auth/ # Authentication logic β”‚ β”‚ β”œβ”€β”€ state/ # State management (Zustand) β”‚ β”‚ └── types/ # TypeScript types β”‚ β”‚ β”‚ β”œβ”€β”€ tooling/ # Development tooling β”‚ β”‚ └── eslint/ # Shared ESLint config β”‚ β”‚ β”‚ β”œβ”€β”€ package.json # Root workspace config β”‚ β”œβ”€β”€ pnpm-workspace.yaml β”‚ └── README.md β”‚ β”œβ”€β”€ .wiki/ # Complete documentation (228 files) β”‚ β”œβ”€β”€ Home.md # Documentation home β”‚ β”œβ”€β”€ getting-started/ β”‚ β”œβ”€β”€ features/ β”‚ β”œβ”€β”€ guides/ β”‚ β”œβ”€β”€ api/ β”‚ β”œβ”€β”€ deployment/ β”‚ └── ... β”‚ β”œβ”€β”€ .github/ # GitHub Actions CI/CD β”‚ └── workflows/ # 19 workflow files β”‚ β”œβ”€β”€ .claude/ # Claude Code context (gitignored) β”‚ └── v092/ # Current version tracking β”‚ β”œβ”€β”€ scripts/ # Build and utility scripts β”œβ”€β”€ package.json # Root package.json β”œβ”€β”€ README.md # Project overview └── LICENSE # MIT License ``` --- ## πŸ”§ Backend Architecture ### nself CLI Stack The backend uses [nself CLI](https://nself.org) v1.0.6 for a complete BaaS (Backend as a Service) stack. **Core Services** (required): 1. **PostgreSQL 16** - Primary database with 60+ extensions 2. **Hasura 2.x** - GraphQL Engine with permissions 3. **Auth** - Nhost Authentication service 4. **Nginx** - Reverse proxy + SSL termination **Optional Services** (configurable via `.env`): - **nself-admin** - Admin UI (port 3021) - **MinIO** - S3-compatible object storage - **Redis** - Cache and session storage - **MeiliSearch** - Full-text search engine - **Mailpit** - Email testing (dev only) - **Monitoring Stack** - Grafana, Prometheus, Loki, etc. ### Database Schema **222 tables** organized by feature: - **Core Tables**: users, profiles, channels, messages, threads - **RBAC**: roles, permissions, user_roles - **Features**: reactions, bookmarks, pins, attachments - **Advanced**: guilds, categories, broadcasts, bots - **Multi-Tenancy**: workspaces, subscriptions, billing - **Analytics**: events, metrics, audit_logs **Schema Format**: DBML (Database Markup Language) in `backend/schema.dbml` ### GraphQL API **Hasura** provides: - Auto-generated GraphQL API from PostgreSQL schema - Real-time subscriptions via WebSocket - Role-based permissions (RBAC) - Remote schemas for custom business logic - Actions for REST API integration **API Endpoints**: - GraphQL: `/v1/graphql` - WebSocket: `/v1/graphql` (ws://) - Admin Console: `/console` --- ## πŸ’» Frontend Architecture ### Multi-Platform Strategy **One codebase β†’ Six platforms** using React 19: | Platform | Technology | Build Output | |----------|-----------|--------------| | Web | Next.js 15 (SSR/SSG) | Static HTML + JS | | iOS | Capacitor 6 + WebView | .ipa (App Store) | | Android | Capacitor 6 + WebView | .apk/.aab (Play Store) | | Windows | Electron 33 | .exe installer | | macOS | Electron 33 | .dmg disk image | | Linux | Electron 33 | .AppImage/.deb/.rpm | ### Shared Packages **Monorepo design** maximizes code reuse: ```typescript // Example: Importing from shared packages import { Button } from '@nself-chat/ui' import { useAuth } from '@nself-chat/auth' import { apolloClient } from '@nself-chat/graphql' import { logger } from '@nself-chat/lib' ``` **Benefits**: - βœ… Single source of truth for types - βœ… Consistent UI across all platforms - βœ… Shared business logic - βœ… Easier testing and maintenance ### Platform Adapters Each platform has **adapters** for native features: **Mobile Adapters** (`frontend/apps/mobile/src/adapters/`): - `storage/` - AsyncStorage β†’ LocalStorage interface - `auth/` - Biometric authentication (Face ID, Touch ID) - `notifications/` - Push notifications (FCM/APNS) - `camera/` - Photo capture and gallery access - `network/` - Connectivity monitoring **Desktop Adapters** (`frontend/apps/desktop/src/adapters/`): - `storage/` - electron-store β†’ LocalStorage interface - `notifications/` - Native desktop notifications - `clipboard/` - System clipboard access - `filesystem/` - File system operations - `window/` - Window management ### State Management **Zustand 5.0** for local state: ```typescript // Example: Auth store import { create } from 'zustand' const useAuthStore = create((set) => ({ user: null, login: (user) => set({ user }), logout: () => set({ user: null }), })) ``` **Apollo Client 3.12** for server state: ```typescript // Example: GraphQL query const { data, loading } = useQuery(GET_MESSAGES, { variables: { channelId }, }) ``` ### UI Component Library **Radix UI** primitives + **Tailwind CSS** styling: - Accessible (WCAG 2.1 AA compliant) - Unstyled primitives (full control) - Dark/light mode support - Consistent across all platforms --- ## πŸ” Security Architecture ### Authentication Flow ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Client │─────▢│ Auth │─────▢│ Hasura β”‚ β”‚ (Browser)β”‚ β”‚ Service β”‚ β”‚ GraphQL β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β–Ό β–Ό β–Ό JWT Token JWT Secret JWT Validation (httpOnly (HMAC-SHA256) (x-hasura-* claims) cookie) ``` **Auth Methods**: - Email + Password - Magic Links (passwordless) - 11 OAuth Providers (Google, GitHub, Apple, etc.) - 2FA/TOTP (optional) - Biometric (mobile) ### Authorization (RBAC) **5 built-in roles** with granular permissions: 1. **Owner** - Full access to everything 2. **Admin** - User and channel management 3. **Moderator** - Content moderation 4. **Member** - Standard user 5. **Guest** - Limited read-only access **Permission Examples**: ```typescript // Hasura permission rules (simplified) { "select": { "filter": { "_or": [ { "channel.type": "public" }, { "channel.members.user_id": "X-Hasura-User-Id" } ] } } } ``` ### Data Security - **End-to-End Encryption**: Signal Protocol (Double Ratchet) - **Transport Security**: HTTPS/TLS 1.3 - **Database Encryption**: At-rest encryption (optional) - **Secrets Management**: Environment variables + vault - **Input Sanitization**: DOMPurify for XSS prevention - **CSRF Protection**: SameSite cookies - **Rate Limiting**: Redis-based rate limiting --- ## πŸš€ Deployment Architecture ### Development Environment ``` Developer Machine β”œβ”€β”€ Backend (Docker) β”‚ └── 8 services running via nself CLI └── Frontend (Node.js) └── pnpm dev (port 3000) ``` ### Production Architecture (Recommended) ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Load Balancer β”‚ β”‚ (nginx, Cloudflare, etc.) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”‚ Web β”‚ β”‚ Backend β”‚ β”‚ Nodes β”‚ β”‚ Cluster β”‚ β”‚ (Next) β”‚ β”‚(Hasura) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”‚ β”‚ DB β”‚ └──────────────▢(Postgres) β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### Deployment Options | Option | Best For | Complexity | |--------|----------|-----------| | **Vercel** | Web app only | Low | | **Docker** | Self-hosted | Medium | | **Kubernetes** | Enterprise scale | High | | **AWS/GCP/Azure** | Full control | High | --- ## πŸ“Š Data Flow ### Real-Time Messaging ``` User A Server User B β”‚ β”‚ β”‚ │─────(1) Send Msg───────▢│ β”‚ β”‚ (GraphQL) β”‚ β”‚ β”‚ β”‚ β”‚ │◀────(2) Confirm ────────│ β”‚ β”‚ (200 OK) β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ │──(3) Push Msg──────────▢│ β”‚ β”‚ (WebSocket) β”‚ β”‚ β”‚ β”‚ β”‚ │◀────(4) Ack─────────────│ β”‚ β”‚ β”‚ ``` **Steps**: 1. User A sends message via GraphQL mutation 2. Server validates, saves to DB, returns confirmation 3. Server pushes message to User B via WebSocket subscription 4. User B acknowledges receipt ### File Upload Flow ``` Client Frontend MinIO Database β”‚ β”‚ β”‚ β”‚ │─(1) Select File──────▢│ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ │─(2) Get Upload URL─▢│ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ │◀─(3) Signed URL────│ β”‚ β”‚ β”‚ β”‚ β”‚ │◀─(4) Upload Direct────┼────────────────────▢│ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ │─(5) Save Metadata──┼────────────────▢│ β”‚ β”‚ β”‚ β”‚ │◀─(6) Success──────────│ β”‚ β”‚ ``` **Benefits**: - Direct upload to S3 (faster) - No frontend server load - Scalable file storage --- ## πŸ”„ Development Workflow ### Git Branch Strategy ``` main (production) β”‚ └── develop (staging) β”‚ β”œβ”€β”€ feature/new-feature β”œβ”€β”€ fix/bug-fix └── refactor/code-cleanup ``` ### CI/CD Pipeline ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Commit │────▢│ CI Checks │────▢│ Deploy β”‚ β”‚ (GitHub) β”‚ β”‚ (Actions) β”‚ β”‚ (Vercel) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”‚ Lint β”‚ β”‚ Test β”‚ β”‚ Type β”‚ β”‚ Build β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **CI Checks**: - βœ… Linting (ESLint) - βœ… Type checking (TypeScript) - βœ… Unit tests (Jest) - βœ… Integration tests - βœ… E2E tests (Playwright) - βœ… Security scans (TruffleHog) - βœ… Build verification --- ## πŸ“ˆ Performance Optimizations ### Frontend - **Code Splitting**: Dynamic imports, route-based splitting - **Image Optimization**: Next.js Image component, Sharp.js - **Bundle Analysis**: Webpack Bundle Analyzer - **Lazy Loading**: React.lazy for heavy components - **Memoization**: React.memo, useMemo, useCallback - **Virtual Scrolling**: For long message lists ### Backend - **Database Indexes**: Optimized indexes for common queries - **Connection Pooling**: PgBouncer for PostgreSQL - **Caching**: Redis for frequently accessed data - **Query Optimization**: Hasura performance hints - **CDN**: Static assets on CDN (Cloudflare, etc.) ### Monitoring - **Sentry**: Error tracking and performance monitoring - **Grafana**: Metrics dashboards - **Prometheus**: Metrics collection - **Loki**: Log aggregation --- ## πŸ§ͺ Testing Strategy ### Test Pyramid ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ E2E Tests β”‚ (Playwright) β”‚ ~150 β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚Integration β”‚ (Jest) β”‚ Tests β”‚ β”‚ ~250 β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Unit Tests β”‚ (Jest) β”‚ ~600 β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Coverage Goals**: - Unit Tests: >80% - Integration Tests: Critical paths - E2E Tests: User journeys --- ## πŸ“š Technology Stack Summary ### Frontend | Category | Technology | Version | |----------|-----------|---------| | Framework | Next.js | 15.1.6 | | UI Library | React | 19.0.0 | | Language | TypeScript | 5.7.3 | | Styling | Tailwind CSS | 3.4.17 | | State | Zustand | 5.0.3 | | GraphQL | Apollo Client | 3.12.8 | | UI Components | Radix UI | Latest | | Forms | React Hook Form | 7.54.2 | | Validation | Zod | 3.24.1 | ### Backend | Category | Technology | Version | |----------|-----------|---------| | Database | PostgreSQL | 16 | | GraphQL | Hasura | 2.x | | Auth | Nhost Auth | Latest | | Storage | MinIO | Latest | | Search | MeiliSearch | 1.x | | Cache | Redis | 7.x | | Proxy | Nginx | Latest | | Infrastructure | nself CLI | 0.4.2 | ### Mobile/Desktop | Category | Technology | Version | |----------|-----------|---------| | Mobile | Capacitor | 6.2 | | Desktop | Electron | 33.2 | | Build Tool | Vite | 6.0 | ### DevOps | Category | Technology | Purpose | |----------|-----------|---------| | CI/CD | GitHub Actions | Automation | | Monitoring | Sentry | Error tracking | | Logging | Loki | Log aggregation | | Metrics | Prometheus | Metrics collection | | Dashboards | Grafana | Visualization | --- ## πŸ”— Additional Resources - [Backend README](./ARCHITECTURE.md) - Backend setup and services - [Frontend README](./Architecture-Overview.md) - Frontend monorepo details - [Database Schema](reference/Database-Schema.md) - Complete schema documentation - [API Reference](api/API.md) - GraphQL API documentation - [Deployment Guide](DEPLOYMENT-GUIDE.md) - Production deployment --- **Next Steps**: [Quick Start](nself-cli/Quick-Start.md) | [Installation](getting-started/Installation.md) | [Deployment](DEPLOYMENT-GUIDE.md)