Compare
Vidra and PeerTube, compared.
Vidra is a clean-room implementation — not a fork, not PeerTube-API-compatible. Here is where the two differ, where PeerTube is ahead, and what moving an instance across involves.
The short answer
PeerTube is the mature choice: years in production, a plugin system, a large ecosystem of instances, and in-player peer-to-peer that shares playback bandwidth between viewers. Vidra has none of those — it has no plugin system, and it does not do browser peer-to-peer, which is a published decision rather than a roadmap item.
What Vidra offers instead is the operator's path: one command installs it, vidra doctor runs 26 checks and names the failure, and deploy, rollback, backup and restore are scripted, with published sizing that carries prices. It also speaks ATProto: viewers can sign in with Bluesky or any PDS, and public videos can cross-post to Bluesky — PeerTube federates over ActivityPub only. Vidra also ships direct messages — including an end-to-end encrypted mode with disappearing timers — where PeerTube has no user-to-user messaging at all.
If you run PeerTube happily, keep running it. If operations are the pain, or your audience lives on Bluesky, Vidra was built for exactly that — and a one-way importer moves an existing instance across.
Use PeerTube if
- Your audience is on phones. PeerTube has official iOS and Android apps. Vidra has a web app you can install as a PWA, and no native client.
- You depend on a plugin or a theme. PeerTube's index carries 180 plugins and 54 themes. Vidra has no plugin system, so anything it does not ship, it does not do.
- You want a production record. PeerTube is at 8.2.4 with years of public instances behind it. No instance of Vidra outside the author's is known to be running it. That gap is real and no amount of test coverage substitutes for it.
Side by side
The differences that decide it.
| PeerTube | Vidra | |
|---|---|---|
| Lineage | The established ActivityPub video platform; current stable v8.2.4 (August 2026). | A clean-room implementation, v0.6.0 — not a fork, and not PeerTube-API-compatible. |
| Federation | ActivityPub (as of 8.2.4, August 2026). | ActivityPub federation, enabled per instance; once on, every channel federates by default and can opt out. |
| Bluesky | No ATProto support as of v8.2.4. | Viewers sign in with Bluesky or any ATProto PDS; opt-in cross-posting of public videos. Outbound only — no inbound path. |
| Direct messages | None as of v8.2.4 (August 2026) — the closest surface is the moderation thread on an abuse report. | One-to-one messages, with an opt-in end-to-end encrypted mode — Olm in the browser, so the server stores only ciphertext; not independently audited — and disappearing timers, 30 seconds to 90 days, on encrypted conversations. |
| In-player P2P | Built in, on by default in both the web app and the embed: playback shares bandwidth between viewers over WebRTC, and a viewer can turn it off. | None, and not planned: Vidra decided against browser peer-to-peer so that watching a video never exposes a viewer's IP address to other viewers, and published the reasoning. |
| Uploads and storage | Uploads and transcodes work on local disk; with remote storage configured, files move to S3 after processing. | Object-storage-native: upload chunks stream straight to the storage backend and never touch the server's local disk. A server dying mid-upload loses nothing. |
| Operations | The documented Docker path: three curl commands for the compose file, the env file and an nginx template; five placeholders hand-edited in .env; the first TLS certificate generated by hand with certbot, renewed by a container after that; and the initial root password read out of the container logs. | One command in; vidra doctor runs 26 checks and names the failure; deploy, rollback, backup and restore are scripted. |
| Growing past one box | Remote runners take five job types off the main server: VOD transcoding, studio transcoding, live transcoding, automatic transcription and storyboard generation. | The same image splits into api and worker roles. Replicas hold leases and elect leaders — soak-tested at two replicas: 406 of 406 deliveries with zero duplicates, and 423 deliveries with 17 duplicates once the safeguards were removed on purpose, so the harness is known to catch it. A CDN with purge is wired in. Multi-CDN steering, studio DRM and multi-region are the published roadmap, not the release. |
| What it costs to run | They publish hardware requirements — 1 vCore and 1.5 GB at minimum, 4 vCore and 4 GB for around a thousand concurrent viewers, 8 vCore and 8 GB with transcoding on the same machine. They publish no price. | Two published profiles with prices — $56/mo (4 vCPU, 8 GB) and $168/mo (8 vCPU, 16 GB on dedicated cores) — and a calculator that shows its arithmetic, block storage and transfer allowance included. |
| Native mobile apps | Official iOS and Android apps from Framasoft, on the App Store, Google Play and F-Droid. | None. The web app is installable as a PWA; there is no native client and none is on the roadmap. |
| Plugins and themes | A plugin and theme system, with 180 plugins and 54 themes in PeerTube's own index as of 30 August 2026. | No plugin system. What ships in the release is what the instance does. |
| Mirroring another instance | Server redundancy: opt into caching videos from platforms you follow, and let them cache yours, by strategy in production.yaml. | No equivalent. Public media carries its CIDs in the API so anyone can pin a copy on IPFS — a different mechanism, and not a promise that anyone will. |
| Managed PostgreSQL | Supported: point the instance at an external or managed PostgreSQL in production.yaml. | Not supported at launch. Vidra's search service pins its pool at 10 connections with no environment override, so there is no way to size it against a managed plan's connection cap. |
| Moving an instance | Home ground — nothing to move. | A one-way importer reads a PeerTube database and media store read-only and maps users, channels, videos, comments, playlists and follows. Nothing exports back. |
| Licence | AGPL v3. | AGPL v3 — the same licence. No difference to invent here. |
Lineage
- PeerTube
- The established ActivityPub video platform; current stable v8.2.4 (August 2026).
- Vidra
- A clean-room implementation, v0.6.0 — not a fork, and not PeerTube-API-compatible.
Federation
- PeerTube
- ActivityPub (as of 8.2.4, August 2026).
- Vidra
- ActivityPub federation, enabled per instance; once on, every channel federates by default and can opt out.
Bluesky
- PeerTube
- No ATProto support as of v8.2.4.
- Vidra
- Viewers sign in with Bluesky or any ATProto PDS; opt-in cross-posting of public videos. Outbound only — no inbound path.
Direct messages
- PeerTube
- None as of v8.2.4 (August 2026) — the closest surface is the moderation thread on an abuse report.
- Vidra
- One-to-one messages, with an opt-in end-to-end encrypted mode — Olm in the browser, so the server stores only ciphertext; not independently audited — and disappearing timers, 30 seconds to 90 days, on encrypted conversations.
In-player P2P
- PeerTube
- Built in, on by default in both the web app and the embed: playback shares bandwidth between viewers over WebRTC, and a viewer can turn it off.
- Vidra
- None, and not planned: Vidra decided against browser peer-to-peer so that watching a video never exposes a viewer's IP address to other viewers, and published the reasoning.
Uploads and storage
- PeerTube
- Uploads and transcodes work on local disk; with remote storage configured, files move to S3 after processing.
- Vidra
- Object-storage-native: upload chunks stream straight to the storage backend and never touch the server's local disk. A server dying mid-upload loses nothing.
Operations
- PeerTube
- The documented Docker path: three curl commands for the compose file, the env file and an nginx template; five placeholders hand-edited in .env; the first TLS certificate generated by hand with certbot, renewed by a container after that; and the initial root password read out of the container logs.
- Vidra
- One command in; vidra doctor runs 26 checks and names the failure; deploy, rollback, backup and restore are scripted.
Growing past one box
- PeerTube
- Remote runners take five job types off the main server: VOD transcoding, studio transcoding, live transcoding, automatic transcription and storyboard generation.
- Vidra
- The same image splits into api and worker roles. Replicas hold leases and elect leaders — soak-tested at two replicas: 406 of 406 deliveries with zero duplicates, and 423 deliveries with 17 duplicates once the safeguards were removed on purpose, so the harness is known to catch it. A CDN with purge is wired in. Multi-CDN steering, studio DRM and multi-region are the published roadmap, not the release.
What it costs to run
- PeerTube
- They publish hardware requirements — 1 vCore and 1.5 GB at minimum, 4 vCore and 4 GB for around a thousand concurrent viewers, 8 vCore and 8 GB with transcoding on the same machine. They publish no price.
- Vidra
- Two published profiles with prices — $56/mo (4 vCPU, 8 GB) and $168/mo (8 vCPU, 16 GB on dedicated cores) — and a calculator that shows its arithmetic, block storage and transfer allowance included.
Native mobile apps
- PeerTube
- Official iOS and Android apps from Framasoft, on the App Store, Google Play and F-Droid.
- Vidra
- None. The web app is installable as a PWA; there is no native client and none is on the roadmap.
Plugins and themes
- PeerTube
- A plugin and theme system, with 180 plugins and 54 themes in PeerTube's own index as of 30 August 2026.
- Vidra
- No plugin system. What ships in the release is what the instance does.
Mirroring another instance
- PeerTube
- Server redundancy: opt into caching videos from platforms you follow, and let them cache yours, by strategy in production.yaml.
- Vidra
- No equivalent. Public media carries its CIDs in the API so anyone can pin a copy on IPFS — a different mechanism, and not a promise that anyone will.
Managed PostgreSQL
- PeerTube
- Supported: point the instance at an external or managed PostgreSQL in production.yaml.
- Vidra
- Not supported at launch. Vidra's search service pins its pool at 10 connections with no environment override, so there is no way to size it against a managed plan's connection cap.
Moving an instance
- PeerTube
- Home ground — nothing to move.
- Vidra
- A one-way importer reads a PeerTube database and media store read-only and maps users, channels, videos, comments, playlists and follows. Nothing exports back.
Licence
- PeerTube
- AGPL v3.
- Vidra
- AGPL v3 — the same licence. No difference to invent here.
PeerTube column checked on 30 August 2026 against PeerTube's own documentation, repository and package index, at v8.2.4 — released 4 August 2026, and the current stable. 8.3.0-rc.1 has been tagged since 25 August 2026; when it goes stable this column gets another pass.
Migrating
One way, read-only at the source.
- Stand up the Vidra instance first, on the sizing your catalogue needs — the importer needs somewhere to land.
- Point the importer at your PeerTube database and media store. It reads the source read-only; the run is idempotent and resumable, and --dry-run shows the plan first.
- It maps users, channels, videos, thumbnails, chapters, comments, ratings, playlists and follows — original publication dates and view counts included.
- Cut over when it is done. The importer is one-way: nothing writes back to PeerTube, so your source instance stays untouched until you retire it.