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¶
- 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¶
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¶
- InPub positional audio implementálása
- Böngésző fejlesztése - React appok futtatása
- Mock MLQ Nostr mesh - Decentralizált binary relay
- DNS replacement finomítása
- Local relay minden client-ben