git ssb

%dBn9uyqFKuinu4wv4sEYY3Cp49kJswkrTMka7wJJXTM=.sha256

{
  "previous": "%LZ2igQCIrO8Rso7qUiab2D8ek6YTjWa8ELuWk8mzsxs=.sha256",
  "sequence": 3003,
  "author": "@C3iYh/12sO1uvKq1KcZXLFxSySzxOkHxXN8rtNB5MGA=.ed25519",
  "timestamp": 1523915597336,
  "hash": "sha256",
  "content": {
    "type": "post",
    "text": "# :globe_with_meridians: Introducing ssb-web :globe_with_meridians:\n\nSelf-contained websites living on SSB!\n\nYou can browse my website right here, served over eight45's ssb-viewer:\n\nhttp://eight45.net:8807/web/%26q1%2BhG9rh0awyrnGKmS%2FPBiUM982OjPWTzKg4oJZ9n4I%3D.sha256/index.html\n\nOr, if you have the latest release of [patchfoo](https://github.com/ssbc/patchfoo) you can view it locally: http://localhost:8027/web/%26q1%2BhG9rh0awyrnGKmS%2FPBiUM982OjPWTzKg4oJZ9n4I%3D.sha256/index.html\n\n![2018-04-16-132912_906x347_scrot.png](&nPt7BfusSRQmKq46JHJigXGCoL3KybSa/dpPJN4Ffxg=.sha256)\n\n## :seedling: What is this?\n\nA tool and resolver (see \"The stack\" below) for\n\n1. deploying a static website to SSB in the form of blobs\n2. resolving `/web/HASH/some/sub/path.html` URLs to the blob requested (`path.html` in this case)\n\nThis is enough to deploy any static website as a hierarchy of SSB blobs that link to sub-blobs, forming a linked website.\n\nKnowing the URL pattern, ssb websites can then link to *other* ssb websites!\n\n## :nut_and_bolt: Why build it?\n\nI see this as part of my [community value]( %K2waDQz3F8hVslvZ86sM9GbScU11GJ04xrccIIwVkf0=.sha256) of self-providing ourselves with useful tools that empower us. The web is already such a rich ecosystem -- why not have a ~~worldwide~~ subjective web inside of ssb as well?\n\nMoreso, SSB doesn't have many facilities for making more complex or linked data accessible. Messages fade and get lost over time: having a website at a known location that collects knowledge and resources can be tremendously useful. I've seen enough groups on SSB repurposing git-ssb as a means for discoverable / common knowledge hosting that this seems like it could be useful. And, of course, with the usual SSB superpower of being able to view & share it all offline.\n\nssb-web is meant to be orthogonal: it serves HTML or binary or JSON or whatever a webserver might serve, and doesn't try to impose any further opinions about what you serve. I believe this is a powerful property of empowering tools.\n\n..It's also just been an idea that's been bouncing around in my head for a while. This morning the final pieces just kind of *clicked* in my head and I set about spending a few hours to hack it all together. :gift:\n\n## :books: The stack\n\n### :rocket: [ssb-webify](https://github.com/noffle/ssb-webify)\n\nCLI command and API that turns a file or directory structure into a website:\n\n```\n$ npm install --global ssb-webify\n\n$ ssb-webify\nUSAGE: ssb-webify FILE|DIRECTORY\n\n$ ssb-webify website/\nHASH    : &WIH358/QoylVo+BwGxUWu3WzyaVVAMYvFnhdzGG8Uwo=.sha256\nWEB HASH: %26WIH358%2FQoylVo%2BBwGxUWu3WzyaVVAMYvFnhdzGG8Uwo%3D.sha256\n```\n\n### :link: [ssb-web-resolver](https://github.com/noffle/ssb-web-resolver)\n\nModule that takes a `/web/HASH/foo/bar.html` URL and recursively walks the blob links to resolve it to text/binary content to serve.\n\nI wrote patches for [patchfoo](https://github.com/ssbc/patchfoo) and [ssb-viewer](https://github.com/ssbc/ssb-viewer) to support the `/web` route for resolving and displaying websites. (This isn't merged into ssb-viewer at time of writing.)\n\n## :raised_hand: #somebodycould\n\n- mutable websites, by posting a message to your feed that associates a fixed identifier with a website root blob hash that ssb-web-resolver can resolve\n- [ssb-dns](%aVOBlkoiDbK99ROZPIaiiDk+4q2P4+G7MGul4UxkBBM=.sha256) integration (so that `.ssb` domain names take you to that website!)\n- build [github-pages](https://pages.github.com/) for git-ssb!\n\n---\n\n(Special thanks to @gmarcos87 whose [proposal style](&YTzf4lA3JBTu4YKcdP9D4kPa7CmWJUJ+ylXXvTqyPUk=.sha256) of emoji-headings I borrowed!)",
    "mentions": [
      {
        "emoji": true,
        "name": "globe_with_meridians",
        "link": "&3pimmMahSq7wWK5uKgKLgWwdkmJcJnKk3ucyDemTcK8=.sha256",
        "size": 5837
      },
      {
        "emoji": true,
        "name": "globe_with_meridians",
        "link": "&3pimmMahSq7wWK5uKgKLgWwdkmJcJnKk3ucyDemTcK8=.sha256",
        "size": 5837
      },
      {
        "link": "&nPt7BfusSRQmKq46JHJigXGCoL3KybSa/dpPJN4Ffxg=.sha256",
        "name": "2018-04-16-132912_906x347_scrot.png",
        "size": 56029,
        "type": "image/png"
      },
      {
        "emoji": true,
        "name": "seedling",
        "link": "&9zNxU8z7qujeYnwcOnou/20e26CgW6VK+BVlhjniHME=.sha256",
        "size": 2190
      },
      {
        "emoji": true,
        "name": "nut_and_bolt",
        "link": "&kVNMICvhsYAPDYUv9bJ4yda40ROjl91BcSsbefkOMQ4=.sha256",
        "size": 2169
      },
      {
        "link": "%K2waDQz3F8hVslvZ86sM9GbScU11GJ04xrccIIwVkf0=.sha256",
        "name": "community value"
      },
      {
        "emoji": true,
        "name": "gift",
        "link": "&N45xgZH6O4crAfm4Jz4wx41Z+ydrutyEu5Ly6GdPX1A=.sha256",
        "size": 6712,
        "type": "image/png"
      },
      {
        "emoji": true,
        "name": "books",
        "link": "&P22auAde+z9eOOJCl6B/Y8H/O3S+BnGuqCkLo067NVs=.sha256",
        "size": 6539
      },
      {
        "emoji": true,
        "name": "rocket",
        "link": "&9WWh53OHM0R1qHW0UlAIwfvitTGld+9ns6H2+FeqAi4=.sha256",
        "size": 5388
      },
      {
        "emoji": true,
        "name": "link",
        "link": "&HOukIWFIMI8nO8It1RoPuSBYY6djRTvhWKON8dcYpdg=.sha256",
        "size": 2619
      },
      {
        "emoji": true,
        "name": "raised_hand",
        "link": "&VhUG/Zd7Wu76OVTw4qBdfpNXVfFLNgLcQlza2cQYRaI=.sha256",
        "size": 4161
      },
      {
        "link": "#somebodycould"
      },
      {
        "link": "%aVOBlkoiDbK99ROZPIaiiDk+4q2P4+G7MGul4UxkBBM=.sha256",
        "name": "ssb-dns"
      },
      {
        "link": "@RmClT86x/o66QdW1dqAfj5Jek4qxUf8rtmvAlhZeZFg=.ed25519",
        "name": "gmarcos87"
      },
      {
        "link": "&YTzf4lA3JBTu4YKcdP9D4kPa7CmWJUJ+ylXXvTqyPUk=.sha256",
        "name": "proposal style"
      }
    ],
    "channel": "madscience"
  },
  "signature": "05edxU19FkzllBJ3MBhf7+zSQpT50B4m10CKMBtVoOrmHSXBSCb3IJ8sVl6bi4O+OuwJK/pIgfUBp2pWUc2WAQ==.sig.ed25519"
}

Built with git-ssb-web