{"id":"2a060c7d30d572dbb8c5ac1445c57e3c211f57ffedfe06b2c3de385b1478838f","pubkey":"0d1353c3bf4abd6316406b706dac75a42eafb4de0e40b6772c3f1dd373502051","created_at":1766408120,"kind":30817,"tags":[["d","kind-30080-static-websites"],["title","Kind 30080 - Static Websites"],["client","nostrhub.io"]],"content":"# Experimental Kind 30080 for static web hosting\n\nHost a static website on Nostr (HTML, CSS, JS, images)\n\nKey points:\n- Replaceable addressable event, only the newest file is saved\n- Content must be the Data URI of the HTML/image/CSS/JS file (must be base64-encoded and include the mime type)\n- Content may be any length, but relays generally limit content to 64 KB\n- The d tag must be the file name\n- Other tags are optional, e.g. tags to describe the content\n\nWith a short URL and default relay, Nostr static websites could look something like: https://nostr.site/bob@nostr.me/projects.html\n\nAdvantages:\n- Host a static website on Nostr\n- Upload HTML pages, images, CSS/JavaScript\n- Support for NIP-05 usernames\n\nDisadvantages:\n- Not all relays accept the experimental Kind 30080\n- Does not support backend code like Node, Python or PHP\n- The content field usually has a max size of 64 KB\n\nExample:\n```\n{\n  \"id\":\"xxxx\",\n  \"pubkey\":\"xxxx\",\n  \"created_at\":100000000,\n  \"kind\":30080,\n  \"tags\":[\n    [\"d\",\"test.html\"],\n    [\"published_at\",\"100000000\"]\n  ],\n  \"content\":\"data:text/html;base64,PGh0bWw+CiAgPGhlYWQ+[...]PC9odG1sPg==\",\n  \"sig\":\"xxxx\"\n}\n```\n\nLive examples:\n- https://nostr-multimedia.netlify.app/web/nos.lol/ed253@nostrcheck.me/test.html\n- https://nostr-multimedia.netlify.app/web/nos.lol/ed253@nostrcheck.me/logo.png\n\nPublish Kind 30080 with https://github.com/ed253/nostr-publisher-cli\n\nView Kind 30080 with https://github.com/ed253/nostr-multimedia","sig":"0fd430553df58f115310fe9c3a25f078f9d98306b7312f8a0d4c16b97278e8f36995a4f9ff1bf92dbb75157221fd414f6c1d35c7373f7abc0833a4472ae9179e"}