| bolton | ||
| examples | ||
| schema | ||
| widget | ||
| index.html | ||
| README.md | ||
| slippy.json | ||
| SPEC.md | ||
slippynet 🍝
The World's Leading Decentralized Noodle-Presence Solution™️. Slips right between your fingers!
a tiny presence layer for constellations of small collaborative sites (jams, wikis, weird little places) so that from any one of them you can see the lights on in all the others.
this repo is automatically redeployed to slippynet.cc ~5 minutes after a change.
built by pastagang for anyone who wants it.
RIP nudel.cc, which taught us to let code die.
how it works
- every site serves one static-or-generated file at
/slippy.json: its name, its rooms (join link + how many people are inside), and the peers it knows about. - a widget on any page crawls outward from a seed list, unions everyone's peer lists, and renders the constellation. the aggregation happens in your browser.
read SPEC.md - it's one page, you can do it (I Believe In You)
join the network (live site)
if you already run a websocket server (flok, y-websocket, anything that
knows how many sockets are open), bolt on the handler in
bolton/ - it's ~20 lines. wire getRooms() to whatever
your server already knows.
join the network (static site / gravestone)
hand-write a slippy.json with no rooms and drop it in your root:
{
"slippy": "1.0.0",
"name": "here lies nudel",
"peers": ["https://reisnudel.cc", "https://ravioli.nudel.cc"]
}
you are now a signpost. corpses are valid network participants.
put the constellation on your page
<script src="./slippy-widget.js"></script>
<slippy-net seeds="https://reisnudel.cc, https://ravioli.nudel.cc"></slippy-net>
manual refresh only please! presence is something you check, like looking out a window.
try the demo
python3 -m http.server 8000
# then open http://localhost:8000/widget/demo.html
(it fetches the fixtures in examples/, so it needs a server -
file:// won't let it fetch.)
repo map
index.html- the landing page at slippynet.cc, with the live constellation.SPEC.md- the protocol. the format is the protocol.slippy.json- this repo participating in the network as a static node, because of course it does.schema/slippy.schema.json- JSON Schema, if you want a validator.widget/slippy-widget.js- the embeddable client. zero dependencies.widget/demo.html- the widget pointed at local fixtures.examples/- one live node, one gravestone.bolton/- reference server bolt-on for live sites.