Novitrac is built on a modern, scalable technology stack designed for enterprise-grade performance and reliability.
| Technology | Version | Purpose |
|---|---|---|
| React | 18.3.1 | UI framework with hooks and modern patterns |
| TypeScript | 5.6.3 | Type safety and developer experience |
| Tailwind CSS | 3.4.17 | Utility-first CSS framework |
| Radix UI | Latest | Accessible UI component library (30+ components) |
| TanStack Query | 5.60.5 | Server state management and caching |
| React Hook Form | 7.55.0 | Performant form handling with validation |
| Wouter | 3.3.5 | Lightweight routing (2KB) |
| Framer Motion | 11.13.1 | Smooth animations and transitions |
| Recharts | 2.15.2 | Data visualization and charts |
| Vite | 5.4.20 | Fast build tool with HMR |
| Technology | Version | Purpose |
|---|---|---|
| Node.js | 18+ | JavaScript runtime |
| Express.js | 4.21.2 | Web framework for APIs |
| TypeScript | 5.6.3 | Type-safe backend code |
| PostgreSQL | 14+ | Primary database (ACID compliant) |
| Drizzle ORM | 0.39.1 | Type-safe database queries |
| WebSockets (ws) | 8.18.3 | Real-time bidirectional communication |
| Passport.js | 0.7.0 | Authentication middleware |
| bcrypt | 6.0.0 | Password hashing |
| Zod | 3.24.2 | Runtime validation and type inference |
| Nodemailer | 7.0.10 | Email sending (SMTP) |
| Service | Purpose | Cost Structure |
|---|---|---|
| Twilio | Phone calling, SMS, phone numbers | ~$0.013-0.022/min (US outbound) |
| ElevenLabs | AI voice synthesis, conversational AI | ~$0.015-0.03/min |
| Stripe | Payment processing, subscriptions | 2.9% + $0.30 per transaction |
| SMTP (Gmail/SendGrid) | Transactional emails (OTP, notifications) | Free (Gmail) or $15-20/mo (SendGrid) |
Total Tables: 21 tables with comprehensive relationships
ORM: Drizzle ORM for type-safe queries
Migrations: Version-controlled schema changes
┌─────────────────────────────────────┐
│ Client (React SPA) │
│ • Responsive UI │
│ • Real-time updates (WebSocket) │
└──────────────┬──────────────────────┘
│ HTTPS/REST API
▼
┌─────────────────────────────────────┐
│ Express.js Server (Node.js) │
│ • API Routes │
│ • Authentication │
│ • Business Logic │
│ • WebSocket Server │
│ • Background Jobs │
└──────────────┬──────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ PostgreSQL Database │
│ • 21 tables │
│ • JSONB for flexibility │
│ • Indexed for performance │
└─────────────────────────────────────┘
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Twilio │ │ ElevenLabs │ │ Stripe │
│ Telephony │ │ AI Voice │ │ Payments │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└─────────────────┴─────────────────┘
│
▼
┌─────────────────────┐
│ Novitrac Platform │
└─────────────────────┘
Phase 1: Add Redis for caching and sessions
Phase 2: Move to object storage (S3) for files
Phase 3: Horizontal scaling with load balancer
Phase 4: Microservices for queue processing
Phase 5: Multi-region deployment
158
TypeScript/TSX files
21,184
Lines of code
100%
TypeScript coverage
Type-safe
Database queries (Drizzle)
100+
React components
50+
API endpoints
Platform: Hostinger VPS (Debian)
Specifications: 2+ CPU, 2GB+ RAM, 50GB+ SSD
Process Manager: PM2
Reverse Proxy: Nginx (recommended)
SSL: Let's Encrypt (Certbot)
| Metric | Current Limit | Notes |
|---|---|---|
| Concurrent Users | 100-500 | On standard VPS |
| Calls per Day | 1,000-5,000 | Limited by API keys |
| Database Size | 50GB+ | PostgreSQL handles well |
| API Requests/min | 1,000+ | With proper caching |
| Bottleneck | Solution | When Needed |
|---|---|---|
| Database connections | Connection pooling, read replicas | >500 concurrent users |
| ElevenLabs API limits | API key pool (already implemented) | >30 concurrent calls per key |
| File storage | Move to S3/object storage | >100GB files |
| Session storage | Move to Redis | >1,000 concurrent users |
| Single server | Horizontal scaling + load balancer | >2,000 concurrent users |