๐Ÿ”ฌ Open source ยท MIT licensed ยท Self-hostable

The lab inventory system
your lab actually fits into

Track samples, reagents and freezer boxes without paying per seat, waiting on a vendor, or bending your science to fit someone else's database.

No signup โ€” sign in with demo@biolims.dev / biolims-demo

The BioLIMS sample registry, showing samples with custom fields, storage locations and status
โœ“ No per-seat pricing โœ“ Your data, your server โœ“ No implementation project โœ“ REST API included
The problem

Most labs are stuck between two bad options

๐Ÿ“„ The spreadsheet everyone fears

It works right up until someone asks "where is that sample now?" or "which aliquots came from patient 014?" โ€” and nobody can answer without walking to a freezer and phoning a colleague.

๐Ÿข The platform that took a quarter

It answers those questions, but it charges per seat, keeps your data on someone else's terms, and models your science the way its vendor imagined it. Adding a field can mean a support ticket.

BioLIMS is the third option โ€” real sample tracking, and you own all of it.

Why BioLIMS

Built around how labs actually work

Three things that make this different from everything else you'll evaluate.

๐Ÿงฌ

You define what you track

Cell lines with passage numbers. Mouse colonies with cage IDs. Plasmids with backbone and resistance marker. Build the record type in your browser, pick your fields, done โ€” no schema migration, no developer, no ticket.

๐Ÿ”“

Your data, your server

MIT licensed. Run it on a spare machine in the lab or a cloud account you control. Add your whole team without watching a licence counter. Export everything whenever you want โ€” it's your data, in your Postgres database.

โšก

Running the same afternoon

There is no implementation project and no sales call. Sign up, name your lab, and starter record types and a freezer tree are already there. Most labs register real samples on day one.

What you can do

Everything you need to stop losing samples

๐Ÿ“ Find any sample, down to the well

Model your real storage โ€” site, room, freezer, shelf, rack, box. Place samples in specific positions and open a box to see exactly what's in it and what's free.

No more opening three freezers to find one tube.

  • Unlimited nesting depth
  • Visual grid for any box size
  • Full storage path on every record
A freezer box rendered as a grid with occupied and free wells

๐Ÿงช Design your own record types

Add fields of any type โ€” text, number, date, dropdown, multi-select, checkbox โ€” set units, mark them required, and reorder them. Each type gets its own ID series so a sample reads SMP-000142 and a reagent RGT-000007.

  • No code and no migration
  • Validated on every write, including imports
  • Starter types included, change them freely
The record type builder with custom fields

๐Ÿ•“ Answer "who changed this?" instantly

Every create, edit, move and delete is written to an append-only log with the person, the timestamp and exactly what changed โ€” viewable per record or across the whole lab.

  • Immutable history, never overwritten
  • Before-and-after values on every edit
  • Per-record timeline on the detail page
The audit log listing every change with who made it and when
๐Ÿงซ

Sample lineage

Aliquots and extractions stay linked to what they came from. Open a gDNA prep and see the blood draw it started as โ€” or open the draw and see everything derived from it.

๐Ÿ“ฆ

Inventory & low stock

Track quantities, lots and expiry dates. Set a minimum and low-stock reagents surface on the dashboard before an experiment stops.

๐Ÿ“ฅ

Bring your spreadsheet

Import a CSV and BioLIMS matches your columns to your fields, validating as it goes and telling you exactly which rows need attention. Export any registry back out.

Compare

How it stacks up

An honest look at the trade-offs, including where the others still win.

Spreadsheet Commercial LIMS BioLIMS
Cost per extra userFreePer-seat licenceFree
Time to get runningMinutesWeeks to monthsAn afternoon
Add a custom fieldAdd a columnOften a support ticketIn the browser
Where samples liveA text columnModelled properlyFreezer โ†’ box โ†’ well
Change historyNoneFull audit trailFull audit trail
Sample lineageManualYesYes
Who hosts your dataYouThe vendorYou
API accessNoneUsually a paid tierIncluded
Validation & compliance supportNoneMature offeringNot yet โ€” see roadmap
For computational teams

Everything the interface does, the API does too

Register samples from a notebook, look up storage, or pull a dataset for analysis. Per-lab API keys, an OpenAPI spec, and validation errors reported field by field so scripted imports tell you exactly what to fix.

  • REST API over records, types and locations
  • Query by display ID โ€” SMP-000142 works directly
  • Self-host with Docker in two commands
# Register a sample straight from your analysis script
import requests

requests.post(
    "https://your-lab.example.com/api/v1/entities",
    headers={"Authorization": f"Bearer {BIOLIMS_KEY}"},
    json={
        "type": "sample",
        "name": "PT-014 gDNA",
        "data": {
            "sample_type": "DNA",
            "concentration": 88.4,
        },
    },
)
Roadmap

Where the project is today

v0.1 โ€” the sample-tracking core is complete and working. It's young software: expect rough edges, and please report them.

Available now

Sample & inventory tracking

Custom record types, storage, lineage, audit trail, CSV, REST API.

Next

Electronic lab notebook

Experiment write-ups linked to the samples they used.

Next

Workflow automation

Multi-step protocols with task assignment and sample state.

Next

Instrument integrations

Turn plate reader, qPCR and sequencer output into structured records.

Next

Barcode & label printing

Scan a tube to pull it up; print freezer labels.

Next

Electronic signatures

Reviewed-and-approved sign-off on records.

See it with your own samples

Click through the demo in two minutes, or have it running on your own machine in about the same time. If something doesn't match how your lab works, that's worth an issue.

The demo is a shared public sandbox โ€” expect other people's edits, and don't put anything real in it.