Skip to content

Notes ·

I May Have Accidentally Started the Joshternet

Two days ago, I wrote about finding more than 2,000 Joshes on the independent web through We're Not Joshing You.

They had indexed this site.

I spent a while wandering through personal websites belonging to people named Josh and really liked the experience of discovering another person's little corner of the web simply because I happened to be exploring.

Apparently I couldn't leave it there.

Today I created the Joshternet.

This is absolutely a shameless plug because I made the thing, but the project came directly out of that discovery.

I started wondering what it would look like if all these independent Josh websites could identify and connect themselves without requiring everyone to move onto another social network or centralized platform.

The result is currently a small set of draft specifications for an open, decentralized network of Joshes and the websites they call home.

The important part is that the websites remain independent.

The Joshternet isn't supposed to host anyone's content, become an identity provider, rank the best Joshes, count followers or decide which Josh deserves attention.

It should connect existing places rather than replace them.

The foundational rule may also be my favorite:

Joshness is declared, never derived.

The protocol doesn't decide whether someone is a Josh based on whether their name happens to be Joshua, Josh, Yeshua or something linguistically related.

The person decides.

Someone can affirm that they are a Josh, explicitly say that they are not a Josh, or make no Josh identity declaration at all.

More importantly, you don't actually have to be a Josh to participate in the Joshternet.

A non-Josh can operate a site, service, directory or other part of the network without claiming Josh identity.

You can essentially participate by Joshing the Joshes.

The initial specification is deliberately small.

There are currently three draft RFCs:

  • RFC-JOSH-0000: The Joshternet, defining the network and its principles.
  • RFC-JOSH-0001: Josh Identity, defining voluntary Josh self-identification.
  • RFC-JOSH-0002: /.well-known/josh, defining the first machine-readable declaration.

That last one gives us an actual implementation.

A participating website publishes:

{
  "version": 1,
  "josh": true
}

at:

/.well-known/josh

That says two things.

The website participates in the Joshternet, and the person represented by the site has affirmed that they are a Josh.

A non-Josh can participate just as easily:

{
  "version": 1,
  "josh": false
}

And a site can participate without making any Josh identity claim:

{
  "version": 1
}

I'm updating JoshuaMorris.info to publish its own /.well-known/josh, making my site the first implementation of the declaration while the specifications are still in their wonderfully named PRE-JOSH phase.

There is no discovery protocol yet.

There is no registry specification yet.

There is no Josh routing protocol, Josh reputation score or Byzantine Josh consensus algorithm.

We should probably keep it that way for a while.

The whole thing should remain simple enough that someone running a plain static personal website can participate without JavaScript, an account, a centralized identity provider or some giant service sitting between the Joshes.

I don't know whether anyone else will actually implement it.

I hope they do.

The best possible outcome would be finding another personal website someday, seeing that it publishes /.well-known/josh, and realizing that someone else decided this ridiculous little protocol was worth participating in.

Two days ago I found a directory full of Joshes.

Today I apparently started writing the networking protocol.

That escalated quickly.

All notes