17
205
Fork
You've already forked human.json
6

Managing multiple sites #28

Open
opened 2026年03月19日 15:24:59 +01:00 by khinsen · 3 comments

What is the best strategy for managing multiple sites belonging to the same person?

Example: I have my home page, my blog, and a few sites dedicated to specific topics. Each of these sites lives in a subdomain of khinsen.net.

For now, I have human.json on my home page, and that file vouches for my other sites. But the site that gets most visits is probably my blog. People who visit my blog but not my home page will never pick up my human.json.

Ideally, I'd have a single human.json for all of my subdomains, and then point to it from everywhere. But that doesn't work, because a single human.json is only for a single site.

What is the best strategy for managing multiple sites belonging to the same person? Example: I have my home page, my blog, and a few sites dedicated to specific topics. Each of these sites lives in a subdomain of khinsen.net. For now, I have `human.json` on my home page, and that file vouches for my other sites. But the site that gets most visits is probably my blog. People who visit my blog but not my home page will never pick up my `human.json`. Ideally, I'd have a single `human.json` for all of my subdomains, and then point to it from everywhere. But that doesn't work, because a single `human.json` is only for a single site.

Here's a suggestion on how to do it:

  1. On https://khinsen.net/human.json you'd have something like this:
{
 "version": "0.1.1",
 "url": "https://khinsen.net/",
 "vouches": [
 {
 "url": "https://blog.khinsen.net/",
 "vouched_at": "2026年03月09日"
 },
 {
 "url": "https://subdomain.khinsen.net/",
 "vouched_at": "2026年03月08日"
 }
 ]
}

Then, add this to the HTML of all your sites:

<link rel="human-json" href="https://khinsen.net/human.json">

This way, someone visiting your blog at https://blog.khinsen.net will still find your human.json file, and if they have the browser extension they can trust your site.

An important detail is that if they choose "Trust this site" on the browser extension while on https://blog.khinsen.net, they would be trusting https://khinsen.net/, not https://blog.khinsen.net. This means that when they visit https://blog.khinsen.net they will see it as trusted with 1-hop (still green).

I'm starting to think we should support multiple URLs in the document, so you would only need to vouch for others. In your case, something like this:

{
 "version": "0.2.0",
 "urls": [
 "https://khinsen.net/",
 "https://blog.khinsen.net/",
 "https://subdomain.khinsen.net/"
 ],
 "vouches": [ ... ]
}
Here's a suggestion on how to do it: 1. On https://khinsen.net/human.json you'd have something like this: ```json { "version": "0.1.1", "url": "https://khinsen.net/", "vouches": [ { "url": "https://blog.khinsen.net/", "vouched_at": "2026年03月09日" }, { "url": "https://subdomain.khinsen.net/", "vouched_at": "2026年03月08日" } ] } ``` Then, add this to the HTML of **all** your sites: ```html <link rel="human-json" href="https://khinsen.net/human.json"> ``` This way, someone visiting your blog at https://blog.khinsen.net will still find your `human.json` file, and if they have the browser extension they can trust your site. **An important detail** is that if they choose "Trust this site" on the browser extension while on https://blog.khinsen.net, they would be trusting https://khinsen.net/, not https://blog.khinsen.net. This means that when they visit https://blog.khinsen.net they will see it as trusted with 1-hop (still green). I'm starting to think we should support multiple URLs in the document, so you would only need to vouch for others. In your case, something like this: ```json { "version": "0.2.0", "urls": [ "https://khinsen.net/", "https://blog.khinsen.net/", "https://subdomain.khinsen.net/" ], "vouches": [ ... ] } ```
Author
Copy link

Thanks! I had expected that the links from other subdomains would be rejected because the URL in the human.json does not match. If the file is read and respected in spite of the mismatch, then as you say the net effect is good enough.

But yes, I'd love the multi-URL version!

Thanks! I had expected that the links from other subdomains would be rejected because the URL in the `human.json` does not match. If the file is read and respected in spite of the mismatch, then as you say the net effect is good enough. But yes, I'd love the multi-URL version!

A +1 for the multi-URL version, that would be super useful!

A +1 for the multi-URL version, that would be super useful!
robida added this to the v0.2.0 milestone 2026年03月23日 23:36:04 +01:00
Sign in to join this conversation.
No Branch/Tag specified
main
spec-0.2.0
crawler
No results found.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
robida/human.json#28
Reference in a new issue
robida/human.json
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?