Skip to content
Younes Bessa / Workshop

Fig. 02 — My product · SaaS

Probook

Invoicing, stock and point of sale for small businesses. First a desktop app, now a SaaS.

Role
Maker · sole developer
Period
2026 — present
An invoice screen in Probook: line items, 19% VAT, total in dinars and actions (mark paid, delivery note, credit note).

By the numbers

commits (desktop + SaaS)
297
Prisma data models
69
API routes
214
unit and end-to-end tests
690+

§ 01

The product

Probook is an all-in-one management tool for freelancers and small businesses: clients, a product catalogue, quotes that turn into invoices, delivery notes, credit notes, payments, expenses, suppliers and purchase orders, stock across several locations, and a point-of-sale mode for in-store sales.

The main market is Algeria: dinars, local tax identifiers (NIF, RC, NIS), 0/9/19% VAT, stamp duty. A French tax profile exists too. The interface is in French, English and Arabic. Probook is in production with its first customers.

§ 02

From desktop app to SaaS

Probook started in January 2026 as a Tauri desktop app (React + Rust): a database, multiple users with roles, a point of sale with a thermal printer, an offline queue and a signed licence system (Ed25519).

In March 2026 I rewrote it as a Next.js SaaS. The features were ported, then the SaaS layer was added: trials, subscriptions, à-la-carte plans, a platform admin panel. One trace of its origins remains: ~180 Tauri command names mapped to REST routes.

§ 03

What I built

  • The full document flow: quote → invoice → delivery note → credit note, partial payments, client statements.
  • Multi-location stock with transfers, a per-location ledger and weighted-average cost.
  • Point of sale: sessions, split payments, refunds, receipt printing (WebUSB), offline sales.
  • Branded PDFs with embedded fonts and amounts written out in words.
  • Multi-tenant with roles, per-action permissions and two-factor authentication.
  • Encrypted backups, CSV and Excel import / export, GDPR export and deletion.
  • Subscriptions, trials, plan-based feature gating and a platform admin panel.

§ 04

Technical challenges

  • Algerian stamp duty, implemented from the law itself (Stamp Code, 2025 finance law) and checked against the ministry's official example: 35,000 DA → 525 DA. Only the cash part is taxed, recomputed on the server.
  • Money correctness: two audits led to decimal amounts, atomic invoice numbering (required in Algeria), idempotency keys and row locks on stock.
  • Arabic PDFs: the default font had no Arabic glyphs. I embedded IBM Plex Sans Arabic, with a test that checks fonts per language.
  • Offline: three independent mechanisms replaced by a single sync queue with per-item conflict resolution.
  • Tests as documentation: Playwright films the video guide in three languages, and twelve CI "barriers" check translation parity, no overflow at 390 px and dark-mode contrast.

§ 05

Stack

  • Next.js 16
  • React 19
  • TypeScript
  • PostgreSQL
  • Supabase
  • Prisma
  • TanStack Query
  • Zustand
  • Zod
  • React PDF
  • Vitest
  • Playwright
  • Sentry
  • Vercel
  • Tauri
  • Rust
The Probook dashboard: revenue, pending invoices, alerts and the module menu.
The probookapp.net home page in French: “Professional invoicing, simplified.”
The website, in French
The same home page in Arabic.
…and in Arabic

A product to build, a contract, or just a question? Write to me, I reply quickly.

Let's work together