the moshpit namespace
Claim .anything
One level deep, first come first served. Hold .eggs and every name.eggs under it is yours. Point a TLD at another one you own and the whole namespace follows — .agentic → .agent makes foo.agentic resolve to foo.agent — while any name you exempt stays exactly where it is.
Bought once. Yours for good.
$5 an ending, $2 a name —
paid one time, not every year. Nothing here renews, nothing lapses, and no name you hold can drop
because an invoice went to an address you stopped reading.
you asked for env.check
env.check is free. .check sells names at $2.
Buy it and it is yours to point wherever you like — the operator of the ending keeps the money, and nobody can take the name back.
Sign in with your moshcode account to buy it — the same login the CLI uses.
Endings you hold. Names under them are yours to mint for nothing — or put a price on the ending and let anyone buy one.
how do I host a site at a name I hold?
- Put your server's IPv6 address in "points at". Just the address —
2606:4700:4700::1111. IPv4 literals are refused: an A record on a small host is usually leased or NATed and goes stale without telling anyone. A hostname (box.example.com) works too. - Turn the resolver on, on any machine that should reach the name:
sudo moshcode dns enable. Moshpit endings are not in the public DNS root, so nothing resolves them until this is running — it answersAAAAfor your names out of the registry and leaves every other lookup alone. - Serve the name on that address, port 80. The browser connects straight to
your box and sends
Host: name.ending— nothing proxies, nothing redirects, so your web server needs a block that answers to the name.
Caddy — the http:// is required, not a
typo: no public CA will issue a certificate for an ending that is not in the DNS root, so
automatic HTTPS has to stay off.
nginx:
Or skip the typing —
moshcode template install bun-caddy-sqlite writes the Caddyfile, the systemd
units and a Bun + SQLite service already wired up this way.
moshcode template list shows what there is.
Check it with moshcode dns resolve seo.rank,
then curl -6 http://seo.rank/. A port other than 80 only works in the
/n/ view — DNS carries an address and has nowhere to put a port, so the browser
goes to 80 whatever the target says.
I don't run a server — can a name still be a site?
Yes. Paste an RSS or Atom URL into the feed box on any name you hold and the pit draws the site for you — the name's page becomes your posts or your episodes, hosted nowhere, updated whenever your feed is.
- A blog feed renders as posts: date, headline, the opening lines, and a link
out to the real article. Anything that emits RSS works — a static site generator, Substack,
Ghost, WordPress, a Mastodon account's
.rss. - A podcast feed renders as episodes, with cover art and a player on each one, so the name is somewhere people can actually listen rather than a page of links. Paste the same URL your show is submitted to Apple and Spotify with.
- auto / blog / podcast picks the layout. Auto looks at whether the entries carry audio, which is right nearly always — set it by hand when it is not.
A name that has both a target and a feed serves the target: a server you have stood up beats a page we drew. Clear the target and the feed takes over, which also makes the feed a soft landing for a site that has gone down.
The feed is fetched by the pit and cached for a few minutes, so a name that gets linked somewhere busy does not turn into traffic on your feed host.
how do I publish posts to a name from a script?
One endpoint, one call. It takes your existing moshcode API key as a bearer token, and it upserts on the slug — so a webhook that fires twice updates one post rather than making two.
- kind is one of
section,page,text,link,image,gallery,video,embed—sectionandpageare the nav, the rest are posts. - slug is the URL and the identity. Leave it out and one is made from the title; send it to update something you posted before.
- published_at takes epoch seconds, milliseconds or a date string. Send
nullfor a draft — written, addressable by you, absent from the site. - Post an array to publish up to 50 at once. Each item reports its own outcome, so one bad entry does not discard the good ones.
PUTandDELETEthe same path plus/<slug>to replace or take one down.GETit to read the site back out.
A name that publishes anything serves its site at
/n/<name>, with sections and pages as the nav and each post at
/n/<name>/<slug>. Publish a page with the slug
home to give the site a title and a tagline.
Order of precedence for a name: target (your server) → posts published here → feed → the ending's directory.
Sign in with your moshcode account to claim one — the same login the CLI uses.