Building OpenLIMS: An Open-Source LIMS for Modern Labs
Labs generate a lot of important data: samples, results, inventory changes, instrument outputs, workflow updates, and audit events. But many small and mid-sized labs still rely on spreadsheets, manual tracking, or systems that are expensive and difficult to customize.
That is why I started building OpenLIMS, an open-source Laboratory Information Management System focused on sample tracking, inventory management, custom fields, audit trails, and instrument data workflows.
My goal is to build a practical, developer-friendly, and lab-friendly LIMS that can be shaped with feedback from people who understand real lab operations.
Why I started OpenLIMS
In my previous work, I built and supported internal scientific software, APIs, automation scripts, and data tools for lab and bioinformatics workflows.
One thing that stood out to me was how much operational work happens around the actual science.
Labs need to answer questions like:
- Where is this sample?
- What status is it in?
- Who updated it?
- What instrument generated this result?
- What changed, and when?
- Can we track custom metadata without changing code?
- Can we import data from instruments automatically?
These are not just software questions. They are workflow, traceability, and data integrity questions.
Many commercial LIMS platforms solve parts of this problem, but they can be expensive, difficult to configure, or too heavy for smaller teams. I wanted to explore what a lightweight, open-source, modern LIMS could look like.
That became OpenLIMS.
What OpenLIMS is
OpenLIMS is an open-source web application for managing lab operations.
It is currently built with:
- Django / Django REST Framework for the backend
- React for the frontend
- PostgreSQL for the database
- Redis and Celery for background processing
- Docker for local development and deployment
- GitHub Actions for CI checks
The project is still evolving, but the foundation is already in place. OpenLIMS currently supports core pieces of a LIMS, including samples, inventory locations, containers, audit events, custom fields, and early instrument import workflows.
What OpenLIMS supports today
Sample tracking
OpenLIMS supports creating and managing samples through the backend API and frontend. The goal is to make it easier to track sample metadata, status, location, and related results in one system.
Inventory and containers
Labs need to know where physical materials are stored. OpenLIMS includes support for locations and containers so samples and lab materials can be connected to physical storage.
Audit events
A LIMS should not only store the current state of a record. It should also show what happened over time.
OpenLIMS includes an event system for tracking important actions, such as sample creation, container creation, status updates, and imports. This is an important foundation for traceability and future compliance-focused workflows.
Custom fields
Every lab tracks different information.
One lab may need tube numbers. Another may need organism type, assay type, storage condition, patient cohort, concentration, lot number, or instrument run ID.
OpenLIMS includes configurable custom fields so labs can define metadata without changing application code. This is one of the most important parts of making the system flexible across different lab types.
Instrument import workflows
Another major goal is to make it easier to bring instrument data into the system.
OpenLIMS has early support for instrument ingestion workflows, with the goal of importing structured results from instruments such as sequencers, endotoxin readers, plate readers, and other lab equipment.
This is an area where I would especially like feedback from people who work with real instruments and lab data exports.
What I am working on next
OpenLIMS already has the foundation for sample tracking, inventory, custom fields, audit events, and instrument imports.
The next layer is production-readiness.
Get Edu Lemuss’s stories in your inbox
Join Medium for free to get updates from this writer.
Some of the features I am working on or planning include:
- Authentication and role-based access control
- Stronger permissions for different user roles
- More complete audit trails
- Configurable lab workflows
- Better dashboard views
- Instrument-specific import profiles
- Result attachments and file uploads
- Notifications
- Barcode support
- More tests for core workflows
- Better documentation and screenshots
- Easier deployment on AWS or other cloud platforms
- Security, logging, monitoring, backups, and deployment hardening
The long-term goal is to make OpenLIMS easy to run locally, easy to deploy, and easy to customize for different lab environments.
Why open source?
I wanted OpenLIMS to be open source because lab software should be easier to inspect, extend, and adapt.
Every lab is different. A research lab, clinical lab, genomics lab, manufacturing lab, and academic lab may all have different workflows. Instead of building a closed system around one narrow process, I want OpenLIMS to become a flexible foundation that others can build on.
Open source also makes it easier to get feedback early from developers, scientists, lab operations teams, and people who have worked with LIMS before.
That feedback is extremely valuable because the hardest part of building lab software is not just writing code. It is understanding the real workflows.
What I am looking for feedback on
I am looking for feedback from anyone with experience in LIMS, lab operations, scientific software, bioinformatics, QA, regulated environments, or lab automation.
Some questions I am thinking about:
- What features would make this useful for a small lab?
- What sample tracking workflows should be supported first?
- What instrument integrations would be most useful?
- How should configurable workflows work?
- How should custom fields be designed?
- What audit trail features are required in real lab environments?
- What should the dashboard show?
- What would make OpenLIMS easier to deploy?
- What would make it easier for non-technical lab staff to use?
- What features would make this useful for biotech, academic, research, or testing labs?
I am especially interested in practical examples: how samples move through a lab, how results are reviewed, how instruments export files, how teams handle exceptions, and where spreadsheets are still being used today.
Who OpenLIMS is for
OpenLIMS may be useful or interesting to:
- Lab operations teams
- Research labs
- Biotech startups
- Bioinformatics engineers
- Scientific software developers
- QA and compliance-minded engineers
- Developers interested in Django, React, and lab automation
- Anyone who has worked with LIMS and has ideas for improvement
Even if you are not a developer, your workflow feedback would be valuable. Real-world lab input is what will make the project better.
How to help
The biggest thing I need right now is feedback.
You can help by:
- Reviewing the project
- Suggesting features
- Sharing real-world lab workflow examples
- Opening GitHub issues
- Contributing code
- Improving documentation
- Testing the setup
- Recommending instrument import formats to support
OpenLIMS is still growing, and this is the best time to shape what it becomes.
Final thoughts
Building OpenLIMS has been a great way to bring together backend engineering, frontend development, lab operations, automation, audit trails, and data integrity.
My hope is that OpenLIMS becomes more than a personal project. I want it to grow into a useful open-source foundation for labs that need flexible software without starting from scratch.
If you work in this space, have used a LIMS before, or have ideas for features that would make OpenLIMS more useful, I would really appreciate your feedback.
GitHub: https://github.com/Mokey2002/OpenLIMS
OpenLIMS: is an open-source, self-hosted Laboratory Information Management System for small labs that need sample tracking, inventory, audit trails, custom fields, and project workflows without expensive enterprise LIMS setup.





