TheraDesk — A Regulated, AI-Native Healthtech SaaS, Built Solo

A multi-tenant platform for psychology practices across France and Switzerland — from clinical-workflow design to production Azure infrastructure, delivered end-to-end by a single architect.

TheraDesk system architecture: Vue 3 frontends, .NET 10 Clean Architecture API, Azure Functions, Azure OpenAI, SQL Server, Stripe, Microsoft Graph, secured by Entra External ID and Key Vault.
  • Role

    Founder & Principal Architect

  • Sector

    Healthtech · mental-health practice management

  • Markets

    France (EUR) & Switzerland (CHF)

  • Platform

    Multi-tenant SaaS

  • Status

    In production

  • Built by

    Solo — architecture, backend, frontend, infrastructure, billing, compliance

Overview

TheraDesk is a multi-tenant SaaS that helps psychology practitioners run their practice end-to-end — patient management, scheduling, virtual consultations, AI-assisted session recall, and automated well-being scoring.

It was designed and built from zero as a single-architect engagement: backend, two frontends, cloud infrastructure, billing, and compliance posture, taken from concept to production across two regulated European markets.

The Challenge

Small practices juggle scheduling, video consultations, notes, billing, and follow-up across disconnected tools, under strict expectations for patient data. The platform had to:

  • Handle sensitive clinical data with a defensible compliance posture
  • Operate across two countries with different currencies, languages, and pricing
  • Add genuine AI value to the clinical workflow rather than novelty
  • Remain maintainable and reliable as a long-lived production system run by one person

What was built

  • Clean Architecture .NET 10 backend (API, Application, Domain, Infrastructure, Azure Functions) using CQRS, the command pattern, and TPT polymorphism, with EF Core Code-First on SQL Server and a strict fail-fast error policy.
  • AI-assisted clinical workflow on Azure OpenAI: session transcription via Whereby video, semantic recall across consultation history, automated well-being scoring, and a continuously-available patient artifacts system with atomic swaps during regeneration.
  • Two Vue 3 + TypeScript frontends (practitioner app and patient portal) sharing one API, design system, and i18n layer; MSAL authentication; country-aware formatting; zero-warning build gates.
  • Entire Azure platform as code with Bicep: App Service, Azure Functions and Durable Functions (Flex Consumption), App Configuration, Key Vault, SQL, and Entra External ID.
  • Multi-country commerce on Stripe: localized catalogs, plan/price modeling, and activation-code-based subscription provisioning across EUR and CHF.
  • Unified communications: Microsoft Graph email (Scriban templates, scheduled async send), in-app messaging, and a notification dispatch system.
  • Engineering standards for longevity: Gitflow, xUnit + Testcontainers integration tests, CQRS and polymorphism standards, and GitHub Actions CI/CD to multiple Azure environments.
Azure resource group provisioned with Bicep: App Service, Functions, Azure SQL, Key Vault, App Configuration, Entra External ID, deployed via GitHub Actions.
Anonymized TheraDesk practitioner app: schedule view with redacted patient data, AI session recall, and well-being score.

Delivered end-to-end, solo

Architecture, backend, two frontends, cloud infrastructure, billing, and compliance — taken from concept to production across two regulated European markets by a single architect.

2/2

Countries & currencies — France (EUR) & Switzerland (CHF)

2+1

Frontends & one API — practitioner app + patient portal

1

Architect — built end-to-end, solo

.NET 10

Azure-native — production infrastructure as code

This engagement is the clearest demonstration of what Imhauser Technologies brings to client work: taking a regulated, AI-driven product from architecture to production without a team — the same senior judgment applied to AI integration, private-LLM, and Azure engagements for organizations that handle sensitive data.