Kihagyás

No Solution - Justin: Browser & InPub

Dátum: 2026-04-01 Helyszín: BTC++ konferencia, reptér Résztvevők: Martin, Justin


Áttekintés

Rövid, "airport special" epizód Justin-nel, aki először gyűlölte a Nostr-t, de most aktívan épít rá. A beszélgetés kitér az audio calling app fejlesztéseire, WebRTC kritikára, és egy 3 nap alatt vibecodingoló böngészőre.


Fő Témák

1. Justin Nostr Története

Justin "hater" módon közeledett a technológiákhoz:

  • Bitcoin: 5-6 év gyűlölet, aztán megértette
  • Lightning: Sosem fog működni (még mindig ezt gondolja)
  • Nostr: 4 év gyűlölet, de most már épít rá

"I'm not an early adopter. I'm the early majority on the adoption curve."

Az előző cohort-ban csak a Zig framework-öt építette, Nostr-ra semmit. Most három dolgot is épített.


2. Audio Calling App - Három Verzió

Verzió 1: CLI + Iroh P2P

  • Iroh: Peer-to-peer framework
  • Nostr signaling: Npub-eket használ hívásokhoz
  • Működés: CLI-ből hívható npub
  • Demo: Kiment a szobából, CLI-ből felhívta Paul Miller-t, a telefonja csengett

Verzió 2: InPub

URL: inpub.brcell.app

  • 2D pixel art szoba: "Video game level" stílus
  • Két szoba: Ha ugyanabban vagy, hallod egymást
  • Mock MLQ: Media over QUIC web standard (WebRTC alternatíva)
  • Nostr auth: Npub-alapú azonosítás
  • Következő lépés: Positional audio (a hang forrása a térben mozog)

Verzió 3: Ava

URL: justinmoon.com/s/ava

  • Group audio calling: Többszemélyes hanghívás
  • White Noise encryption: NN encryption WASM-re kompilálva
  • Forward/backward secrecy: Biztonságos beszélgetések
  • Mock MLQ: Gyors adatátvitel

3. WebRTC Kritika

WebRTC problémák:

  • Google monopol: Google Meet-et web szabványként adták ki
  • Túl bonyolult: Safari és Firefox csak a Google kódját tudják használni
  • Nincs konfigurálhatóság: Vagy Google Meet, vagy semmi

Megoldás: Mock MLQ (Media over QUIC)

  • Egyszerűbb web standard
  • Élő stream, audio hívások, stb.
  • Jelenleg centralizált mesh (egy cég futtatja)
  • Lehetőség: Nostr-stílusú mesh, zap-pal való fizetés

4. Böngésző Építés - 3 Nap

Justin 3 nap alatt vibecodingolt egy böngészőt:

Komponensek: - Blitz: CSS/HTML renderer (Rust, Firefox servo alapú) - QuickJS: Egyszerű JavaScript motor - React counter demo: Működik!

Motiváció: - A web haldoklik (Google blokkolja ad-blockereket) - DNS/CA centralizáció megszüntetése - SQLite, TypeScript futtatás böngészőben

"I vibe coded a browser in 3 days that can run a React counter."


5. DNS Nélküli Böngészés

Két megközelítés a cohort-ban:

Justin megközelítése: 1. Nostr event-tel claim-elni a neveket (pl. "dirgg") 2. Nincs domain, csak név 3. Nincs egyediség - ütközések web of trust-tel oldhatók fel 4. Opcionális TLS kulcsok az announcement-ben → HTTPS self-signed certificate-tel

Probléma: Nem egyértelmű, hogy biztonságos-e. De:

"URLs are already dead. People use social handles everywhere. Graffiti artists don't put URLs, they put @handles."


6. Andreas Kling és a Ladybird Browser

Andreas Kling inspiráció:

  • Volt Safari/WebKit mérnök
  • 12 lépéses program a drogfüggőséghez → OS építésre váltott
  • Ladybird browser: Nulláról épített böngésző
  • Kanonikus tudás: "Nem lehet új böngészőt építeni" → De ő megtette

7. Positional Audio Vízió

A VR Chat pozícionált audio-ja inspirálta:

  • Egy nagy terem: Előadás, utána csoportos beszélgetések
  • Sarkok: Külön beszélgetések, a háttérhalkabb
  • Killer feature: Nem egy 50 fős zsúfolt szoba, hanem természetes csoportosulás

Twitter Spaces / Clubhouse probléma: - Mindenkinek ugyanaz a hangerő - A leghangosabb ember beszél - Nincsenek privát sarokbeszélgetések


8. Mosaic Protocol

Justin kísérletezett az Amethyst replacement-tel:

  • Mosaic: Új protokoll ötlet
  • Két nap implementáció Zig-ben
  • Végül elvetette: Nem valószínű, hogy ez a cél

9. Web vs Nostr Sebesség

Probléma: A Nostr lassú (JSON, relays)

Megoldási irányok: - Mock MLQ bináris átvitelhez - Blossom blob-okhoz (ne JSON-ba encode-olják) - Local relay minden eszközön (Citrine stb.)

"It's kind of nice that Nostr isn't blazingly fast - it created Blossom instead of bloating relays with encoded JSON."


Idézetek

"I'm not an early adopter. I'm the early majority."

"The web is dead. I don't go to websites anymore."

"WebRTC is so complicated that Safari and Firefox just shipped Google's code."

"We shouldn't build for the mass market. We should build for the nerds and the power users."

"URLs are already dead. People just use social handles."


Technikai Részletek

Mock MLQ Architektúra

[Client] ←→ [Mock Server/Mesh] ←→ [Client]
              (Binary relay)
  • Jelenleg: egy cég futtatja a mesh-t
  • Jövő: Nostr mesh, zap-alapú fizetéssel

Nostr DNS Lookup

User claims: "dirgg" (Nostr event)
↓
Browser queries: Who claimed "dirgg"?
↓
Results: npub1..., npub2... (conflicts)
↓
Resolution: Web of trust or authority

InPub Room System

[Room A]        [Room B]
  ├─ User 1      ├─ User 3
  ├─ User 2      └─ User 4
  └─ Audio: same room = hear each other

Linkek és Említések

  • InPub: inpub.brcell.app
  • Ava: justinmoon.com/s/ava
  • Iroh: P2P framework
  • Mock MLQ: Media over QUIC web standard
  • Blitz: CSS/HTML renderer (Dioxus UI framework)
  • QuickJS: Lightweight JavaScript engine
  • Ladybird: Andreas Kling browser project
  • White Noise: NN encryption protocol
  • Mosaic: Amethyst replacement idea (abandoned)

Hangulat

Ez egy gyors, reptéri beszélgetés volt - kb. 22 perc. Martin majdnem lekéste a járatát, de sikerült befejezni a felvételt. A "poor man's podcast" stílus jegyében zaj, reptéri háttérzaj.


Következő Lépések

  1. InPub positional audio implementálása
  2. Böngésző fejlesztése - React appok futtatása
  3. Mock MLQ Nostr mesh - Decentralizált binary relay
  4. DNS replacement finomítása
  5. Local relay minden client-ben
Vissza a tetejére