SAMOURAÏ COOP
Start a project

Case study · Engineering

Visio

Free video meetings — guests join without an account.

A four-person team call on Visio
A team call on visio.samourai.app.

Client

Samouraï Coop — our own product

Crew

Engineering

Scope

Deployment · Theme · Landing & legal pages

Stack

La Suite Meet · LiveKit · Clerk OIDC · Docker

01

The ask

A video call should not cost the guest an account.

Visio is for anyone who lands on the link: a free video meeting that starts from a URL, with no account to create and nothing to install. The coop needed it for its own calls first — a film crew and an engineering studio spend their weeks in meetings with clients, contributors and each other — and there was no reason to keep a tool that works for us closed to anyone else. So the ask was two things at once: a meeting room the coop controls, and one a stranger can walk into.

02

The why

The tools we used asked every guest for an account, kept the data and answered to a US provider.

Before Visio the coop’s calls ran on Google Meet and Zoom. They work, and that is not the objection. Each asks every guest for an account, keeps the call’s data on infrastructure we do not control, and answers to a provider under US law. For a cooperative that builds and promotes open-source culture, the meeting room is part of the stack, and a rented room in the middle of the stack is a position on who owns the conversation. Visio is the same conviction that built Greffon — an organisation should own its pipeline — applied to the call itself.

03

The constraint

Self-host the real thing, run no fork, and say plainly where the exception is.

Three constraints shaped the build. Self-host a maintained application rather than write one: Visio is La Suite Meet, the open-source video-conferencing tool built by DINUM, the French State’s digital agency, under the MIT licence, running on a server in Paris. Run no fork: every difference between our instance and upstream lives in configuration, a runtime stylesheet and a static landing page, so upstream’s improvements reach our users with no build pipeline and no upgrade debt. And be honest about the exception: accounts sign in through Clerk, the SSO the coop’s products share, and Clerk is a US company — which is why a guest’s browser never contacts it, and why the privacy page says so instead of hiding it.

04

How we built it

Configuration, a stylesheet and a landing page — and gates that prove each deploy is right.

The instance runs on Docker: La Suite Meet, LiveKit for the media, Postgres and Redis, pinned to the versions the repository names, with Clerk as the OpenID Connect provider. A room materialises from any URL, so nobody needs an account to open one; an account buys a persistent room its owner administers. The coop’s theme is injected at runtime through Meet’s own custom-stylesheet hook, the landing page is served from the same origin, and our own legal pages replace the upstream notices, which describe a service for French administrations. Several settings in this stack fail silently — a wrong variable name yields a healthy instance doing the wrong thing — so the repository carries preflight gates that check the deployed configuration, the public surface and the upstream contract on every version bump.

05

What we shipped

Live at visio.samourai.app: a room from any link, free, with nothing loaded from a third party.

visio.samourai.app is live. A visitor lands on our page and one click opens a working room; a guest joins from the link with no account and nothing to install; a signed-in member keeps Meet’s own home to create instant or scheduled rooms. The page loads nothing from a third party — gated on every deploy, not promised — and a room created without an account is never stored. Recording, transcription and telephony are not in this version, deliberately: the first version had to be the part that works. A membership for people who want owned, persistent rooms is coming; it is not on sale yet, and this page will not price it before it exists.

06

What happened

It carries the coop’s own calls. How many other people’s, we have not measured.

The coop moved its own calls onto it — the call this page opens on is one of them — and the link has been public since the product entered the catalogue. What we do not have is a usage figure we would stand behind. When there is one it will come from a measurement, not an estimate, and it will sit here with its source.

Project team

  • zôÖmaDeployment, theme & product
  • Louis BiancherinInfrastructure & hosting
Next case studyWeb3 Summit