Join the Joshternet
Are you a Josh? Get yourself connected. People who aren’t named Josh are equally welcome—Joshness is declared, never derived, and non-Joshes participate fully.
No accounts. No signup form. Your website stays yours. This page guides the existing process; Implement remains the technical guide.
-
1. Choose participation identity
Pick one valid version 1 declaration. Identity is never inferred from a name or site.
Affirmed Josh Identity
/.well-known/josh{ "version": 1, "josh": true }josh: trueDeclined Josh Identity
/.well-known/josh{ "version": 1, "josh": false }josh: false—still a full participant.Undeclared Josh Identity
/.well-known/josh{ "version": 1 }Omit
joshto leave identity open. -
2. Choose a website platform
Use a tested recipe when you can. Instructions stay on the platform pages—this list only points there.
- Cloudflare Worker — serves /.well-known/josh from a Worker route without changing your app build
- Astro — copies public/.well-known/josh into dist/
- Eleventy — copies josh.json to /.well-known/josh with addPassthroughCopy
- Ghost — serves /.well-known/josh at the reverse-proxy layer
- Hugo — publishes static/.well-known/josh into public/
- Jekyll — publishes .well-known/josh after including that directory
- Next.js — serves public/.well-known/josh (including static export)
- Nuxt — copies public/.well-known/josh into Nuxt 4 generate output
- Quartz — copies josh.json into public/.well-known/josh after npx quartz build
- SvelteKit — copies static/.well-known/josh with adapter-static
- WordPress — Joshternet plugin serves /.well-known/josh
-
Generic static website
— serve the file at
/.well-known/joshwithContent-Type: application/json
-
3. Publish the declaration
Serve the JSON at exactly
/.well-known/joshon your origin (no trailing slash). PreferContent-Type: application/jsonand a public200response without login or client script.For example,
https://example.invalid/publishes athttps://example.invalid/.well-known/josh. Each origin needs its own file—includingwwwif that origin is separate.Details, redirects, and caching notes live in the implementation guide.
-
4. Validate
Check the file you published. A successful check means the declaration is valid when read—not that JoshBot has listed the site yet.
-
5. Request discovery (optional)
Nomination asks JoshBot to crawl. It does not establish participation by itself and does not guarantee a registry listing.
-
6. Celebrate once you're listed
When JoshBot lists your site in the public Network, these optional next steps are yours to take—or skip. Completing the steps above alone is not membership success.
- Find your listing in the Network — use the site filter or search for your domain.
- Download your welcome card — optional postcard art generated for registry members.
- Install the official Joshternet button — optional; never required.
- Say hello in #joshternet (opens off this site) — invite friends of Joshes to join the fun if you want.