Meetnix

The platform

A meeting product, and the record it leaves behind.

Two halves. The first is an ordinary, good video conferencing tool — the kind a company can standardise on. The second is what makes it worth standardising on: an archive that knows who said what, because it never had to work it out.

01 — In the call

Nobody adopts a recording strategy. They adopt a meeting tool.

Meetnix has to be the tool people reach for at 09:59, or the archive never fills up. So the call itself is unremarkable, on purpose — it opens in a browser, it works on a bad hotel network, and there is nothing to install.

Browser-native, up to 50

WebRTC through an SFU, simulcast with per-viewer layer selection, so one person on a train does not degrade the room. No plugin, no desktop app, no "download our client to join".

Screen share as its own track

Shared screens are captured separately at full resolution, not squeezed into a grid tile — so the recording of the demo is actually watchable afterwards.

Live captions

Streaming transcription in the call, per speaker, from the same worker that produces the archive transcript. On your GPU, not somebody's API.

Lobby and host controls

Waiting room, lock the room, mute, remove, promote a co-host, and a hand to raise. Room membership can be a group in your directory rather than a list somebody maintains.

Chat, reactions, breakouts

In-call chat that lands in the transcript with the same attribution as speech, emoji reactions that do not interrupt, and breakout rooms that record like any other room.

Dial-in and dial-out

A SIP bridge for the person on a motorway. They get their own track and their own transcript lines — a phone caller is not a second-class participant in the record.

Live translation

Captions in a second language while the call is running. Because every speaker arrives on a separate stream, the translator is never asked to untangle two people first.

Calendar integration

CalDAV, Google Calendar and Exchange. A room link in the invite, one click to join, and the meeting title carried into the manifest so the archive is searchable by what it was called.

Degrades honestly

Devices are turned on after you join, never before — a refused permission prompt or a camera another program is holding cannot keep you out of the call. You arrive as a listener and fix it from inside.

02 — Recording

The decision that is made at the bottom of the stack.

The server subscribes to each participant's audio and video separately and writes one file per track. There is no compositing step and no re-encode: the streams land in a container as they arrive, and beside them goes a manifest naming the account your identity provider authenticated.

  • Recording is a property of the room, not a button. It starts because the room started. Every client shows an indicator derived from the server's own grant, so a room cannot be recorded without it lighting up.
  • The recorder is not a participant. It is a subscribe-only process the server spawns, not a bot that joins with a camera off and a name like "Notetaker". It cannot speak, and it cannot be invited somewhere it was not granted.
  • Two devices, one person. Join from a laptop and a phone and both tracks carry the same principal. The manifest knows they are one human; the files know they are two microphones.
  • Signed and hashed. Each track's SHA-256 goes in the manifest and the manifest is signed by the instance key — which is the difference between a recording and evidence.
  • Erasure that leaves a mark. Deleting one participant's tracks for a GDPR request removes the media and records the removal in the manifest, so the archive never quietly pretends somebody was not there.
call.acme.com/archive/product-sync
Product sync 14 Aug 2026 · 32 min
Tracks7 files · 232 MB
Alex Rivera 3 tracks mic · cam · phone-mic
Sam Okonkwo 3 tracks mic · cam · screen
Priya Raman 1 track mic · dialled in

Retention: video 30 d · audio 2 y · transcript kept. Signature verified.

Download all Export transcript Legal hold

03 — Transcription

No diarisation step, because nothing was ever mixed.

The transcriber is handed one person's audio at a time. It never has to decide how many people were in the room, so the accuracy floor for eight people is the same as for two — and a cross-talking pair, which is where every diarisation model breaks, is just two clean files.

  • On hardware you nominate. Usually a machine with a GPU, often shared between several deployments, each with its own return address.
  • Exports that other tools accept. JSON, WebVTT, SRT, Markdown minutes, and an EDL for whoever is cutting the clip.
  • Summaries are optional and off by default. Turn them on and the text goes to the model provider you configure — never the audio, never the video. Point it at a model on your own hardware and nothing leaves at all.
transcript.json per speaker
[
  { "t": 1284.2, "principal": "8f2c1a4e",
    "speaker": "Alex Rivera",
    "text": "…lead with the bandwidth saving" },

  { "t": 1291.8, "principal": "3b71d0c9",
    "speaker": "Sam Okonkwo",
    "text": "Even for the fifty-seat deals?" },

  // Overlapping speech. Two files, two lines,
  // no cluster to get wrong.
  { "t": 1292.1, "principal": "8f2c1a4e",
    "speaker": "Alex Rivera",
    "text": "Especially for those." }
]

05 — Administration

Built for the person who has to answer for it.

SSO and provisioning

OIDC and SAML, SCIM for joiners and leavers, directory groups mapped to rooms. No second user database, and no account that outlives someone's last day.

Retention policy

Per room or per team. Video prunes early because it is the expensive part and rarely the useful part; audio, transcript and manifest stay as long as policy says. Free-space pressure prunes video first rather than failing a recording.

Legal hold

Freeze a room, a date range or one person's tracks. Held material ignores retention until the hold is lifted, and both the hold and the lift are audit events.

Audit log

Append-only, covering downloads, playback, search, exports, policy changes and holds. Shipped to your SIEM in the format it already parses.

Multi-tenancy

One deployment, several organisations, storage and identity kept apart. What a hosting partner or a group IT function needs before they can consolidate.

Operable

Prometheus metrics, OpenTelemetry traces, a Grafana dashboard in the repository, structured logs, and a diagnostics page that tells a user why their camera did not start.

06 — Sealed rooms

The one meeting we cannot record, and will not pretend to.

A sealed room is end-to-end encrypted. The SFU forwards packets it cannot read, keys are exchanged between the browsers, and the recorder is not started — because a server that could record it could read it, and any product that offers you both is telling you one of them is not true.

Sealed rooms are for the conversation that should not exist afterwards: the incident bridge, the personnel discussion, the call with counsel. Everything else records, and says so.

End-to-end encryption and server-side recording are mutually exclusive. Meetnix makes you pick per room, in the open, and shows which one you picked to everybody who joins. The indicator is derived from the server's grant, not from a flag in the client — so it cannot say "encrypted" while something upstairs is writing files.

Run the whole thing for nothing.

Every feature on this page is in the AGPL build. The paid tiers add a licence, scale and a phone number — not the product.