Skip to content
Zrigou
All work

SaaS Platform

Clinoly

Clinic management for doctors, clinics and medical centres.

Clinoly clinic dashboard showing today's patients, upcoming appointments and quick actions
Role
Founder & Lead Developer
Platform
Web, tablet and phone
Type
SaaS Platform

Overview

Clinoly replaces the spreadsheet, the paper appointment book and the filing cabinet that most small clinics still run on. A doctor opens it and sees who is waiting, who is next and what happened last time. A receptionist books, checks in and takes payment without ever seeing a clinical note.

It is designed for Morocco first, with French, Arabic with full right-to-left, English, dirhams and local phone formats. Nothing about the country is hard-coded: currency, tax, language and document formats are all configuration.

Built with

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind CSS
  • TanStack Query
  • NestJS 11
  • PostgreSQL 16
  • Prisma
  • Redis
  • BullMQ
  • S3
  • Docker

What it does

  1. 01

    Front desk

    Day, week, month and list calendars, a live waiting room, a waiting list that offers freed slots automatically, and reminders that never send twice.

  2. 02

    Consultation

    One screen from complaint to follow-up: vitals with trend charts, examination, structured diagnoses, prescriptions, and lab and imaging orders.

  3. 03

    Billing

    A price list, invoices, partial payments, refunds, receipts and branded PDFs, with every patient balance kept correct.

  4. 04

    Patient access

    A portal for appointments, prescriptions and invoices, plus a public booking page per clinic with its own QR code.

  5. 05

    Insight

    Role-specific dashboards, activity and revenue analytics, CSV and PDF reports, and an append-only audit trail.

  6. 06

    AI, with the doctor in charge

    It can summarise a history, structure notes or draft a referral. It never diagnoses, never prescribes and never writes to a record, and patient consent gates it.

Inside the product

Clinoly consultation screen with vitals, complaint and prescription actions
The consultation, from vitals to prescription on one screen.
Clinoly live waiting room listing patients in queue
A live waiting room shared by the front desk and the doctor.
Clinoly dashboard in Arabic with a full right-to-left layout
Arabic with a full right-to-left layout.
Clinoly analytics with appointments, no-shows and revenue charts
Activity, no-shows and revenue on a single page.

How it is built

  • Isolation enforced twice

    Every clinic is separated at the data layer. The boundary is checked once by a guard and again by every query.

  • Records are amended, never rewritten

    Optimistic concurrency stops a second tab overwriting newer work, and a revision snapshot is saved before every change.

  • Scheduling rules live in the database

    Double booking is prevented by the database itself, so no client bug can create a conflict.

  • Money never touches a float

    Every amount is stored as an integer in minor units, from the price list to the final receipt.

  • Features are switches

    Turning a capability off refuses it at the route and removes it from the navigation, the plans, the pricing table and the marketing pages, in all three languages.

  • One contract, shared

    Types, validation schemas and the Prisma schema sit in shared packages, so the client and server cannot drift apart.

Next project

Masroufi