Work↗06 — Featured↗B2B SaaS · CRM & Accounting

TargetDesk.

A multi-tenant back-office platform unifying CRM, call-center operations, and French GAAP-compliant accounting in one system.

Visit Live Project↗
CLIENT
TargetDesk
ROLE
Full-Stack Architect & DevOps Lead
YEAR
2026
DURATION
Jan 2026 - Apr 2026
STATUS
In Production
targetdesk-1
§01 — OVERVIEW
TargetDesk is a full back-office SaaS platform built for teams that need their CRM, call-center, and accounting to actually talk to each other instead of living in three disconnected tools. A single company can run client and supplier management, a live call-center with supervisor and manager dashboards, task and project tracking, and a complete French GAAP-compliant accounting suite — chart of accounts, journal entries, general ledger, trial balance, bank reconciliation, and invoicing — all under one roof, with every team's data fully isolated from every other tenant on the platform.
§02 — CHALLENGE

True Multi-Tenant Isolation, Not Just Filtered Views

Every client, invoice, and call record belongs to exactly one company on a shared platform. Data isolation had to be enforced at the request level itself, not left to individual queries to remember to filter correctly.

Accounting That Has to Be Exactly Right

Double-entry bookkeeping doesn't tolerate approximation. Building journal entries, a general ledger, trial balance, and bank reconciliation in-house — to French accounting standards — meant the underlying logic had to be correct by construction, not just correct in the common case.

Permissions Fine-Grained Enough for Real Teams

Different roles needed different slices of the same data — a rep managing their own clients, a team lead seeing their team's, an admin seeing everything. That meant permissions scoped three ways per action, consistently enforced across both the API and the interface.

§03 — THE BUILD
targetdesk-1
targetdesk-1
[ Image Placeholder ]
targetdesk-1
§04 — APPROACH
I built TargetDesk as a Laravel API and an Angular frontend designed together as one system, sharing the same permission model on both ends. Every authenticated request runs through company-scoping middleware that resolves the current tenant and applies it globally, so isolation is guaranteed at the framework level rather than relied upon per-query — with a clean bypass path for platform-level super-admin access. On top of that, I implemented a full accounting engine modeled on the French Plan Comptable Général: journal entries, general ledger, trial balance, and bank-transaction reconciliation, alongside supplier invoicing and a rule-based commission engine that calculates, splits, and audits commissions automatically. Access control runs on a permission system with dozens of module-level actions, each independently scopable to System, Team, or Personal — enforced identically by the API and by the Angular client, down to matching permission-string formats. The call-center module integrates with Ringover for live call and SMS history, feeding directly into complaint tracking and supervisor/manager reporting.
STACK
AngularLaravelMySQL
§05 — OUTCOMES
1 Platform
CRM, call-center, and accounting unified for multi-team, multi-tenant use
62
Granular permissions across 11 business modules, each scoped System / Team / Personal
French GAAP
In-house double-entry accounting suite: ledger, trial balance, bank reconciliation
Live
Real-time VoIP call-center integration powering daily operations
NEXT PROJECT
01 / 6
BarriereHilfe→

A secure, 3-tier accessibility compliance ecosystem delivering zero-dependency WCAG solutions at scale.