Subdomains
Register
You can request a new subdomain using one of the following methods:
- Add a registration JSON file to the
subdomains/directory. - Run
npx mmsd <sub_domain>in your terminal. ThemmsdCLI creates<sub_domain>.jsonin thesubdomains/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.
npx mmsd <your_requested_domain>
# replace <your_requested_domain> with subdomain name
References
Your request file must be JSON and match this structure:
{
"$schema": "../schema/mmdevs.json",
"sub_domain": "example",
"cname_value": "example.github.io",
"request_type": "register",
"cfp": false
}
- Full example and detailed notes: example.jsonc
- Validation is enforced by: JSON Schema
Field reference
-
sub_domain(required) The name part of<sub_domain>.mmdevs.org. -
cname_value(required) Must be one of the supported CNAME targets. -
request_type(required) One of:register,update,remove. -
cfp(optional) Cloudflare proxy flag. In current validation flow, this is treated asfalse.
Supported CNAME targets
Only these targets are accepted:
- GitHub Pages user domain:
<username>.github.io - Vercel default CNAME:
cname.vercel-dns.com - Vercel project CNAME:
<code>.vercel-dns-<number>.com
Notes
If you are not using the
mmsdCLI:
- File extension must be
.json.- 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>.jsonfile insubdomains/directory. -
Update
cname_valuein<your_subdomain>.jsonwith supported CNAME targets. -
Set
request_typetoupdatein<your_subdomain>.json.
Example
{
"$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>.jsonfile insubdomains/directory. -
Set
request_typetoremovein<your_subdomain>.json.
Example
{
"$schema": "../schema/mmdevs.json",
"sub_domain": "phowa",
"cname_value": "phowa.github.io",
"request_type": "remove", // Change from "register" or "update" to "remove"
}