← all systems

multi-tenant service desk

Ticketing platform

A self-hostable, multi-tenant ticketing platform for IT support, customer support and public-sector services, with an MCP server for AI agents.

role
Designer and engineer
year
2026
status
personal
stack
TypeScript · NestJS · React 19 · PostgreSQL · PostGIS · BullMQ

Context

Help desks for IT teams, customer support and municipal services (smart meters, street lights) share the same core: tickets, assets, SLAs and automation, per organisation.

What I built

A monorepo (pnpm + Turborepo) with:

  • API: NestJS on Fastify with a plain tsc build.
  • Web: React 19 + Vite + TypeScript.
  • Data: Drizzle ORM on PostgreSQL + PostGIS, with location-aware assets.
  • Shared contracts: Zod schemas, inferred types and the permission catalog, used by both API and web.
  • Automation: rules executed on Redis + BullMQ.
  • MCP server: a stdio proxy that exposes ticket-management tools to AI agents through the API’s native /mcp endpoint.

Integration tests run against real Postgres and Redis with Testcontainers.