Nsite, který se edituje sám. Jeden HTML soubor, který se upraví a znovu publikuje. Hostovaný na Nostru.
Otevřeš stránku, přihlásíš se svým klíčem a píšeš do ní. Dokument si serializuje vlastní DOM, pošle ty bajty na Blossom server jako jeden blob adresovaný obsahem a znovu publikuje NIP-5A manifest nsite, který na něj ukazuje. Kdokoli další si stránku načte, dostane obyčejný statický dokument, ve kterém už tvoje změny jsou.
V té smyčce není žádný server, který bys musel provozovat. Manifest drží relaye, bajty drží Blossom servery, zbytek udělá prohlížeč. Vlastnictví je pár klíčů, takže kdo smí tuhle stránku upravovat, není řádek v cizí databázi.
Stránka naklonuje vlastní DOM, uklidí ho a serializuje celý dokument.
Ty bajty jdou na Blossom server jako blob adresovaný vlastní sha256.
Nahraditelný nsite event přiřadí cestě ten hash. Publikovat ho znamená nasadit.
Stránka, kterou právě čteš, je jeden z těch dokumentů. Běží na nsite-clay a ukládá se úplně stejně.
Nsite je webhosting. Ne dlouhé texty, ale celé HTML soubory. Nic víc nsite není.
nsite-clay k tomu přidává jedinou věc: stránka se upravuje a aktualizuje sama, takže CMS sedí uvnitř statického HTML, ne za ním.
Měníš DOM. Klikej po stránce a uprav, co chceš, nebo si otevři v prohlížeči
inspektor DOM a změň to tam. Stránce je to jedno. Nová verze se nahraje na tvoje Blossom
servery a znovu se publikuje jeden nahraditelný event s tím, na jaký Blossom hash teď
/ nebo /about-us ukazuje. Vykreslí to kterákoli nsite
gateway.
Jeden atribut říká, kdo soubor vlastní, druhý označí, kam se dá psát, a jeden script tag udělá zbytek.
<!DOCTYPE html> <html lang="en" autosave nc:owner="npub1…"> <head><meta charset="utf-8"><title>Notes</title></head> <body> <h1 editable="single-line">My notes</h1> <div editable> <p>Type anything here.</p> </div> <script src="/nsite-clay-c3ac5914.js"></script> </body> </html>
Ulož a otevři soubor v textovém editoru: tvoje slova jsou v HTML. Databází je DOM, takže stav nemá kde jinde bydlet.
Označ kontejner jako editable a pro vlastníka se z něj stane
formátovaný text, pro všechny ostatní obyčejné značky.
Enter začne nový odstavec. Když označíš text, vyjede plovoucí lišta a jejím prvním ovládacím prvkem je nabídka bloků: odstavec, nadpis 1 až 3, citace, blok kódu.
Klávesové zkratky fungují, jak čekáš, a napsat # ,
- nebo > na začátek řádku funguje taky.
Do souboru se dostane značkování, jaké mohl napsat člověk ručně. Lišta ani smetí, které prohlížeče při editačních příkazech produkují, se nikdy neuloží.
Šablona není barevné schéma. Každá je malá aplikace, která je shodou okolností jediný soubor: čte z relayů, má ovládání a v několika může návštěvník i něco udělat. Stránka může vypadat jakkoli, protože pod ní není nic, co by určovalo, jak má stránka vypadat.
Zeď fotek
Stovky obrázků z jednoho npubu na plátně, které taháš a přibližuješ. Tři rozložení, přepínatelná.
Seznam odkazů
Linktree, který upravuješ přímo na stránce. Přidej odkaz, smaž jiný, nastav zap adresu.
Log kanálu
Stránka, do které pořád přidáváš řádky. Přihlas se a dole se objeví okno na psaní.
Pozvánka na akci
Detaily dost velké, aby se daly přečíst přes celou místnost, a kalendářový soubor ke stažení.
Textový soubor
Sedmdesát devět znaků na řádek, monospace a ASCII čáry, ve tvaru starých zinů.
Nízká váha
Systémové fonty a ze všeho ostatního co nejmíň. Změří a vypíše vlastní přenosovou váhu.
Pod jednorázovým klíčem je publikovaný živý dokument a ten klíč je veřejný schválně. Otevři ho, klikni na Přihlásit se, vlož nsec a uprav stránku. Tvoje uložení přepíše skutečný dokument pro všechny.
Tu stránku může přepsat kdokoli, takže co tam najdeš, jsou zbytky po ostatních. Nikdy nevkládej klíč, na kterém ti záleží, do stránky, kterou jsi nepublikoval sám.
První verzi publikuje CLI. Pak už se stránka ukládá sama a vracíš se sem jen kvůli změnám, které děláš mimo prohlížeč.
# vytvoř kostru webu a vygeneruj k němu klíč npx nsite-clay init mysite # publikuj ho npx nsite-clay deploy mysite --sec=nsec1… # nebo nech klíč mimo tenhle stroj a podepisuj přes bunker npx nsite-clay deploy mysite --bunker="bunker://…"
Tvůj web přistane na https://<npub>.nsite.lol/.
Pojmenované weby dostanou vlastní subdoménu, každé uložení založí trvalou verzi s vlastní
URL a stejný web servíruje kterákoli NIP-5A gateway, takže na jednu můžeš namířit CNAME
a mít vlastní doménu.
Soubory se publikují na cestách, které nesou hash obsahu, a každý dokument sleduje vlastní manifest a načte se znovu, jakmile se objeví novější verze. Nikdo nemusí vědět, co je to tvrdý refresh.
Většinu stránek z tohohle nepostaví člověk ručně, ale agent, a tak k projektu patří instrukce právě pro něj. Nasměruj svého kódovacího agenta na ten soubor a řekni si o stránku, jakou chceš.
Je v nich, na co se tě má zeptat, jak vybrat a předělat šablonu, jak dostat
stránku na web přes vzdálený signer místo holého klíče a těch pár věcí, co se obvykle
pokazí. Odkazují na dokumentaci, místo aby ji opisovaly, a v projektu
postaveném nad nsite-clay fungují jako AGENTS.md.
Gateway přeloží tvůj manifest a naservíruje soubory. Všechny čtou stejné eventy, takže tvůj web na žádné z nich nevisí. Když jedna nejede, vyměň hostname.
npm run devnet rozjede
jednu na notebooku.