Oddbean new post about | logout
 Brainstorming!

Objectives: Reduce dependency on traditional domains across my Nostr web app.

Why: Traditional domains are centralized and controlled by governments. Not ideal for freedom tools/apps.

Idea: Create a lightweight static website called "NostrHub," which will serve as a quick-access hub to all my other Nostr web apps.

Plan:

1. First Step: Host the lightweight NostrHub website on Nostr relays and IPFS, making it accessible through TOR, IPFS gateways, Freenet, and other decentralized storage or P2P access options.


2. Second Step (my favorite, though a bit unorthodox): Convert the NostrHub website/code into an offline bundle that can be shared as a zip file. When unzipped and clicked, this bundle will open the NostrHub page in your browser, running locally without relying on domains or web hosting—essentially self-hosted.

The offline website bundle also addresses a more fundamental issue with the web ecosystem. Unlike traditional websites, offline bundled sites can’t be unilaterally changed or modified by the developer, making them trustless and truly giving users full control over the website, its code, and any updates.

This approach will eliminate the single point of failure posed by centralized domains, make all apps easily accessible, and provide users with a more private way to access them.

This is a rough outline. Suggestions for improvements are welcome!
nostr:nevent1qqszsed8nghq3u57vx0zpwsvs3ujvjw2f3vxgjnnq2cw83l26tp7acqpzamhxue69uhhyetvv9ujuvrcvd5xzapwvdhk6tczyrr0wpmlz6va2r8e92t990ltl7kqtlrgg2u7uwgs38v4nw9dt4y06qcyqqqqqqggkx6kh 
 Awww I haven’t seen you in a long time gorgeous friend 💜🫂 
 https://media.tenor.com/QLgdpqG9mjcAAAAM/hello-hi.gif  
 Awww I have missed you 🫂🫂 
 Likewise, 

I took a break to concentrate on my PhD and other objectives. Fortunately, everything worked out well. 

By the way, I'll always be a part of Nostr.  🤍 
 Wonderful to hear 💜🫂 
 Use #pubky for decentralized domains 
 So far

Achieved: Unified dashboard for all my Nostr apps.

In progress: Reducing domain dependency.

Added: Quick shortcuts for Nostr backups, publishing notes & blogs, and accessing zPay.live purchases.
https://i.imgur.com/IM1pndI.jpeg
nostr:nevent1qqs8lfvqnz54qw86akqmgczappdurlcqmvsf7sd8d8usvzcgncssxegpzpmhxue69uhk2tnwdaejumr0dshsygxx7urh795e65x0j25k22l7hlavqh7xss4eacu3pzwetxu26h2gl5psgqqqqqqssm96qf 
 When Semisol says all websites are insecure and can be backdoored by a developer unilaterally at will, he's absolutely correct.

But it doesn’t have to be this way.

Here's how I'm addressing it with NostrHub:

By bundling my website with its code and turning it into a single executable file, when the file is clicked, it opens the NostrHub page in your browser.

The key part: instead of using my server, hosting, and domain, it uses your NostrHub bundle and runs locally on your device, no server or setup required. Think of it like self-hosting on steroids.

Once you download the website bundle, the developer has no further control over it. The user truly has full control, which is extremely rare on the web. Even if the developer is compromised, no backdoors can be added.

To update, you simply download the updated bundle and replace the previous one.

This approach may not sound flashy, but it genuinely addresses a fundamental issue with the web as a whole.
nostr:nevent1qqsdqe0235323pyjj9pkngvsaeevrpazfctqk03jjnttxme5agf98esprpmhxue69uhhyetvv9ujuumfv9khxarj9e3k7mf0qgsvdac80utfn4gvly4fv54la0l6cp0udpptnm3ezzyajkdc44w53lgrqsqqqqqpca83xd 
 See if this can help you

https://github.com/nostr-protocol/nips/pull/1538 
 Thanks for sharing, Just 10 minutes ago I was going through you relay web hosting repo. 

Nostr relay will be primary hosting for my NostrHub public website with PKDNS. It's very lightweigh. 
 Ohh yeah, there is this one as well: 

https://github.com/nostr-protocol/nips/pull/811 
 Now that I’m thinking more about it, it might be straightforward to enable a version directly & transparently using relay. I should do some testing. 🤔 
 No telling what these devs are building ne..
nostr:nevent1qqsdqe0235323pyjj9pkngvsaeevrpazfctqk03jjnttxme5agf98espz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygxx7urh795e65x0j25k22l7hlavqh7xss4eacu3pzwetxu26h2gl5psgqqqqqqs22vcu9 
 The first prototype of zap.store ever featured something like this, @hzrd149 packaged the nostrudel PWA into a .pwa file that we assigned the application/pwa+zip mime type to (offline bundle). This "pwa" would then be deployed and served locally. Plan to put that back! Maybe we can work on an interoperable standard? 
 Sure, is there any functional implementation of this standard at the moment? 

Btw nostrudel is a highly capable PWA client, it could really play a very significant role in the Nostr web app ecosystem, especially micro-apps.  
 Agreed!

Implementation not really. But it's so simple, pretty much what I described is what we got working 
 Check out https://nsite.lol/ and https://github.com/nostr-protocol/nips/pull/1538

Its exactly what you described in step 1 
 Thanks, I think this might be it. I tested some other Nostr web hostings, & this one is by far the best. It's super straightforward & effectively mitigates the fundamental issues.

Interestingly, I was open to all types of options, even outside Nostr. I tested dozens so far, and Nostr is literally the best option I've found. We really might be onto something.

Demo: https://nostr.download/d025c2ee6291ccf396c8d01582b6d700c41e20b53552d06b7fefb86aae6c81d7 
 Glad it works :)
If your interested in helping we have a small telegram group for fixing bugs and new ideas https://t.me/+Ho8zFD8QId01MmMx 
 Thank you for the invitation. I'd love to! 🤍 
 This week on #nostr.

@Vitor Pamplona wrote a piece on relay management
nostr:naddr1qvzqqqr4gupzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqythwumn8ghj7anfw3hhytnwdaehgu339e3k7mf0qy88wumn8ghj7mn0wvhxcmmv9uqqkun9d3shjttnv4682uqzpvyjz

#AlbyGo 1.7 dropped
nostr:nevent1qvzqqqqqqypzpaxm2fctmxgmz7l2reksxh69mm3e9yvu99r5hwkpqdpdyg78fcxsqyghwumn8ghj7mn0wd68ytnhd9hx2tcpr9mhxue69uhhqmr9vfhkuefwdehhxarjxyhxxmmd9uqzqv8fjxrxy05khyxfwsz7t4lc07ywg99wyc9en8mvc3w2v0dhtknkag7kgv

#Yakihonne introduces smart widgets with 2.0. @Derek Ross instantly jumped on it.
nostr:nevent1qvzqqqqqqypzq0mhp4ja8fmy48zuk5p6uy37vtk8tx9dqdwcxm32sy8nsaa8gkeyqqsv74nqt80s36u8h7n00zyfx9efuqmg7240qq40fyfk8n6tu4x7ksgvdf4yg

@The Nostr Review got some stats for us.
nostr:nevent1qvzqqqqqqypzqavxnnavfdqnx0p29h8vxtstenmds0wy5n0etkm6fs7sjdmgrxv8qqs2lx9kv9cf5fzg4ct3u86mr5k8fcucw75u0p08z45hkfxp3q39uxcv0fjpx

#YakiHonne 2.0 is live
nostr:nevent1qvzqqqqqqypzqgycd7urua6ajmgc3jjunhcseekkz0swkljhdzs0pvftxlx6cgdnqqstx408pfrueymeufqu3mk59g0q6ruxtykxr4dkg24zau2pm9ywexsrd045t

@utxo the webmaster 🧑‍💻 announces Haven 1.0
nostr:nevent1qvzqqqqqqypzpckv7l8jqspl8u4y54dn9rcduwlrs4v2040nxce0m2h0cunvrj8tqqsqqqp4xn5xl46mfvr6sj6ddjpmgdwt2yln5rwge85za0urckn7kqqwgmcup

@iefan 🕊️ with a NostrHub update
nostr:nevent1qvzqqqqqqypzp3hhqal3dxw4pnuj49jjhl4lltq9l35y9w0w8yggnk2ehzk46j8aqqsdqe0235323pyjj9pkngvsaeevrpazfctqk03jjnttxme5agf98es6mv8fc

#BTCPay 2.0 has landed
nostr:nevent1qvzqqqqqqypzpffk4v0h70qpxwa2m005w2c6c7k5ka6w6sevrxyjssvn2unc309qqqswn7777tyj706e2zh7jg0puls67tydarugyr48yrjmaudhtw5jrdgu7prcn

@walker goes all-in on #zapstream with the Bitcoin Podcast.
nostr:nevent1qvzqqqqqqypzq7q8pqp9qg6mz0y0keaw4u6q7fxr8pzmy3cw0hw8asx5psqxsfj9qqsvmcu7zqlhwzajdv880lr20g6ykdueqy83vrgytjfqchyx5923jlcm9rk8g

@Alex Gleason 🐍🚬 is working on a new r3emote signer and nsec bunker
nostr:nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqqs86zudq30r63ty7tft8vna94ufu85jtjsw5cafntwkdla8dzs67vqafy655

Multi-million dollar NGO planning to use GrapheneOS
nostr:nevent1qvzqqqqqqypzpwvda4xw463q0yxmev7rzsqxjgqf6dx8lxf8c2rgxk5ekayp5hpzqqsdmjfz308yxqgywjvjns3lrh0n8dkkx5xwq5ha92xz65kuzhqyfeqfrv25d

@MeA_BzZz talking about using nostr in Surianame
nostr:nevent1qvzqqqqqqypzq0nwqu6m3ghfd7x0vclkf5zth882jvd0e3tl2snuxkaksk0ftj9zqqs2axt6z58ta763qr8s2rrw2k2ymfzw8ayqqt5p5sy3pyux73trvpgzd0zpd

Amazing drone show in Lugano.
nostr:nevent1qvzqqqqqqypzpeq5d5whlvhh7mnt83ueat4t5mm5gm7j3n82ykfxw89j8xsn7nvpqqsrwqtud25q64hme6r9ng7kzknutqcg8peg2rs7l55gyglpd4hawyghh057q

#Coracle security issue, reported fixed by @hodlbod 
nostr:nevent1qvzqqqqqqypzp978pfzrv6n9xhq5tvenl9e74pklmskh4xw6vxxyp3j8qkke3cezqqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcd2e3vt

@YEGHRO pushed an update to his inactive user tool. It now has bling!
nostr:nevent1qvzqqqqqqypzp7ppz7dat453ccd5x43nvwy2mtwresfsfay7wudg0sudulk5l5pzqqsdqlps3mw94507ttgajfghcfdhawvryuvez2jztnjwwx8575eyt7cn5hh8w

@fiatjaf merged something into #nostter
nostr:nevent1qvzqqqqqqypzqwlsccluhy6xxsr6l9a9uhhxf75g85g8a709tprjcn4e42h053vaqqsqqq84rcushjlhfkpg8xfve83fqpdccly46nmgncl4xncjkx73m3q8nwa8h

/thread, Happy Weekend 
 Nostr Report lite version ??? 
 something like that. 
 something like that. 
 Nice write up 
 thank you!