MriyaDesk
On-premise · ServiceDeskPilotA full-blown ServiceDesk with on-premise AI — what companies usually pay a vendor and keep a dev team for. Designed, styled and built end-to-end, myself.
Why it exists
Mriya Resort & SPA runs on dozens of service teams closing hundreds of requests a day: technicians, engineers, cleaning, housekeeping, grounds. I run the heavy-equipment department myself, so I know from the inside how this usually works: requests drown in chats, phone calls and paper, nobody tracks SLA, and managers never see the real picture.
MriyaDesk solves it like a real product: one system where a request lives its whole lifecycle — from an employee's report to SLA-based closure, with transparent analytics for management. Built around how the work actually happens on site, not in a vacuum.
Anyone can file a request
The requester isn't only a technician — it's any employee. Describe the problem, set the location, link the equipment, attach a photo, video or voice note — and the request goes to the right team. On the right, the system assembles a live summary on the fly: priority, service line, projected SLA.
The request goes the full distance
From there the request is routed to a service line and an assignee, SLA is counted in business hours separately for response and resolution, and on a breach cascading escalations fire up the hierarchy. The whole history — discussion, escalations, log — lives in one card, next to the classification and the AI assistant's hints.
On-premise AI that gets the point
A dedicated AI service classifies requests automatically — by text and by photo — and suggests the service line and priority. The key part: the model runs on-premise, on the client's own servers. Data never leaves — critical for closed facilities. Semantics are built on PostgreSQL + pgvector.
SLA, escalations and control
SLA is configured per service line and priority with business hours in mind. The system surfaces critical and overdue requests on its own, runs cascading escalations, and keeps managers in the loop — what's on fire right now and where.
Configurable for any team
Statuses and transitions (workflow), service lines, positions, skills and the role model are all configurable without a developer. So the system fits technicians, cleaning and grounds alike — each team works by its own process.
Analytics for managers
Dashboards and reports show load and performance per service line, SLA compliance, ticket dynamics and org-structure reporting. For the first time a manager sees the teams' work in numbers, not just words.
Under the hood
A microservice architecture, everything runs on-premise in Docker — at the client, no cloud. Designed and documented like a grown-up product, built with AI-assisted development.
- Go core, a Python / FastAPI AI service, a Next.js 16 + React 19 web app
- PostgreSQL + pgvector for semantics, Redis, MinIO for files
- On-premise AI: text & photo classification with no data leaving the client
- Offline-first PWA — one window for all staff: Service Worker, sync when back online
- Observability: Prometheus / Grafana; 12+ services in one docker-compose
- 35 ADRs and 83 migrations — architectural decisions are on record
One app for every employee
The mobile PWA is a single point of entry for everyone. Any employee files a request from their phone and tracks its status, while crews handle their own work and inspections right there. One window instead of chats, calls and paper — for requesters and crews alike, offline on site too. It syncs the moment connectivity is back.