A custom ERP that took a dental laboratory off paper.
For CeramDent, a dental laboratory, I designed and built a dedicated ERP from the first requirements to production. It replaced paper and a mix of separate software with one system built for the lab, and it is live and used every day.
- 1system instead of paper and several separate tools
- 12backend services on .NET 10
- 4web applications
- 3mobile apps for iOS and Android
The lab's internal workflow is confidential, so this page covers what I built and how it is engineered, not how the lab works.
The starting point
Before the project, the lab ran on paper and on several programs that didn't talk to each other. The goal was one dedicated system, built around the lab instead of forcing the lab to fit a generic product.
What I delivered
- The whole lifecycle: requirements analysis, architecture, development, testing and deployment to production.
- Four web applications for the lab and the people it works with, plus three mobile apps for iOS and Android.
- Real-time updates across web and mobile, so the right person sees a change as it happens.
- Role-based access, so each user sees only what their role allows.
- Separate development, staging and production environments, so changes are tested before they reach the lab.
How it's engineered
The backend is 12 services on .NET 10, built with Clean Architecture, Domain-Driven Design and CQRS (MediatR). What that means for the business:
- Nothing gets lost between parts of the system. Services talk through RabbitMQ and MassTransit with the Transactional Outbox pattern, so an event is only sent once the data behind it is saved.
- One area can change without breaking the others. Each service owns its own PostgreSQL 18 database.
- Security is built in, not bolted on. A YARP API Gateway with ES256 JWT authentication and policy-based authorization, and secrets kept in HashiCorp Vault.
- Problems are found fast. Distributed tracing with OpenTelemetry and Jaeger, structured logs in Seq, and automated test suites.
The web apps are Next.js 16 with TypeScript, MUI, Zustand and React Query. The mobile apps are React Native with Expo and TypeScript. Both get real-time notifications through SignalR. Everything runs in Docker Compose, deployed through GitHub Actions.
The outcome
The lab now runs on one system made for it. Paper and the separate programs are gone, and the lab's staff and partners work in the same place, on the web or on their phones.
Running your business on paper and spreadsheets?
I build dedicated systems that replace paper, spreadsheets and disconnected tools. Tell me how your business works today, and I'll tell you what a custom system would look like.