Alle projekter

Voidspace

Private rum til chat, opkald og filer. Del en kode, ingen skal have en konto.

Type
Webapp
Status
I brug
År
2026
Links
Et Voidspace-rum: tre personer retter en fejl sammen, med en kodeblok og en delt PDF

Voidspace er et privat rum til at arbejde sammen. Start et rum, del koden på seks tegn eller linket, og alle er med fra deres egen browser: chat med Markdown og farvelagt kode, send filer, lav en afstemning, start et lyd- eller videoopkald, eller del skærm. Ingen opretter en konto, og intet bliver gemt på en server. Når den sidste går, er rummet væk.

Peer to peer, uden min egen backend

Siden er statiske filer. Browserne finder hinanden gennem en offentlig PeerJS-signalserver og taler derefter direkte over WebRTC i et fuldt mesh, op til otte personer og fire kameraer. Et TURN-relæ (ExpressTURN) bærer kun trafikken, når to enheder ikke kan nå hinanden direkte. Beskeder, filer og opkald rører aldrig noget, jeg kører.

Uden en server flytter de svære dele ind i browserne. Værten er bare den, der kom først: når de går, regner hver browser selv den samme nye vært ud, og den overtager rummets offentlige adresse, så nye stadig kan komme ind. Fjernelser, gøre tavs og låsning af rummet tæller kun, når de kommer fra den, alle er enige om er vært.

Kryptering, du kan tjekke

WebRTC er krypteret undervejs, men signalserveren sætter forbindelsen op, så i teorien kunne den sidde i midten. Voidspace lægger sit eget lag ovenpå: hvert par af personer udleder en nøgle med ECDH, hver besked forsegles med AES-GCM, og alle kan sammenligne en kort sikkerhedskode med hvem som helst i rummet. Passer koderne, lytter ingen med. Adgangskoder til rum tjekkes med en udfordring, så selve adgangskoden aldrig sendes over nettet.

Bygget til at føles som en app

Det kan installeres som en PWA, følger systemets lyse eller mørke tema og taler dansk og engelsk. På en telefon er rummet én bjælke og en beskedliste, som de beskedapps folk allerede kender. Skrivefeltet bliver over tastaturet, og listen følger nye beskeder, medmindre du har scrollet op for at læse.