khlass.ma
Khlass
Facturation et conformité pour les auto-entrepreneurs marocains.
- Rôle
- Seul : produit, design, code et infrastructure
- Année
- 2026
- Site
- khlass.ma
Le problème
Les freelances marocains vivent avec des limites strictes : un plafond de chiffre d’affaires annuel, un impôt forfaitaire sur chaque dirham encaissé, et une retenue à la source de 30 % dès qu’un même client dépasse 80 000 MAD dans l’année. Les outils de facturation génériques font des PDF. Khlass répond aux questions qui comptent vraiment : quelle marge reste-t-il cette année ? Quel client va franchir le seuil ? Combien d’impôt est dû ce trimestre ?
Ce que j’ai construit
-
01
Devis, factures et avoirs avec une numérotation annuelle sans trou (
FA-2026-0001), où un numéro ne peut qu’avancer. - 02 Des jauges en temps réel pour le plafond annuel et le seuil par client, calculées sur l’argent réellement encaissé et converties en MAD à la date du paiement.
- 03 Un éditeur de documents A4 libre : blocs positionnés au millimètre, mentions légales déplaçables mais jamais supprimables.
- 04 Des PDF au pixel près, générés par Chromium headless, avec une solution de repli automatique quand Chromium n’est pas disponible.
- 05 Des abonnements par carte via YouCan Pay ou par virement validé manuellement, les deux passant par un seul et même chemin d’activation.
- 06 Tout le produit, documents compris, en français et en anglais.
Les détails qui m’ont obsédé
- Une facture émise est immuable. Les corrections passent par un avoir lié à l’original, exactement comme la loi l’attend.
- Plafonds, taux et mentions légales vivent dans un seul fichier de configuration : une nouvelle loi de finances, c’est une ligne à changer, pas une chasse dans le code.
- Les clients qui paient depuis l’étranger via Deel, Upwork ou Payoneer ont un total annuel au lieu d’une jauge de retenue qui induirait en erreur.
- Le contenu légal est figé à l’émission ; l’habillage est appliqué au rendu. Changer de logo ne réécrit jamais l’historique.
Stack
- Laravel 13
- PHP 8.4
- Chromium PDF
- YouCan Pay
- MySQL
- Redis
- Cloudflare R2
- Turnstile
- Alpine.js
- Tailwind CSS
- Blade
- Docker