People & workforcev4.1.1

Trainora

A training matrix that works out every expiry, with each person's record on a private link.

For teams whose training records face an auditor. Often replaces Skills Base, TalentLMS or iSpring Learn.

Single license $79 · Extended license $179 · paid once, yours for good

Try the live demoNo sign-up. The demo resets itself, so click anything.

What it does

The training matrix

Everyone down the side, every competency across the top, each cell colored by state. Click a cell to record a completion.

Expiry that computes itself

Set how long a competency stays valid, and the expiry comes from the date achieved. Nothing stores a flag that could go stale.

Never recorded, its own state

A missing record differs from a lapsed one and from one that does not apply. Three colors, because an auditor asks three questions.

Everyone sees their own record

Send each person a private link: what they hold and what runs out next. They send you a new certificate; you confirm it.

Staff sign their own record

Each person confirms their record is correct by typing their name. You see who signed, when, and whether anything changed since.

Bring your training history

Import past records from a spreadsheet. A dry run first says why any row would not come in. Expiry dates are worked out for you.

Evidence on the record

The certificate attaches to the completion it evidences, as a PDF or image. Each record also keeps the certificate number, and you can search it.

Signed off, not just attended

A supervisor records the level they saw, from aware to can train others, with their name.

Rules by role and location

A competency can apply by role, by location, or both.

Sessions and attendance

Run a session for a group, mark who attended, and every attendee gets their record.

The matrix in managers' inboxes

A weekly or monthly summary of what is in date, expiring, expired or missing.

Reminders and a calendar feed

A daily digest shows what is expiring. If you switch it on, each person due gets a note too. Expiries also appear in your calendar.

Also: a PDF of the whole matrix or one person's record, certificates issued through your own Certora, two-factor sign-in, an audit trail and dry-run restores.

Is it right for you?

What Trainora deliberately doesn’t do.

  • **It does not issue certificates itself** — it holds the evidence you were given, and sends a certificate to your own Certora only when you press the button on a record
  • **Not a learning platform** — no courses, no content, no quizzes, no e-learning, no SCORM
  • **Not a rules engine** — a competency applies to everyone, a team or role, a location, or that role at that location
  • **No login for the people in the register** — each person can have a private link to their own record, and send you a new certificate to confirm
  • **Changing a competency's validity does not rewrite records already on file**
  • **Single-tenant: one organization per installation**

What renting costs instead

Skills BaseFree $0 "free forever"; Teams $2.25 per person/month; Enterprise $4 per person/month. Priced per person on every paid tier, with the enterprise tier routed through a demo

1 month of Skills Base costs what Trainora costs once.

Read Oct 8, 2026 · source
TalentLMSCore $119/month billed yearly ($1,428/yr) or $149 monthly (1-40 users); Grow $229 yearly or $299 monthly (1-70); Pro $449 yearly or $579 monthly (1-100). With 'Flexible user limit' on, Pro is $599 yearly or $779 monthly, + $6 per additional user. A free plan exists

1 month of TalentLMS costs what Trainora costs once.

Read Sep 26, 2026 · source
iSpring LearnBusiness $6.91 USD per user/month at 100 users ($8,286.00 annual price); $4.46/user at 300; $3.97/user at 500

1 month of iSpring Learn costs what Trainora costs once.

Read Aug 22, 2026 · source

The full comparison: every rival, what each does better, and who should stay with them →

Replacing one of these? Skills Base alternative · TalentLMS alternative · iSpring Learn alternative

Release history

Own It 4.1Client installations and your other toolsOct 4, 2026

For Trainora, 4.1 makes two changes that every app gets. What’s new in 4.1 →

Own It 4.0It updates and backs itself upSep 29, 2026

For Trainora, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and… What’s new in 4.0 →

Own It 3.4The README in the download tells the truthSep 27, 2026

The README at the top of the download still said Trainora issues no certificates and that nobody sees their own record, both untrue since 3.2. What’s new in 3.4 →

Own It 3.3Your training history, kept and brought with youSep 27, 2026

3.3 is about the record you keep and the history you bring.

Own It 3.2The record reaches the person and the managerSep 26, 2026

3.2 took the training record beyond the grid.

Own It 3.1It writes to the people you serveAug 20, 2026

The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar…

What’s in the zip

The tree as the zip ships it — the working leftovers the packager deletes are not listed

  • .htaccess
  • API.md
  • Dockerfile
  • LICENSE.txt
  • QUICKSTART.txt
  • README.md
  • assets/
  • bin/
  • config.sample.php
  • controllers/
  • cron/
  • deploy/
  • index.php
  • install/
  • manifest.json
  • offline.html
  • router.php
  • src/
  • sw.js
  • tests/
  • views/
src/Matrix.php: a real module, the first 24 of 413 lines

Chosen as the largest module in src/ that is not one of the shared cores — this product's own logic, not a file every product carries.

<?php
/**
 * Matrix.php — the compliance-matrix engine, shared byte-identical by Trainora and Inspectora.
 *
 * CANONICAL COPY: catalog/tools/matrix-engine/Matrix.php
 * SHIPPED COPIES: 43-trainora/app/src/Matrix.php · 44-inspectora/app/src/Matrix.php
 * Both suites md5-compare their copy against the canonical one, so editing a single product's
 * copy turns BOTH suites red. That is deliberate: two codebases for one engine is the estate's
 * most expensive mistake, and this is the tripwire against making it by accident.
 *
 * WHAT THIS FILE KNOWS: a subject holds a requirement; holding it has a date and may expire;
 * a record may say the check failed, and a failure holds nothing; rounds are planned events that
 * produce outcomes; evidence is attached to a record.
 * WHAT THIS FILE DOES NOT KNOW: whether a subject is a person or a fire extinguisher. Every
 * user-facing word and every table name arrives from the product's own Domain class.
 *
 * Table names are injected, so they are the ONLY identifiers interpolated into SQL here. They
 * come from a hardcoded map in Domain (never from input) and are whitelisted again below before
 * they reach a query — see tableFor(). Everything else is a bound parameter.
 *
 * Dates are 'YYYY-MM-DD' strings throughout, compared lexically, which is only valid because
 * they are zero-padded ISO. Timestamps are UTC 'YYYY-MM-DD HH:MM:SS'.
 */
declare(strict_types=1);

Runs on: Web installer in about two minutes; plain PHP 8.1+ with MySQL/MariaDB (or SQLite for a trial), no Composer and no build step — Docker one-liner included. Tested on PHP 8.3. Or run it in Docker: the Dockerfile is in the zip.

Technical owners can install it with one line and their license key: curl -fsSL https://ownware.io/install.sh | sh -s -- trainora <your license key>

Nothing is obfuscated or encoded; what you read is what runs. Manual · API · the test run

Which license do I need?

It comes down to how many installations you need. Running your own business on one site is the Single license. A second domain of your own, or sites you build or run for other people, is the Extended license.

Single license$79
One (1) domain or subdomain · One business, running it on one site.
  • Install it on one domain or subdomain you own or operate
  • Change the source however you like for that installation
  • Run your own business on it commercially, client work included
  • Re-download the current build any time from your buyer portal
  • A second site, or an installation you hand to a client as theirs, needs the Extended license
  • No reselling, redistributing or sublicensing the source
  • Not for offering it to other people as a hosted service
Buy the Single license, $79
Extended license$179
Unlimited sites you own or operate, plus up to 10 client installations (white-label included) · Agencies, and anyone running it on more than one site.
  • Everything the Single license grants
  • Install it on as many domains as you own or operate — no cap on the number
  • Up to ten client installations, one per client project, handed over or hosted for each client; for more, buy another Extended license
  • White-label: remove or replace the product name and logo in the screens of client installations
  • Still no reselling or redistributing the source itself
  • Running it as a multi-tenant service others sign up for needs a SaaS agreement
Buy the Extended license, $179

Every download carries the full terms as LICENSE.txt. The complete wording is on the terms page.

After you buy

Updates

The app’s Updates page installs a new release with your license key, with the release’s signature checked and a backup taken first. Your download link always serves the current build. Download again any time from your order page or the buyer portal; there is no renewal fee.

Help

Email support for installation and for defects in the code as delivered: a person reads and answers every message. It does not cover custom development or server administration. What support covers

If it isn’t right

Refunds are handled by Lemon Squeezy as merchant of record, case by case. EU consumers keep the statutory 14-day right until delivery starts. Refund terms

If we disappear

It keeps running: your server, the full PHP source, no license check that can fail. If no stable release is published for 365 days, the domain limit lifts; after three such years your copy becomes MIT-licensed. The terms have the exact wording: continuity.

Questions

Does it issue certificates?
Not by itself. It records that training happened and holds the certificate you were given as evidence; with your own Certora connected, it sends a certificate there only when you press the button on a record.
Is it a learning platform?
No. No courses, no content, no quizzes, no e-learning, no SCORM. It records that training happened; it does not deliver it.
Can people log in and see their own record?
Not with an account. Each person can have a private link to their own record, and send you a new certificate to confirm. Staff who administer the register have accounts, roles and 2FA.
If I change how long a competency stays valid, do old records change?
No. Changing the validity period does not rewrite records already on file — a certificate does not become longer-lived because you changed a setting afterward.
How finely can I say who needs what?
A competency applies to everyone, a team or role, a location, or that role at that location. That is the whole model, deliberately — anything more expressive becomes a rules engine nobody can audit.
Does the price go up with the number of people in the matrix?
No. One payment for the license, whatever the headcount.
Is somebody expired on the day their certificate runs out?
No. The expiry day itself is still valid — treating it as expired would send somebody home a day early, every time.
How does it rank someone who has never held a competency?
Above someone whose certificate is merely expiring. The four states come back worst first — expired, never recorded, expiring, valid — because a competency nobody ever had is a bigger hole than one that lapses next month.
Does a template decide what things are called?
No. Competency names are yours; a template supplies a starting point and never fixes what you call them. The words on the screens — people, competencies, sessions — are the product's own.
Better together
Workforce Suite: Leavora, Rostera, Clockora, Trainora and Onboardora
Staff leave, shift rota, timesheets, onboarding and training records — the five workforce record-keeping tools, self-hosted.
5 tools for$249
$385 separatelySave $136

Covered in these guides

Also covered in: Who Owns Your Certificates? Self-Hosted Training Certificate Generation, Honestly Compared.

More about Trainora

Self-hosted training matrix: who has what, what has run out, and what runs out next — every expiry computed from the date it was achieved, never stored.

The problem it solves

Training records go stale in a way that is invisible until an auditor asks. The spreadsheet says "food hygiene — yes", and the certificate behind it expired fourteen months ago.

What you need is not a learning platform. It is one grid: everyone down the side, every competency across the top, and an honest color in each cell.

  • A spreadsheet where "has it" and "still valid" are the same column
  • Renewal dates that live in someone's calendar, or nobody's
  • An LMS priced per learner per month, bought to record training you deliver in a room

Every feature

  • The training matrix. Everyone down the side, every competency across the top, each cell colored valid / expiring / expired / never recorded — and hatched where a competency simply does not apply to that person. Click a cell to record a completion without leaving the grid.
  • Expiry that computes itself. You set how long a competency stays valid; the expiry comes from the date it was achieved. Nothing stores an is-expired flag that could go stale between the cron that should have run and the screen somebody is looking at.
  • Never recorded is its own state. A competency with no record is not the same as one that lapsed, and it is not the same as one that does not apply. Three different colors, because an auditor asks three different questions.
  • Evidence on the record. The certificate attaches to the completion it evidences. PDF or image, sniffed by magic bytes and re-checked by the controller that serves it.
  • Sessions and attendance. Run a session for a group, mark who attended, and every attendee gets their record — rather than typing the same completion fifteen times.
  • Paper for the inspector. Print the whole matrix, or one person's training record, as a PDF straight from the app. Two-factor sign-in, an audit trail and dry-run restores come with it.
  • Reminders and a calendar feed. A daily digest of what is expiring to you and, if you switch it on, a note to each person whose certificate is due — through your own mail server. Plus a read-only .ics URL so the expiries appear in Outlook, Google Calendar or Apple Calendar and keep themselves current.
  • One engine, proved twice. You name every competency in your own words. The same engine runs Inspectora for asset inspections, so the expiry logic is tested in two products.
  • Everyone sees their own record. Send each person a private link: what they hold, what runs out next, and a way to send you a new certificate. You confirm it; it is filed as the evidence.
  • Signed off, not just attended. A supervisor records the level they saw (aware, with supervision, competent, can train others) with their name.
  • Chefs at one site, drivers at another. A competency can apply by role, by location, or both.
  • The matrix in managers' inboxes. A weekly or monthly summary of what is in date, expiring, expired or missing.
  • Certificates through Certora. Connect your own Certora and issue a certificate from a record in one click.
  • Keep the certificate number. Each training record keeps the number the awarding body printed. Add it on the record, when staff send their certificate, or through the API, and find a record by searching for it.
  • Staff sign their own record. From their private link, each person confirms that their training record is correct by typing their name. You see who signed, when, and whether anything has changed since.
  • Bring your training history with you. Import past records from a spreadsheet: a dry run shows what would come in and why any row would not, then each row is recorded by the same rules as the grid, with expiry dates worked out for you.
  • Updates from inside the app. The Updates page installs a new release with your license key: Ownware's signature is checked, a backup is taken first, and the app puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. It never checks by itself.
  • Backups by themselves. Automatic backups, an optional copy to S3-compatible storage you own, and a weekly check that the latest backup reads back. The Health page names anything that needs attention.
  • Own It 4.0.1 — fixes and an up-to-date manual. For Trainora, 4.0.1 fixes an installer that had lost its styling, a rollback that a page opened during an update could stop and a command-line update that ended in an error after putting the previous version back. Its manual, FAQ and QUICKSTART now cover everything 4.0 added, including two Nginx rules that keep the data folder private. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
  • Own It 4.0.2 — the installer opens on every host. For Trainora, 4.0.2 fixes a fresh install on an Apache host: the one-page setup at /install/ looped back to itself and never opened, and now it opens. Your license covers it: press Check for updates on the Updates page, or download it from your order page.

Release notes in full

  • Own It 4.1: client installations and your other tools. For Trainora, 4.1 makes two changes that every app gets. An Extended license bought from October 4, 2026 covers up to ten client installations, one per client project: hand each one over to the client or host it for them, with the client's logo and colors from the app's branding settings. The API reference now shows how to connect Trainora to Zapier, Make or n8n, using its own webhooks and API key. Your license covers the update: press Check for updates on the Updates page, or download it from your order page.
  • Own It 4.0: it updates and backs itself up. For Trainora, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. A new install can start with a sample business and remove it in one click; backups run by themselves, with an optional offsite copy and a weekly check that the latest one reads back; and the Health page says whether the install is looking after itself.
  • Own It 3.4: the README in the download tells the truth. The README at the top of the download still said Trainora issues no certificates and that nobody sees their own record, both untrue since 3.2. It now matches the app's own README. No code changed.
  • Own It 3.3: your training history, kept and brought with you. 3.3 is about the record you keep and the history you bring. Each record keeps the certificate number the awarding body printed, each person can confirm their own record by typing their name, and past records come in from a spreadsheet after a dry run that says why any row would not.
  • Own It 3.2: the record reaches the person and the manager. 3.2 took the training record beyond the grid. Each person gets a private link to what they hold and what runs out next, and can send in a new certificate for you to confirm. Supervisors record the level they saw, a competency can apply by role and location, managers get the matrix as a weekly or monthly summary, and a record can issue a certificate through your own Certora.
  • Own It 3.1: it writes to the people you serve. The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar subscribes to, attachments filed where the paperwork belongs, and export presets other people's software imports. Each outbound feature ships switched off and runs on your own credentials; a failed send is recorded, and the action that triggered it stands. This app gained no new outbound path in 3.1 — its pass rewrote the honest-limitations list against the shipped code instead, which is the more useful change when the product was already complete.

Browse self-hosted: Workforce management software · School & training-provider software · Construction & building-trade software · Cleaning & facilities-management software · Driving-school software

Trainora$79 once
Demo Buy