Back to selected work
Regulated labs · ISO 17025 / 13485 · In development

A multi-tenant LIMS for labs that the old vendors have outgrown.

Modern Django on PostgreSQL 16 with an audit trail wired into the schema, per-tenant AWS infrastructure deployed via OpenTofu, and a compliance posture built for ISO 17025 and 13485 from day one — not bolted on at audit time.

LIMS sample queue dashboard

illustrative product mockup · current build in active development

The problem

Lab software hasn't kept up with how modern labs actually run.

Most LIMS platforms in regulated packaging and medical-device testing are descended from Windows-only installs from the 2000s. They share a database across all customers, ship audit trails as an afterthought, and charge six figures per seat per year for a UI that hasn't changed since.

The labs we built this for needed something different: per-tenant infrastructure isolation, a real audit trail at the schema level, NetSuite integration that doesn't break with every update, and the ability to add a new method without filing a change request with a vendor.

The approach

Four architectural commitments.

Infrastructure-isolated multi-tenancy

No 'tenants' table at the app layer. Every customer gets their own VPC, RDS, KMS keys, and ECS services, declared in OpenTofu. The blast radius of any incident is exactly one customer.

Audit at the schema, not the view

PostgreSQL trigger-based audit infrastructure captures every mutation with user identity, justification, and signature chain. Reports are generated from the audit log, not reconstructed from it.

Citation-only standards content

ISO/ASTM standards are never copied into the database — only referenced by canonical citation. Keeps the system clear of redistribution issues and lets standards updates propagate cleanly.

Calm, modern UI over HTMX

Server-rendered Django templates with HTMX for partial updates and Alpine.js for transient UI state. No SPA bloat, no client-side state divergence, no broken back button.

The stack

Production-grade, no exotic dependencies.

Backend
  • Django 5.2 LTS
  • Python 3.12
  • PostgreSQL 16
  • Celery 5.4 (6 queues)
  • Redis 7.2 (BSD-safe)
Frontend
  • HTMX
  • Tailwind
  • Alpine.js (transient)
  • Server-rendered templates
Infrastructure
  • AWS per-tenant VPC
  • RDS · ECS · KMS
  • OpenTofu (IaC)
  • Docker · Compose v2
  • Gitleaks · pre-commit

Running a regulated lab on
software that fights you?

Tell us about your operation — methods, instruments, integrations, headcount. We'll come back with a candid read on whether this framework is a fit.

Start the conversation