nsite-clay

nsite-clay

Nsite, který se edituje sám. Jeden HTML soubor, který se upraví a znovu publikuje. Hostovaný na Nostru.

Nadpis publikované stránky se upravuje přímo v prohlížeči, otevřená nabídka bloků
Úprava publikované stránky. Nadpis je živý text, lištu kreslí runtime.

Co to je

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.

  1. 01 SNAPSHOT

    Stránka naklonuje vlastní DOM, uklidí ho a serializuje celý dokument.

  2. 02 BLOSSOM

    Ty bajty jdou na Blossom server jako blob adresovaný vlastní sha256.

  3. 03 MANIFEST

    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ě.

Popis pro Nostr geeky

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.

Celá integrace

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.

Úpravy

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ží.

Šablony jako appky

Š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.

Všech jedenáct šablon

Vyzkoušej si to s opravdovým klíčem

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.

Otevřít demo

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.

Nasaď si vlastní

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.

Celý návod na nasazení

Postavené pro agenty, protože web teď staví agenti

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.

llms-b536d55d.txt Šablony

Odkud se to servíruje

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.

Co to neumí

jen ke čtení

Přihlas se, ať můžeš stránku upravovat

Znovu ji publikuje jedině podpis vlastníka. Všichni ostatní dostanou stránku, na kterou se právě díváš.

Klíč zůstane v paměti téhle karty a nikam se nezapisuje, ale píšeš ho do stránky, kterou servíruje gateway. Vzdálený signer klíč nikdy nevydá.