0%
Aymen
Back to Works
WebShipped2026

Mouhami

Legal SaaS for law firms: voice-driven document drafting, client and case management, invoicing, with a companion mobile app.

My Role
Full Stack Engineer
Timeline
Jun 2026 — Aug 2026
Status
Shipped
Mouhami
Overview

Mouhami is a practice-management platform shaped around how lawyers actually produce documents: they dictate. A lawyer speaks in Arabic, a self-hosted Whisper server transcribes the audio as it streams in over a WebSocket, and the text lands directly in a structured legal-document editor — dictation is the primary input method, not a bolt-on.

Around that drafting flow sits the daily machinery of a firm: clients and cases organised by region and municipality, and invoice generation. A React Native companion app carries the same navy/gold RTL design system, with a centre-mic dictation UI.

The Challenge

The problem to solve

The problem was twofold: input and interface direction. The lawyers Mouhami is built for draft in Arabic, and making dictation the primary input method demands streaming Arabic transcription that feeds straight into an editable legal document — handled here by a self-hosted Whisper deployment rather than a third-party speech API. The interface also had to be right-to-left by design rather than a translated left-to-right layout.

Court document templates
Court document templates
The Solution

How it was built

Dictation runs as a streaming pipeline: audio travels from the browser or the mobile app over a secured WebSocket (wss) to the self-hosted Whisper server, and the transcribed Arabic text is inserted into a structured legal-document editor rather than a raw text box.

Client and case records are organised by region and municipality, with bulk selection and per-client detail pages, and invoices are generated from the platform. Everything ships in a navy/gold RTL design system that extends to the React Native app, whose dictation screen centres on the mic button.

Key Features

What it does

🎙️

Voice-first drafting

Lawyers dictate in Arabic; a self-hosted Whisper server transcribes the stream over WebSocket and feeds the text straight into the document.

📝

Structured legal editor

Transcribed text lands in an editor built for legal documents, not a plain text area, so drafts keep their structure.

🗂️

Clients and cases

Client and case management organised by region and municipality, with bulk selection and per-client detail pages.

💳

Per-seat plans

Firm subscriptions are priced per seat, with a role for each member of the firm.

🧾

Invoice generation

Invoices are generated from the platform as part of the firm's day-to-day workflow.

📱

Companion mobile app

A React Native app with a centre-mic dictation UI, in the same navy/gold RTL design system as the web client.

Document editor
Document editor
Technologies Used

Built with

Frontend

Next.js

Next.js drives the web client — its routing and rendering model suits an app that mixes a heavy interactive document editor with conventional screens for clients, cases, and billing.

TypeScript

TypeScript spans client, server, and mobile, so domain types — cases, invoices and subscriptions — stay consistent end to end.

Mobile

React Native

React Native let the companion app — including the centre-mic dictation screen — be built for mobile from one codebase while reusing the platform's navy/gold RTL design language.

Backend

Fastify

Fastify keeps the API layer fast and structured — schema-validated routes for clients, cases and subscriptions with minimal overhead.

Data

PostgreSQL

PostgreSQL holds the relational core — firms, seats, clients, cases, invoices, and subscriptions are interlinked records where foreign keys and transactional integrity matter.