Insights
Field notes from the SENAITE core team
Installation guides, instrument integration walk-throughs, monitoring case studies, product announcements. The writing here comes from the same people who write the code.
Featured
Start here
SENAITE LIMS vs commercial LIMS: what to know before choosing
Open source or proprietary: the four cost lines over ten years, who can change the system, what compliance really depends on, and when each option is the right one.
Read article →
What is SENAITE LIMS? A guide for laboratories evaluating it
What SENAITE does, what it does not do, what it runs on, and what a project looks like. Written by its core developers for labs choosing their next LIMS.
Read article →
Install SENAITE LIMS on a fresh Ubuntu 24.04 server
A server install of SENAITE 2.x on Ubuntu 24.04: Python 2.7 with pyenv, the senaite.starter buildout, a systemd service, nginx with TLS, and backups. With the decisions to make first and the mistakes we see most.
Read article →All posts
More from the team
-
October 17, 2026Result options: when a picklist beats a number
Present or absent, positive or negative, a colour on a scale. How SENAITE stores categorical results as numbers with a label, why that keeps reports, specifications and calculations working, and where manual entry punches a hole into it.
-
October 10, 2026Building a worksheet template that fills itself
A worksheet template fixes the tray layout, the QC positions and the services of a run. How SENAITE fills it, what it needs beforehand, and why slots sometimes stay empty.
-
October 3, 2026Worksheets in SENAITE: how the bench processes work
Samples arrive one at a time, instruments run in batches. How SENAITE worksheets collect analyses from many samples, carry the QC of a run, and where they trip people up.
-
September 26, 2026Sample partitions: one sample, many tests, one record
When one bottle has to become three. How SENAITE creates partitions, which analyses move where, how results flow back to the primary sample, and what to set up in a sample template.
-
September 19, 2026Analysis Specifications: turning numbers into decisions
A result is just a number until it is compared to a range. How SENAITE specifications define valid ranges and shoulders, where they come from on a sample, and why a later change does not rewrite old results.
-
September 12, 2026Analysis Profiles: the shortcut labs actually use
The same five tests on every drinking water sample. How Analysis Profiles bundle services, what they do and do not control, and the two behaviours that catch labs out.
-
September 5, 2026Anatomy of a sample: the basic SENAITE workflow
Registered, sample due, received, to be verified, verified, published. What each state means, what moves a sample on, and the ways back when a result turns out wrong.
-
August 29, 2026The SENAITE dashboard: what the counts and charts actually tell you
Status cards, quick actions and three statistics panels with timeline charts. What each number counts, who sees which part, and how to read the charts without misreading them.
-
August 22, 2026HealthWatch and ECC: catching the errors your server does not report
A flipped bit in memory does not crash SENAITE. It changes data, and on a server without ECC nothing reports it. What HealthWatch checks, and how to check your own server in two commands.
-
August 19, 2026Reports in SENAITE 2.7: your logo, your paper formats, no developer
senaite.impress gains a logo upload, custom paper formats and a fixed paper format per report template, all in the control panel. What each setting does, what to decide before you configure it, and what happens when one report of a batch fails.
-
August 15, 2026Reading SENAITE data with the JSON API: a first session
Where the endpoints are, why samples are called analysisrequest, how to filter on catalog indexes, and the three silent failures that cost integrators the most time.
-
August 12, 2026Spotlight in SENAITE 2.7: search syntax, command palette and client access
The rebuilt Spotlight search scopes by catalog with prefixes like s:, filters by workflow state with is:, runs commands after a slash and keeps lab-only catalogs away from client contacts. How to use it and how to configure it.
-
August 8, 2026Verification in SENAITE: self-verification, up to four levels, and the default that undermines them
How SENAITE decides who may verify a result, how to require up to four verifications globally or per service, and which multi-verification setting to change before you rely on it.
-
August 5, 2026Listings in SENAITE 2.7: saved filters, label chips and the column chooser
Column filters, saved filter presets, coloured sample labels and a searchable column chooser are coming to every SENAITE listing. How they work, where they are stored, and the limits to know before you rely on them.
-
August 1, 2026Uncertainties in SENAITE: how the ranges work and what they do not do
How SENAITE picks the uncertainty for a result, how it rounds result and uncertainty together, where it hides the uncertainty, and why it does not use it to judge a specification.
-
July 29, 2026senaite.storage in 2.7: retention rules, retrieval with a reason, and location stickers
Retention periods derived from analysis results, a visible warning before they run out, a required reason when a sample comes back out of storage, and Code128 stickers for shelves and boxes. How it works and what to decide before you switch it on.
-
July 25, 2026SENAITE calculations: from formula to result
How SENAITE turns a formula into a result: the bracket syntax, interim fields, dependencies that add themselves to the sample, the values you get on errors, and the pitfalls that catch new labs.
-
July 21, 2026End of the line: dispose and dispatch as optional workflows
SENAITE 2.7 adds a Sample Dispose workflow and makes Sample Dispatch optional. Both require a reason, both lock the analyses of the sample, and both can be undone with Restore.
-
July 21, 2026SENAITE and lab compliance: ISO 17025, 21 CFR Part 11, and what the software actually gives you
Where SENAITE supports ISO/IEC 17025 and 21 CFR Part 11 and where it does not. What the review history, the audit log, the role model and the workflow record today, which settings to check at go-live, and what a Part 11 lab has to add.
-
July 21, 2026SENAITE under the hood: Plone, Zope, ZODB, and why it matters
SENAITE is a laboratory layer on three long-lived open source projects. What Zope, ZODB and Plone each contribute, and what that means for backups, integrations, access control and the way you extend the system.
-
July 11, 2026Anatomy of a SENAITE Analysis Service
The Analysis Service defines one test your lab reports. What its fields do, which ones you cannot change lightly, and the decisions to make before you create the first one.
-
June 3, 2026senaite.astm 2.0: HL7 next to ASTM, and tools for commissioning
senaite.astm connects analysers to SENAITE over ASTM. Version 2.0 adds an HL7 v2 listener with the same envelope, a capture-only mode, a replay tool and a stats endpoint. What it does, what the SENAITE side needs, and how we commission an instrument with it.
-
April 15, 2026Why your SENAITE LIMS needs proactive monitoring
One truncated database record stopped the nightly pack of a SENAITE installation for months, and nobody noticed. What to watch on a SENAITE server, what HealthWatch checks, and four checks you can run yourself this week.
-
April 10, 2026SENAITY: what we built, what we learned, and what continues
SENAITY flagged unusual lab results before verification. The hosted service ends in October 2026; its ideas continue on-premise in SENAITE Data Lens.
-
September 15, 2024Provision SENAITE LIMS with demo data
A new SENAITE site is empty. The test dataset that ships with SENAITE fills it with clients, sample types, methods, instruments and analysis services. What it contains, how to load it, and what it overwrites.
-
August 25, 2024Run SENAITE LIMS in under 5 minutes with Docker
Pull the public SENAITE image, start one container, and create a SENAITE site on localhost. Which tag to use, how to keep your data, and where the evaluation setup stops.
Have a question we should answer here?
Tell us what you would like written up. If it is useful to your lab it is probably useful to the next one.