LATESTThis Week Confirmed Dubai's AI Dominance
Engineering

The Full-Stack AI Tech Stack That Actually Ships

The exact tech stack we use at Recruitly.io. React 19 SSR, polyglot databases, Python AI engine. Battle-tested on millions of users.

12 min readSOO Group Engineering

The Stack

Frontend
ā”œā”€ā”€ ReactJS 19 with Zustand + Next.js with 100% SSR (Just like JSPs)
ā”œā”€ā”€ ShadCN for UI + Ant Components where required
└── Firebase Authentication (Google Workspace and Microsoft 365 auth)

Backend & Middleware
ā”œā”€ā”€ NodeJS with Express.js/Fastify + Pact.js for Contract Testing
ā”œā”€ā”€ MongoDB for data (Firebase's MongoDB compatibility)
ā”œā”€ā”€ Firebase for activity logs, person and company global data, emails
ā”œā”€ā”€ Elasticsearch for full-text and faceted searches
ā”œā”€ā”€ Qdrant for semantic searches and AI matches
ā”œā”€ā”€ BullMQ for queues/background jobs/batch tasks
ā”œā”€ā”€ Redis as BullMQ Storage and Application Cache
└── AWS S3 for File Storage with Uppy.io for client uploads

AI Engine (Python)
ā”œā”€ā”€ Composio - Core AI middleware for external app integration
ā”œā”€ā”€ LangChain - AI agent reasoning & action execution
ā”œā”€ā”€ LlamaIndex - Fetching structured/unstructured CRM & external data
ā”œā”€ā”€ Qdrant (Vector DB) - AI agent memory & semantic search
ā”œā”€ā”€ BullMQ (Redis-based) - AI task/job queueing
ā”œā”€ā”€ Temporal.io - Complex multi-step workflow automation
└── (Optional) LangGraph - Only if Composio lacks multi-agent orchestration

CI/CD & Monitoring
ā”œā”€ā”€ GitHub Actions + Docker-based deployments
ā”œā”€ā”€ Highlight.io for monitoring ReactJS Client + NodeJS Backend errors
└── Coralogix for audit logging

Web Infrastructure & Security
ā”œā”€ā”€ Cloudflare
ā”œā”€ā”€ Traefik with Cloudflare Tunnels
└── Bunny CDN (for serving static content)

Frontend: Modern React with SSR

React 19 + Next.js SSR

We configure Next.js for 100% server-side rendering. Every page is rendered on the server, just like the old JSP days. No client-side hydration complexity. No loading spinners. Just HTML that works instantly.

Why? Because LLMs need context. When an AI agent accesses a page, it gets the full content immediately. Plus, users see content in milliseconds, not seconds.

Zustand for State Management

378 bytes. That's the entire Zustand state management library. No providers, no boilerplate, no complexity. Just a simple store that works.

const useStore = create((set) => ({
  user: null,
  setUser: (user) => set({ user }),
  clearUser: () => set({ user: null })
}));

// That's it. Use it anywhere.

ShadCN + Ant Design

ShadCN gives us copy-paste components we own. No black box. Ant Design fills the gaps with battle-tested complex components. Both work with Tailwind. No fighting CSS-in-JS.

Backend: Polyglot Persistence Done Right

The Database Strategy

One database for everything is a lie. We use four, each optimized for its purpose:

MongoDB (via Firebase)

Core business data. Documents match AI's nested JSON outputs perfectly. Firebase's new MongoDB compatibility gives us the best of both worlds.

Firebase Realtime Database

Activity logs, global data, real-time updates. WebSocket infrastructure built-in.

Elasticsearch

Full-text search with facets. Users expect Google-quality search. Elasticsearch delivers it.

Qdrant

Vector search for AI. Qdrant appears twice in our stack - backend for product search, AI engine for agent memory.

Queue Architecture

BullMQ handles all async processing. Built on Redis, battle-tested at scale. Handles retries, dead letter queues, and distributed processing out of the box.

Contract Testing with Pact

Frontend and backend teams can work independently. Pact ensures they stay in sync. No more "works on my machine" with API integrations.

AI Engine: Python Where It Matters

Node.js runs the web layer. Python runs the AI. Stop fighting this natural division.

Composio: The Hidden Gem

Composio handles integrations with 100+ external apps. OAuth flows, API abstractions, webhook management - all solved. Your AI agents can interact with Slack, Gmail, CRMs without writing integration code.

LangChain + LlamaIndex

LangChain for agent orchestration and reasoning loops. LlamaIndex for data ingestion and retrieval. They complement each other perfectly. Use both.

Temporal for Complex Workflows

When workflows span days or weeks with human approvals, Temporal handles the state. Survives restarts, handles retries, provides perfect audit trails.

Infrastructure: Simple but Bulletproof

Everything Through Cloudflare

DDoS protection, WAF, caching, tunnels - Cloudflare handles it all. Zero exposed ports. Everything goes through their network.

Traefik + Cloudflare Tunnels

No public IPs. No open ports. Traefik routes internally, Cloudflare Tunnels expose services securely. Sleep well at night.

Bunny CDN

10x cheaper than CloudFront. Same performance. Bunny CDN includes automatic image optimization.

Monitoring: See Everything

Highlight.io

Highlight.io provides session replay + error tracking in one tool. See exactly what users did before the error. Invaluable for debugging AI interactions.

Coralogix

Coralogix provides ML-powered log analysis. Finds anomalies before users complain. Compliance-ready audit trails built in.

Why This Stack Works

Speed to Market

Every choice optimizes for shipping. No over-engineering. No resume-driven development.

Scale Without Pain

Each component has scaled to millions of users. No rewrites needed.

Developer Experience

Tools developers actually enjoy using. Happy developers ship faster.

AI-First Architecture

Not retrofitted for AI. Built with AI workloads in mind from day one.

The Bottom Line

This stack ships. We know because we ship with it daily at Recruitly.io. Every choice is validated in production with real users and real scale.

Copy it. Adapt it. Ship it.

Need help implementing this stack?

We've done it 50+ times. Let's get you to production.

Schedule Architecture Review