Oddbean new post about | logout
 Great questions!

These nostr-sites are nostr events of kind 30512 https://nostr.band/?q=travel+kind%3A30512 - we just don't have an app to showcase them yet.

Themes are nostr events too of kind 30514 https://nostr.band/?q=ruby+kind%3A30514 - there will be a marketplace for them, imagine admin posting "please customize XYZ in my theme" and some developer adjusting it and publishing the update on nostr and admin applying it in 2 clicks.

Theme assets (templates, js, css etc) are on blossom servers, addressed by hashes by the themes, if some server dies files can be discovered through nostr on other server (no code for that yet). 

The engine core is https://github.com/nostrband/libnostrsite - it can run on the client or on the server. We run it in three places: on the server to pre-render the sites we host, in the browser tab for the current self-hosted version, and in the service worker after the first page load. Our server does nothing after the first page load, all rendering happens by service worker talking to relays and blossom servers, all sites are PWAs that work offline, rendering nostr events cached in the browser's database.

We don't have a self-hosted version with server-side rendering, but that one's coming too. Current client-side rendered self-hosted code can be hosted on github pages - first page load takes a while, and you don't have nice pre-rendered meta tags, but aside from that it's identical, and sites don't depend on our infrastructure.

The nip-512 that we've drafted for nostr sites is meant to make "nostr site" description portable across the engines, so that you could switch from npub.pro engine to another implementation (Oracolo hopefully maybe), without having all your links or site structure broken.

To summarize: npub.pro sites are as much nostr as they could possibly be, our hosting and management app are just a convenience.