KoroCRM
Multi-tenant CRM / PMS in production for Chivasom (Thailand) and Zulal (Qatar). NestJS + Nuxt + MSSQL with per-tenant isolation.
The Problem
Luxury-resort operations depend on tight coordination across housekeeping, maintenance, and guest-services teams. Off-the-shelf PMS products are either too generic or too heavyweight for high-touch wellness resorts. Korotek needed a modern, multi-tenant platform that could serve multiple branded properties from one codebase without leaking data between them.
The Solution
Apex36 built a multi-tenant CRM / Property Management System on NestJS 10 + Sequelize + MSSQL + Nuxt 3 / Vue 3 / Vuetify 3, with five operational modules (housekeeping, inspections, maintenance, lost & found, concierge), JWT + CASL authorisation, custom @TenantScoped() / @TenantIds() decorators enforcing per-tenant data isolation at the ORM layer, and i18n across English, Thai, Arabic, and French. In production at Chivasom (Thailand) and Zulal (Qatar).
Features
Five operational modules
Housekeeping, Inspections, Maintenance, Lost & Found, and Concierge, each a first-class module with training videos and transcripts.
Decorator-based multi-tenancy
Custom NestJS @TenantScoped() and @TenantIds() decorators enforce per-tenant data isolation at the ORM layer.
JWT + CASL authorisation
JWT authentication combined with CASL permissions for granular access control across tenants.
English / Thai / Arabic / French i18n
Full localisation across all four languages required by Chivasom (Thailand) and Zulal (Qatar).
Internal mssql-mcp-server dev tool
Internal MCP server built to accelerate MSSQL querying during development.
Results / Impact
two luxury wellness resorts running on the same multi-tenant codebase.
spanning housekeeping, inspections, maintenance, lost & found, concierge.
at the ORM layer, clean separation across branded properties.
FAQ
Ready to build something impactful?
Let's discuss your project and how we can help you ship faster and smarter.
Book a Free Strategy Call