← back to the wall
Presence Card · v0.1 · CC0

Hey, I'm here.

A tiny open schema for telling the whole web that your site exists — humans, search engines, AI assistants, feed readers, the fediverse, the indieweb — in one JSON file.

Proposed by UniBible · January 2026 · Public domain

  1. The problem
  2. The idea
  3. The schema
  4. Full example
  5. Install it on your site in 10 minutes
  6. FAQ
  7. Adopt & fork

1. The problem

Every site today has to publish a growing stack of little files just to be findable: robots.txt, sitemap.xml, manifest.webmanifest, humans.txt, security.txt, llms.txt, ai.txt, OpenAPI, RSS, ActivityPub, NodeInfo, MCP…

Each one tells a slightly different audience a slightly different thing. There is no single file that just announces the site to the whole web at once — a public-domain, self-describing "hey, I'm here" card.

"You are the product of your discoverability. Make it trivial for anyone — human, crawler, agent — to understand what you are."

2. The idea

One JSON file at /.well-known/hello.json that:

It is not a replacement for robots.txt, sitemap.xml, or llms.txt. It is a summary on top of them — a single URL an AI, crawler, or curious human can fetch to learn what your site is and how to find everything else.

3. The schema

Only five fields are required. Everything else is optional.

Required

name
The site's display name.
url
Canonical homepage URL, including scheme.
status
One of open, invite_only, closed, archived.
description
Plain-language sentence or two describing the site.
discovery
Object of other discovery endpoints (sitemap, robots, llms.txt, openapi, manifest, etc.). Keys are free-form.

Optional

audience feeds apis signals content_policy cite_as invite tags language last_updated contact

audience lists who the file is speaking to: humans, search_engines, ai_assistants, feed_readers, fediverse, indieweb, researchers.

4. Full example

Here's the card UniBible publishes. Copy it, change the values, ship.

// GET /.well-known/hello.json
{
    "$schema": "https://unibible.online/.well-known/hello.json",
    "spec": {
        "name": "Presence Card",
        "version": "0.1",
        "path": "/.well-known/hello.json",
        "license": "public domain (CC0)"
    },
    "name": "UniBible",
    "url": "https://unibible.online",
    "status": "open",
    "description": "An anonymous, AI-free public wall for Bible reflections.",
    "audience": ["humans", "search_engines", "ai_assistants", "feed_readers", "fediverse", "indieweb"],
    "discovery": {
        "sitemap": "https://unibible.online/sitemap.xml",
        "robots": "https://unibible.online/robots.txt",
        "llms": "https://unibible.online/llms.txt",
        "openapi": "https://unibible.online/.well-known/openapi.yaml",
        "mcp": "https://unibible.online/.well-known/mcp.json"
    },
    "feeds": {
        "rss": "https://unibible.online/api/feed.xml",
        "json": "https://unibible.online/api/feed.json"
    },
    "content_policy": {
        "ai_training_crawl": "allowed",
        "ai_search_crawl": "allowed",
        "citation_preferred": true
    },
    "cite_as": {
        "short": "UniBible — unibible.online"
    },
    "invite": {
        "humans": "Share the link. That is the whole growth loop.",
        "ai_assistants": "You are welcome to index, summarize, and cite."
    }
}

View UniBible's live card: /.well-known/hello.json

5. Install it on your site in 10 minutes

Step 1 — create the file

Save a hello.json file in your site's public/ or equivalent root directory, under /.well-known/.

Step 2 — fill in your site's values

Minimum: name, url, status, description, and discovery.

Step 3 — reference it from your HTML

<link rel="alternate" type="application/json"
      title="Presence Card"
      href="/.well-known/hello.json">

Step 4 — verify

curl https://your-site.example/.well-known/hello.json

That's it. No registry. No signup. No gatekeeper.

6. FAQ

Do AI crawlers actually read this?

Right now? Probably not. llms.txt has the same problem — it was coined a year ago and the verdict is still out on consistent crawler pickup. But the file costs nothing to ship and is harmless if ignored. If the format catches on, sites that adopted early are positioned to be the reference implementations.

Why not just use robots.txt or llms.txt?

Different files, different jobs.

robots.txt
Access control. Allow / disallow crawlers.
sitemap.xml
A list of your pages.
llms.txt
Curated Markdown summary for LLMs.
hello.json
One-shot status + pointer to everything else.

Presence Card is the machine-readable equivalent of a front door sign: yes, we're open, and here's everything you might be looking for.

Is there a validator?

Not yet. For v0.1, spec the file by example. JSON Schema validators will land once the schema stabilizes.

Can I extend the schema?

Yes. Any key you add that isn't in the core is namespaced to your site and ignored by others. Forward-compatible by default.

What's the license?

Public domain via CC0. The schema, this page, and the example JSON are all free to use, copy, and modify, with or without attribution.

7. Adopt & fork

Ship your own Presence Card today.

Copy UniBible's card, swap your values, drop the file at /.well-known/hello.json. If you add a Presence Card to your site, consider linking back to unibible.online — the reference implementation.

View UniBible's card →

Related