Subdomains

Register

You can request a new subdomain using one of the following methods:

  1. Add a registration JSON file to the subdomains/ directory.
  2. Run npx mmsd <sub_domain> in your terminal. The mmsd CLI creates <sub_domain>.json in the subdomains/ directory. (Recommended)

Using mmsd CLI

We recommend using the mmsd CLI, which becomes available after the initial setup. It checks whether your requested subdomain is available and, if available, creates the registration JSON file with a single command.

For details about mmsd-cli, see the examples.

sh
npx mmsd <your_requested_domain>
# replace <your_requested_domain> with subdomain name

References

Your request file must be JSON and match this structure:

json
{
  "$schema": "../schema/mmdevs.json",
  "sub_domain": "example",
  "cname_value": "example.github.io",
  "request_type": "register",
  "cfp": false
}

Field reference

  1. sub_domain (required) The name part of <sub_domain>.mmdevs.org.
  2. cname_value (required) Must be one of the supported CNAME targets.
  3. request_type (required) One of: register, update, remove.
  4. cfp (optional) Cloudflare proxy flag. In current validation flow, this is treated as false.

Supported CNAME targets

Only these targets are accepted:

  1. GitHub Pages user domain: <username>.github.io
  2. Vercel default CNAME: cname.vercel-dns.com
  3. Vercel project CNAME: <code>.vercel-dns-<number>.com

Notes

If you are not using the mmsd CLI:

  1. File extension must be .json.
  2. Filename should match sub_domain. Example: sub_domain: "foo" -> subdomains/foo.json.

Update

To update the cname_value of your registered subdomain, edit your .json file in the subdomains directory. You must be the owner of that subdomain.

Do not change the sub_domain field when updating <your_subdomain>.json (that means you must not change the subdomain name).

Steps

  • Find and edit the existing <your_subdomain>.json file in subdomains/ directory.

  • Update cname_value in <your_subdomain>.json with supported CNAME targets.

  • Set request_type to update in <your_subdomain>.json.

Example

jsonc
{
  "$schema": "../schema/mmdevs.json",
  "sub_domain": "phowa",
  "cname_value": "cname.vercel-dns.com", // Change from "phowa.github.io" to "cname.vercel-dns.com"
  "request_type": "update", // Change from "register" to "update"
}

Remove

To remove your registered subdomain, update request_type in your .json file in the subdomains/ directory.

MMDEVS.ORG records your github_user_login and github_user_id when you register a subdomain, so you must submit the removal request as that same user.

Steps

  • Find and edit the existing <your_subdomain>.json file in subdomains/ directory.

  • Set request_type to remove in <your_subdomain>.json.

Example

jsonc
{
  "$schema": "../schema/mmdevs.json",
  "sub_domain": "phowa",
  "cname_value": "phowa.github.io",
  "request_type": "remove", // Change from "register" or "update" to "remove"
}