Skip to content

Latest commit

 

History

216 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bind.ws

Relay on demand. Sign once, and it's yours.

Every name under bind.ws is a nostr relay. Claim one with your nostr key, point any client at wss://<name>.bind.ws and it's yours. A relay within its fuel allowances owes nothing. Use beyond them is paid with zaps; retained storage and scheduled work still count when nobody is connected.

Not ready to pick a name? Ask for one:

curl -X POST https://bind.ws/lease

That answers with a relay at a memorable name, open to anyone for 14 days. Claim it before then and it stays, events and all.

A relay's page: banner, people, fuel

What a name gives you

  • A relay. The standard protocol plus search, counts, sync, expiry, deletion, proof of work, a discovery record for relay directories and an HTTP door for scripts. Works with every client. Everything past the core, search, sync, counts, the discovery record, names, files, pages and signer traffic, switches off per relay.
  • A community. Members, invite links, an invite tree, moderators with a log of what they did, a signed roster and one NIP-29 group per relay, so group-aware clients show it as a place.
  • A site. Notes and articles as pages with link previews, an Atom feed, and a card with a QR of the group address. NIP-5A also serves root, named and snapshot websites from signed manifests on isolated hostnames, with verified files, optional mirroring and sign-in that follows the relay's read rule.
  • Encrypted group transport. Opt-in Marmot KeyPackages and opaque MLS group messages, with account admission and storage caps for ephemeral authors. Clients manage encryption and group membership.
  • A Git host. Opt-in GRASP-01 Smart HTTP, backed by ntig. Signed NIP-34 state authorizes branch and tag changes; events wait for their Git objects before publication. Hosting has explicit storage limits, and the owner can request a bounded read-only inventory without authorizing deletion.
  • A file host. Blossom and NIP-96 on the same bucket, with mirroring, pre-flight checks and file reports.
  • A console. Ten tabs on the relay's own page, signed by a browser extension or a remote signer app on a phone. Presets set up an outbox, an inbox, a private relay, a chat, a search replica, a media host, a quiet relay with every costly feature off or a home with sites, files and Git on, in one click, with the app shortcuts to match. The template collection also includes static sites, public or member-published Marmot transport and Git repositories. The Connect fold shows those shortcuts to anyone who opens the page: the right app, the relay already attached, a QR for a phone.
  • A file. Everything the console sets, the app shortcuts included, as one document with a schema: check it offline, see what applying would change, apply it, pull it back. Keep your relay in your repository. The presets are the same files, in relay-templates/, and the shortcuts they name are files in connection-templates/.
  • Jobs. Pull another relay in, keep a standing mirror, fetch your own history from your relay list, rebroadcast to other relays, and dump everything to a file on a schedule.
  • Your own domain. wss://relay.example.com onto your relay with one CNAME, or a custom hostname targeting one of your static sites.
  • Succession. Name an heir. If your key goes silent, the relay warns you for a month and then hands itself over.

The console's People tab

It runs on Cloudflare Workers with one Durable Object per name, SQLite inside it and R2 beside it. The same code runs without Cloudflare, on celld with an S3 bucket of your own; that path is checked on demand and documented.

Site hosting and mirroring are on by default; Marmot and GRASP are off until enabled. Their storage shares the existing fuel allowances: manifests, messages and SQLite-backed Git repositories count as events, while mirrored site files count as files. The Health tab and public /fuel endpoint show aggregate usage, prices and balance. Traffic is visible but uncharged; provider operations are not itemized there. See Understanding fuel and Costs and margins.

Docs

For users

For scripts and agents

  • Scripts and agents: a relay end to end with a key and curl, every management method including Git storage inventory, the relay as a configuration file, and a finite production network exercise.
  • HTTP reference: every path, method, auth and answer.

For developers

  • Architecture: routing, the object, storage, alarm, jobs, identity, groups.
  • Hosting bind.ws: run your own on your own domain, and watch it through logs, traces and metrics.
  • Hosting without Cloudflare: the same Worker on celld, with your own bucket and proxy, and what "supported" promises.
  • Develop and extend: layout, tests, adding methods and NIPs, the console, the templates.
  • Connection templates: the app shortcuts on the Connect fold, the template file, its placeholders, the owner's list, /connect.json, and how to add one.
  • Costs and margins: application budgets, retained storage, inventory interpretation and deployment margins.

Draft NIPs

Protocol guides

  • Marmot transport: carry KeyPackages and opaque MLS group messages through a relay.

Quick start

npm install
npm run dev      # http://<name>.localhost:8787
npm test
npm run typecheck  # types, generated files, the configs, every template
npm run deploy

Protocol surface

NIP-01, 05, 09, 11, 13, 17, 29, 40, 42, 43, 45, 46 transport, 50, 56, 57, 59, 62, 66, 67, 70, 77, 86, 94, 96, 98, Marmot transport and Blossom BUD-01, 02, 04, 06, 08, 09. A relay's information document lists what its owner left on.

NIP-5A site discovery uses the nsites field. GRASP advertises only locally validated, enabled profiles. GRASP-01 and validated GRASP-06 are currently advertised; GRASP-02/03/05 are bounded opt-in previews pending interoperability and conformance review. grasp02 and grasp06 require grasp, while grasp03 and grasp05 require grasp02. Private repositories and any profile without its dependencies remain outside the advertised capabilities.

License

MIT

About

Relay on demand. Sign once, and it's yours.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages