Merge branch 'main' into main

This commit is contained in:
is-a.dev Bot authored and GitHub committed 2026-08-19 13:37:24 +08:00
commit dfe4100b32
9699 files changed
+77242 -29234

No files matched your search

+4 -1
View File
@@ -1,4 +1,7 @@
* @wdhdev
/domains/ @is-a-dev/maintainers
*.md @is-a-dev/maintainers
*.md @is-a-dev/team
TERMS_OF_SERVICE.md @wdhdev
/util/reserved.json @is-a-dev/team
+19 -8
View File
@@ -1,18 +1,29 @@
<!--
YOU MUST FILL OUT THIS TEMPLATE FOR YOUR PR TO BE ACCEPTED!
FAILURE TO COMPLETE ALL REQUIREMENTS WILL RESULT IN A DENIAL OF YOUR PR!
-->
# Requirements
<!-- Your domain MUST pass ALL the requirements below, otherwise it WILL BE DENIED. -->
<!-- Change each checkbox to [x] (all lowercase, with no spaces between the brackets) to mark it as completed. -->
- [ ] I **agree** to the [Terms of Service](https://is-a.dev/terms). <!-- Your request MUST follow the TOS to be approved. -->
- [ ] My file is following the [domain structure](https://docs.is-a.dev/domain-structure/). <!-- Your JSON file is in the domains directory, the name is valid, etc. -->
- [ ] My website is **reachable** and **completed**. <!-- We do not permit simple "Hello, world!" or simply copied template websites with minimal changes. -->
- [ ] My website is **software development** related. <!-- Only your root subdomain needs to meet this requirement. -->
- [ ] My website is **not for commercial use**. <!-- Your website's purpose should not be to generate any form of revenue or profit. -->
- [ ] I have provided contact information in the `owner` key. <!-- Provide your email in the `email` field or another platform (e.g. X/Twitter or Discord) for contact. -->
- [ ] I have provided a preview of my website below. <!-- This step is required for your PR to be approved. -->
- [ ] <!-- TOS --> I **agree** to the [Terms of Service](https://is-a.dev/terms). <!-- Your request MUST follow the TOS to be approved. -->
- [ ] <!-- DOMAIN_STRUCTURE --> My file is following the [domain structure](https://docs.is-a.dev/domain-structure/). <!-- Your file is in the domains directory, the name is valid, it is JSON format, etc. -->
- [ ] <!-- WEBSITE_REACHABLE --> My website is **reachable** and **completed**. <!-- We do not permit simple "Hello, world!" or simply copied template websites with minimal changes. -->
- [ ] <!-- SOFTWARE_RELATED --> My website is **software development** related. <!-- We do not accept websites such as gaming, courses, AI agents/chatbots, etc. NOTE: Only your root subdomain needs to meet this requirement. -->
- [ ] <!-- NON_COMMERCIAL --> My website is **not for commercial use**. <!-- Your website's purpose should not be to generate any form of revenue or profit. (e.g. a business) -->
- [ ] <!-- CONTACT_INFO --> I have provided sufficient contact information in the `owner` key. <!-- Provide your email in the `email` field or another platform (e.g. Twitter or Discord) for contact. -->
- [ ] <!-- WEBSITE_LINK --> I have provided a link to my website below. <!-- This step is required for your PR to be approved. -->
# Website Preview
<!-- Provide a link AND screenshot of your website below. -->
<!-- Provide a LINK to your website below. We do NOT accept screenshots. -->
<!-- This should be a LINK to the existing domain your website is on, NOT the is-a.dev domain you're applying for. (e.g. https://abc.vercel.app, https://abc.github.io) -->
<!-- WEBSITE_PREVIEW_START -->
<!-- WEBSITE_PREVIEW_END -->
# Website Purpose
<!-- Please tell us the purpose or motive behind your website. For example, it is a portfolio website, etc. -->
<!-- WEBSITE_PURPOSE_START -->
<!-- WEBSITE_PURPOSE_END -->
+80
View File
@@ -0,0 +1,80 @@
# GitHub Copilot Instructions for is-a-dev/register
## Repository Purpose
This repository handles pull requests that register new `.is-a.dev` subdomains. Every PR adds or modifies **only** JSON files in the `domains/` directory. These files define DNS records.
Copilot must review **every PR** with these priorities:
1. The PR description **must** exactly match and fully complete the `.github/PULL_REQUEST_TEMPLATE.md`
2. Every JSON file must follow the exact filename rules, JSON schema, and validation rules from https://docs.is-a.dev/domain-structure/
3. If anything is wrong in the PR description **or** any JSON file, post a clear comment using the exact copy-pasta error messages (or very close variations that match the style). Be direct and helpful.
4. Only comment on real issues. Do not approve the PR if any errors exist.
## PR Description / Template Check (Critical)
(unchanged from previous version — keep the same checks and copy-pasta for incomplete template, no preview, inaccessible site, etc.)
## Filename Rules (Strict)
Files **must** be in the `domains/` directory and follow these exact rules:
- Must end in `.json`
- All lowercase letters only (no uppercase anywhere)
- Alphanumeric + dashes/underscores only (no consecutive dashes)
- Filenames (without `.json`) **cannot** match any entry in `util/reserved.json`
Reserved names are listed in `util/reserved.json`. These subdomain names may NOT be registered.
**Invalid filename errors to use verbatim:**
- "File does not end in .json. Make sure the file extension is correct. Reopen this PR when you have this corrected."
- "File is not in the correct directory. Must be in the domains directory. Reopen this PR when you have this corrected."
- "Filenames cannot have uppercase characters. See docs for more information: https://docs.is-a.dev/"
- "Filename is reserved. See util/reserved.json for the full list. Reopen this PR when you have this corrected."
## JSON Schema & Validation Rules (Updated & Expanded)
Every file must be valid JSON and follow this exact structure from https://docs.is-a.dev/domain-structure/:
```json
{
"owner": {
"username": "exact-github-username-of-pr-author",
"email": "optional@email.com"
},
"records": {
// record types here
}
}
```
**Critical rules (enforce strictly):**
- `"owner"."username"` **MUST** exactly match the GitHub username of the person who opened the PR, **unless** the PR author is a trusted maintainer listed in `util/trusted.json`.
Trusted maintainers: STICKnoLOGIC, DEV-DIBSTER, iostpa, orangci, Stef-DP, satr14washere, wdhdev.
- `"records"` is required (note: it must be `"records"`, never `"record"`).
- **CNAME records cannot be used with any other records and vice versa.** Only one record type is allowed if CNAME is present.
- If the `"proxied"` field is set to `true`, CNAME may then be combined with MX and TXT records, no other records are ever permitted.
- **A records must be an array of strings** (never a single string, object, or scalar value). Example: `"A": ["192.0.2.1"]`
- A records **cannot** contain public DNS resolver IPs (Cloudflare, Google, Quad9, OpenDNS, etc.). Prohibited examples: 1.1.1.1, 1.1.1.2, 1.0.0.1, 8.8.8.8, 8.8.4.4, 9.9.9.9, 149.112.112.112, 208.67.222.222, 208.67.220.220.
- CNAME must be a single lowercase string (no protocols, no paths, no query parameters, no arrays).
- TXT verification records must be paired correctly (separate `_vercel.*.json` for Vercel, proper TXT for GitHub Pages).
- Other record types (AAAA, MX, NS, etc.) must follow the exact array/object formats shown in the docs.
**Use these exact (or matching-style) error messages:**
- "File does not follow proper schema. See docs for more information: https://docs.is-a.dev/"
- "This should be `records` not `record`."
- "Cannot use CNAME in conjunction with other records and vice versa. See docs for more information: https://docs.is-a.dev/"
- "A records must be placed within an array. Example: \"A\": [\"192.0.2.1\"]. Reopen this PR when fixed."
- "A records cannot use public DNS resolver IPs (1.1.1.1, 8.8.8.8, 9.9.9.9, etc.). Reopen this PR when fixed."
- "Invalid username, username does not match the GitHub account that is opening the pull request. See docs for more information: https://docs.is-a.dev/ (trusted maintainers exempt — see util/trusted.json)"
- "Invalid CNAME. CNAME cannot contain protocols, file paths, URL parameters, or anything combination of those. CNAME records must be lowercased. See docs for more information: https://docs.is-a.dev/ Reopen PR when this is fixed."
- All previous verification, JSON, and socials copy-pasta remain valid.
## Verification-Specific Guidance
## General Review Style
- Be concise and use the exact copy-pasta messages whenever they match the issue.
- Always link back to https://docs.is-a.dev/ or the specific guide.
- If the site has "Little content provided" → use the existing copy-pasta.
- For new rule violations, use the exact phrasing above so maintainers instantly recognize the feedback.
- Suggest reopening the PR after fixes.
- You may add a short polite note around the copy-pasta, but keep the core error verbatim.
- Do not approve or merge any PR that has errors.
Follow these instructions on every PR review. This ensures full consistency with the automated tests in `/tests`, the reserved/trusted lists, and maintainer expectations.
+17 -17
View File
@@ -10,6 +10,8 @@ on:
- "tests/*"
- "util/*"
- ".github/workflows/ci.yml"
- "package.json"
- "package-lock.json"
workflow_dispatch:
@@ -21,32 +23,30 @@ jobs:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- run: npm install
- run: npm ci
- name: Fetch PR information
if: github.event_name == 'pull_request'
run: |
echo "PR_AUTHOR=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV
echo "PR_AUTHOR_ID=${{ github.event.pull_request.user.id }}" >> $GITHUB_ENV
LABELS=$(gh api --jq '[.labels[].name]' /repos/{owner}/{repo}/pulls/${{ github.event.number }})
echo "PR_LABELS=$LABELS" >> $GITHUB_ENV
FILES=$(gh api --jq '[.[] | select(.status != "removed") | .filename]' /repos/{owner}/{repo}/pulls/${{ github.event.number }}/files)
echo "CHANGED_FILES=$FILES" >> $GITHUB_ENV
REMOVED_FILE_DATA=$(gh api --jq '[.[] | select(.status == "removed") | {name: .filename, data: .patch}]' /repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files)
echo "DELETED_FILES=$REMOVED_FILE_DATA" >> $GITHUB_ENV
env:
GH_TOKEN: ${{ github.token }}
PR: ${{ github.event.pull_request.number }}
run: |
echo "PR_AUTHOR=${{ github.event.pull_request.user.login }}" >> "$GITHUB_ENV"
echo "PR_AUTHOR_ID=${{ github.event.pull_request.user.id }}" >> "$GITHUB_ENV"
echo "PR_LABELS=$(gh pr view ${{ github.event.pull_request.number }} --json labels --jq '[.labels[].name]')" >> "$GITHUB_ENV"
echo "CHANGED_FILES=$(gh api --jq '[.[] | select(.status != "removed") | .filename]' "repos/${{ github.repository }}/pulls/$PR/files")" >> "$GITHUB_ENV"
echo "DELETED_FILES=$(gh api --jq '[.[] | select(.status == "removed") | {name: .filename, data: .patch}]' "repos/${{ github.repository }}/pulls/$PR/files")" >> "$GITHUB_ENV"
- name: Run DNSControl tests
- uses: gacts/install-dnscontrol@890ba3249712c51203ccb7aba63307c0091e921b # v1.3.4
if: github.event_name == 'pull_request' && contains(fromJson(env.CHANGED_FILES), 'dnsconfig.js')
uses: is-a-dev/dnscontrol-action@main
with:
args: check
version: 4.14.0
- name: Run DNSControl checks
if: github.event_name == 'pull_request' && contains(fromJson(env.CHANGED_FILES), 'dnsconfig.js')
run: dnscontrol check
- name: Run tests
run: npx ava tests/*.test.js --timeout=1m
+6 -3
View File
@@ -17,8 +17,11 @@ jobs:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: is-a-dev/dnscontrol-action@main
- uses: gacts/install-dnscontrol@890ba3249712c51203ccb7aba63307c0091e921b # v1.3.4
with:
args: check
version: 4.14.0
- name: Run DNSControl checks
run: dnscontrol check
+262
View File
@@ -0,0 +1,262 @@
name: PR
on:
pull_request_target:
types:
- opened
- reopened
- edited
- synchronize
- labeled
permissions:
contents: read
pull-requests: write
issues: write
jobs:
label:
name: Label
runs-on: ubuntu-latest
steps:
- name: Check changed paths
id: changes
uses: dorny/paths-filter@v3
with:
filters: |
ci:
- ".github/workflows/*"
- "tests/*"
- "util/*"
- "package.json"
- "package-lock.json"
- "dnsconfig.js"
domain:
- "domains/*"
documentation:
- ".github/PULL_REQUEST_TEMPLATE.md"
- ".github/copilot-instructions.md"
- "README.md"
r-william:
- ".github/CODEOWNERS"
- "CODE_OF_CONDUCT.md"
- "CONTRIBUTING.md"
- "SECURITY.md"
- "TERMS_OF_SERVICE.md"
- "LICENSE"
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
ref: ${{ github.event.repository.default_branch }}
- name: Check trusted user
id: check-trusted
continue-on-error: true
env:
PR_AUTHOR_ID: ${{ github.event.pull_request.user.id }}
run: |
node - <<'NODE'
const trustedUsers = require("./util/trusted.json");
const authorId = Number(process.env.PR_AUTHOR_ID);
if (!trustedUsers.some((u) => u.id === authorId)) {
console.log("PR author is not a trusted user.");
process.exit(1);
}
console.log("PR author is a trusted user.");
NODE
- name: Add labels
uses: actions/github-script@v8
env:
CI_CHANGED: ${{ steps.changes.outputs.ci }}
DOCUMENTATION: ${{ steps.changes.outputs.documentation }}
DOMAIN_CHANGED: ${{ steps.changes.outputs.domain }}
MAINTAINER: ${{ steps.check-trusted.outcome == 'success' }}
R_WILLIAM: ${{ steps.changes.outputs.r-william }}
with:
github-token: ${{ secrets.BOT }}
script: |
const labels = [];
if (process.env.CI_CHANGED === "true") {
labels.push("ci");
labels.push("r: william");
}
if (process.env.DOCUMENTATION === "true") labels.push("documentation");
if (process.env.DOMAIN_CHANGED === "true") labels.push("domain");
if (process.env.MAINTAINER === "true") labels.push("maintainer");
if (process.env.R_WILLIAM === "true") labels.push("r: william");
const uniqueLabels = [...new Set(labels)];
if (uniqueLabels.length) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: uniqueLabels
});
}
template:
name: Template
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
ref: ${{ github.event.repository.default_branch }}
- name: Validate PR template
id: validate
continue-on-error: true
env:
PR_BODY: ${{ github.event.pull_request.body }}
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
PR_AUTHOR_ID: ${{ github.event.pull_request.user.id }}
PR_LABELS: ${{ toJSON(github.event.pull_request.labels.*.name) }}
run: node util/check-pr-template.cjs
- name: Handle incomplete PR
if: steps.validate.outcome == 'failure'
uses: actions/github-script@v8
with:
github-token: ${{ secrets.BOT }}
script: |
const label = "reason: incomplete pr";
try {
await github.rest.issues.getLabel({
owner: context.repo.owner,
repo: context.repo.repo,
name: label
});
} catch (error) {
if (error.status === 404) {
await github.rest.issues.createLabel({
owner: context.repo.owner,
repo: context.repo.repo,
name: label,
color: "D93F0B",
description: "Your PR template is not complete. (e.g. missing the requirements form, missing website preview)"
});
} else {
throw error;
}
}
const labels = await github.rest.issues.listLabelsOnIssue({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number
});
if (!labels.data.some((item) => item.name === label)) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: [label]
});
}
const marker = "<!-- is-a-dev-bot: incomplete-pr-template -->";
const comments = await github.paginate(
github.rest.issues.listComments,
{
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number
}
);
const alreadyCommented = comments.some(
(comment) =>
comment.user?.login === "is-a-dev-bot" &&
comment.body?.includes(marker)
);
if (!alreadyCommented) {
const body = [
marker,
"## ❌ Incomplete PR template",
"",
"This pull request is missing required information from the PR template.",
"",
"***Your PR will not be approved without the template being properly filled out!***",
"",
"Please make sure that:",
"",
"- The PR template has not been modified.",
" - *Modifying the PR template will make this check fail.*",
"- All requirement checkboxes are checked.",
" - *All checkboxes must be changed exactly to `[x]`, NOT something like `[ x ]`.*",
"- **Website Preview** is filled out.",
" - *Make sure it is filled between the start/end comment markers.*",
"- **Website Purpose** is filled out.",
" - *Make sure it is filled between the start/end comment markers.*",
"---",
"Once the template has been properly completed, this check will run again automatically."
].join("\n");
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body
});
}
- name: Remove incomplete label and comment
if: steps.validate.outcome == 'success'
uses: actions/github-script@v8
with:
github-token: ${{ secrets.BOT }}
script: |
const label = "reason: incomplete pr";
const marker = "<!-- is-a-dev-bot: incomplete-pr-template -->";
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
name: label
});
} catch (error) {
if (error.status !== 404) {
throw error;
}
}
const comments = await github.paginate(
github.rest.issues.listComments,
{
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number
}
);
for (const comment of comments) {
if (
comment.user?.login === "is-a-dev-bot" &&
comment.body?.includes(marker)
) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: comment.id
});
}
}
- name: Fail if PR template is incomplete
if: steps.validate.outcome == 'failure'
run: |
echo "::error::PR template is incomplete."
exit 1
+57
View File
@@ -0,0 +1,57 @@
name: Prettier
on:
push:
branches: [main]
paths:
- ".prettierrc"
- ".github/workflows/prettier.yml"
schedule:
- cron: "0 0 * * 0" # Runs every week on Sunday
workflow_dispatch:
permissions:
contents: write
pull-requests: write
actions: write
jobs:
prettify:
name: Prettify JSON files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- run: npm ci
- name: Run Prettier and open PR
run: |
set -euo pipefail
git config --global user.email "bot@is-a.dev"
git config --global user.name "is-a-dev-bot"
BRANCH="prettier-$(date +%s%3N)"
git push origin --delete "$BRANCH" 2>/dev/null || true
git checkout -b "$BRANCH"
npx prettier . --write
if git diff --quiet && git diff --cached --quiet; then
echo "No formatting changes needed."
exit 0
fi
git add .
COUNT=$(git status -s -uno | wc -l)
git commit -m "chore(domains): prettier"
git push --set-upstream origin "$BRANCH"
gh pr create -l maintainer -t "chore(domains): prettier" -b "$COUNT file(s) have been prettified."
env:
GH_TOKEN: ${{ secrets.BOT }}
+6 -4
View File
@@ -19,14 +19,16 @@ jobs:
name: DNS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: gacts/install-dnscontrol@890ba3249712c51203ccb7aba63307c0091e921b # v1.3.4
with:
version: 4.14.0
- name: Generate creds.json
run: echo '{"cloudflare":{"TYPE":"CLOUDFLAREAPI","apitoken":"$CLOUDFLARE_API_TOKEN"}}' > ./creds.json
- name: Push DNS records
uses: is-a-dev/dnscontrol-action@main
run: dnscontrol push
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
with:
args: push
+5 -5
View File
@@ -21,9 +21,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/setup-node@v4
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 20.x
@@ -34,12 +34,12 @@ jobs:
run: echo "raw.is-a.dev" > raw-api/CNAME
- name: Commit
uses: cpina/github-action-push-to-another-repository@main
uses: cpina/github-action-push-to-another-repository@55306faa4ed53b815ae49e564af8cfb359d32ae2 # v1.7.3
with:
source-directory: "raw-api"
destination-github-username: is-a-dev
destination-repository-name: raw-api
user-email: "actions@github.com"
user-name: "GitHub Actions"
user-email: "bot@is-a.dev"
user-name: "is-a-dev-bot"
env:
API_TOKEN_GITHUB: ${{ secrets.BOT }}
+2 -2
View File
@@ -2,7 +2,7 @@ name: Stale
on:
schedule:
- cron: "0 12 * * *"
- cron: "0 12 * * *" # Runs at 12:00
workflow_dispatch:
@@ -11,7 +11,7 @@ jobs:
name: Label
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 3
+41
View File
@@ -0,0 +1,41 @@
name: Update PR Branches
on:
workflow_dispatch:
jobs:
update:
name: Update
runs-on: ubuntu-latest
steps:
- name: Update branches
uses: actions/github-script@v8
with:
github-token: ${{ secrets.BOT }}
script: |
const prs = await github.paginate(
github.rest.pulls.list,
{
owner: context.repo.owner,
repo: context.repo.repo,
state: "open",
per_page: 100
}
);
console.log(`Found ${prs.length} open PRs`);
for (const pr of prs) {
try {
await github.rest.pulls.updateBranch({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr.number
});
console.log(`Updated #${pr.number} (${pr.head.ref})`);
} catch (error) {
console.log(`Could not update #${pr.number}: ${error.message}`);
}
}
+10
View File
@@ -0,0 +1,10 @@
*.md
.github
media
tests/*
util/*
*.js
package*.json
.prettier*
.gitignore
LICENSE
+13
View File
@@ -0,0 +1,13 @@
{
"trailingComma": "none",
"overrides": [
{
"files": "*.json",
"options": {
"parser": "json",
"printWidth": 1,
"tabWidth": 2
}
}
]
}
+21 -2
View File
@@ -3,7 +3,7 @@
</p> -->
<p align="center">
<img height="350" alt="is-a.dev Octoverse 2025 Banner" src="https://raw.githubusercontent.com/is-a-dev/register/main/media/octoverse-2025/is-a-dev_register_1200x630.jpg">
<img height="350" alt="is-a.dev Banner" src="https://raw.githubusercontent.com/is-a-dev/register/main/media/banner.png">
</p>
<p align="center">
@@ -24,6 +24,11 @@ Please join our [Discord server](https://discord.gg/is-a-dev-830872854677422150)
Not all announcements are posted on GitHub[^1], however they will always be posted in our Discord server.
> [!NOTE]
> We have recently launched another free subdomain service, [**is-a.bot**](https://is-a.bot)!
>
> Claim your `.is-a.bot` subdomain [here](https://github.com/free-domains/is-a.bot).
[^1]: We only post announcements on GitHub in the case of a serious incident, which you'll see at the top of this README.
# Register
@@ -31,13 +36,27 @@ Not all announcements are posted on GitHub[^1], however they will always be post
- [Fork](https://github.com/is-a-dev/register/fork) the repository.
- Follow the instructions on our [documentation](https://docs.is-a.dev).
- Do not use AI to generate your request, it **WILL** always get it wrong and will delay you getting a domain.
> [!TIP]
> If your desired `.is-a.dev` subdomain is taken, you can register an `.is-a.bot` subdomain instead!
>
> Claim your `.is-a.bot` subdomain [here](https://github.com/free-domains/is-a.bot).
- Once you open your pull request (PR), it will be reviewed. *Keep an eye on it in case changes are needed!*
- If changes have been requested, please make the specified changes otherwise **you will be rejected**.
- Once your PR is merged, your DNS records should be published with-in a few minutes.
- Enjoy your new `.is-a.dev` subdomain! Please consider leaving a star ⭐️ to help support us!
## Spam Pull Requests
With the recent rising of invalid PRs, including PRs generated with AI, we reserve the right to:
- Close these PRs without explanation.
- Block or limit the author's ability to interact with is-a.dev's repositories and resources.
- Remove any existing domains owned by the author if connected to TOS-violating content.
## Report Abuse
If you find any subdomains being abused or breaking our TOS, please report them by [creating an issue](https://github.com/is-a-dev/register/issues/new?assignees=&labels=report-abuse&projects=&template=report-abuse.md&title=Report+abuse) with relevant evidence.
If you find any subdomains being abused or breaking our [ToS](https://is-a.dev/terms), please report them by [creating an issue](https://github.com/is-a-dev/register/issues/new?assignees=&labels=report-abuse&projects=&template=report-abuse.md&title=Report+abuse) with relevant evidence.
---
+1 -1
View File
@@ -1,4 +1,4 @@
# Security Policy
## Reporting a vulnerability
Please report all vulnerabilities to security@is-a.dev.
Please report all vulnerabilities to admin@is-a.dev.
+41 -24
View File
@@ -1,29 +1,37 @@
# Terms of Service
Welcome to **is-a.dev** ("our", "us", "we"), a free subdomain service provided to individuals. By using our service, you agree to the following Terms of Service ("Terms"). Please read them carefully.
For questions or concerns about these Terms, please contact us at support@is-a.dev.
For questions or concerns about these Terms, please contact us at admin@is-a.dev.
**Last Updated**: 27th October, 2025
**Last Updated**: 3rd August, 2026
## Definitions
The following definitions apply within these Terms of Service:
- **"Service"** refers to the is-a.dev subdomain registration service, website, infrastructure, GitHub repository, and related systems operated by is-a.dev.
- **"User"**, **"you"**, and **"your"** refer to any individual using or accessing the service.
- **"Subdomain"** refers to any subdomain registered under the `is-a.dev` domain.
- **"Root subdomain"** refers to the primary registered subdomain itself, excluding any nested subdomains. For example, `example.is-a.dev` is a root subdomain, while `blog.example.is-a.dev` is a **"nested subdomain"**.
- **"Content"** refers to any website, files, media, software, text, or other material hosted or served using an is-a.dev subdomain.
## 1. Acceptance of Terms
By accessing or using is-a.dev, you acknowledge that you have read, understood, and agree to be bound by these Terms. If you do not agree, you may not use is-a.dev.
By accessing or using is-a.dev, you acknowledge that you have read, understood, and agree to be bound by these Terms. If you do not agree, you may not use the is-a.dev service.
## 2. Eligibility
To use is-a.dev, you must:
1. Be at least 13 years old;
2. Be an individual or non-commercial project;
2. Be an individual person, not an organisation, acting either on your own behalf or as a representative of a group or non-commercial project;
3. Use the service for lawful purposes only;
4. Provide accurate and truthful information when registering.
All subdomains must be registered to an individual GitHub account, organisations may not be the registered owner of a subdomain.
Subdomains must be registered to an individual GitHub account, and cannot be registered to a GitHub organisation account.
By using is-a.dev, you represent and warrant that you meet these requirements.
## 3. Service Description
is-a.dev allows users to register a subdomain under the "is-a.dev" domain. This service is offered "as-is" without guarantees of uptime, support, or permanence.
Subdomains are intended solely for individuals and non-commercial projects.
Subdomains are intended solely for individuals, software developer groups and non-commercial projects that are related to software development, as long as the project does not engage in activities or serve content that is prohibited by these Terms of Service.
We reserve the right to deny any subdomain registration request for any reason.
@@ -36,48 +44,57 @@ You agree not to use, attempt to use, or permit others to use the is-a.dev servi
4. Harassment, hate speech, or discrimination
5. Pornography or sexually explicit material
6. Impersonation and misrepresentation
7. Infringe third-party rights
8. Commercial, for-profit or political purposes
9. Unsolicited communications
7. Infringing third-party rights
8. Commercial, for-profit, or political purposes
9. Sending unsolicited communications
10. Cryptocurrency and blockchain mining
11. Abusive automation
11. Abusive automation (including but not limited to: "bots", "scrapers", or automated scripts that place excessive load on the service)
12. Proxy or VPN services
13. Hosting websites on root subdomains that are behind a login page (with the exception of login pages for management reasons)
14. Blogs that are not primarily related to software development
15. Conversational AI websites or apps that are similar in functionality to websites or apps such as Claude, Gemini, ChatGPT, etc
16. Any website that is orientated to courses
17. Video game cheats, hacks, exploits, or unauthorised modifications, including any websites, communities, software, downloads, documentation, or services primarily intended to facilitate unfair gameplay or circumvent game restrictions
*Note: This list is not extensive and may be updated or expanded at any time at our discretion.*
*Note: This list is not exhaustive and may be updated or expanded at any time at our discretion.*
Additionally, users must comply with [GitHub's Terms of Service](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) where applicable.
Violation of this section may result in immediate termination without notice.
## 5. Ownership and Intellectual Property
## 5. Use of AI (Artificial Intelligence)
The use of AI for creating, designing, or modifying websites is acceptable as long as the website is complete and complies with the prohibited activities guidelines. We are strongly against the usage of AI (such as Claude Code, Codex, OpenClaw, etc) for creating pull requests, and may close the pull request alongside blocking or limiting the author's ability to interact with our repositories and resources, if used.
## 6. Ownership and Intellectual Property
is-a.dev retains all rights, title, and interest in the "is-a.dev" domain and associated systems.
You retain ownership of any content you host on your subdomain. Your hosted content however must not infringe third-party rights.
You retain ownership of any content you host on your subdomain. Your hosted content, however, must not infringe on third-party rights.
You grant us permission to use your registration data to operate the service.
## 6. Termination of Service
We reserve the right to terminate your subdomain at any time, for any reason.
## 7. Termination of Service
We reserve the right to terminate your subdomain at any time, for any reason. While we make reasonable efforts to provide notice in advance, we are not obligated to do so.
Termination may occur without prior notice. Any donations will not be refunded.
Any donations made to the service are non-refundable.
## 7. Privacy
For privacy-related inquiries, please contact us at support@is-a.dev. We are not responsible for any data or privacy breaches resulting from the use of our service.
## 8. Privacy
We collect and process only the personal data strictly necessary to operate is-a.dev. We do not sell or share your data with third parties for marketing purposes. While we take reasonable precautions, we are not responsible for any data or privacy breaches resulting from the use of our service.
We do not collect or process personal data beyond what is necessary to operate the service.
For privacy-related inquiries, please contact us at admin@is-a.dev.
## 8. Disclaimer and Limitation of Liability
## 9. Disclaimer and Limitation of Liability
The is-a.dev service is provided "as-is" and "as available." We make no warranties, expressed or implied, regarding the service's functionality, reliability, or suitability for any particular purpose.
You use the service at your own risk.
## 9. Indemnification
## 10. Indemnification
You agree to indemnify and hold harmless is-a.dev, its operators, and affiliates from any claims, losses, liabilities, or expenses arising from your use of the service or violation of these Terms.
## 10. Governing Law and Jurisdiction
These Terms are governed by the laws of Australia.
## 11. Governing Law and Jurisdiction
These Terms are governed by the laws of Australia. Any disputes arising out of or relating to these Terms will be subject to the exclusive jurisdiction of the courts of Australia.
## 11. Modification of Terms
## 12. Modification of Terms
We reserve the right to update or modify these Terms at any time. Changes will be effective immediately upon posting. Your continued use of the service constitutes acceptance of the updated Terms.
If changes are made, we will notify users by posting them on our website or Discord server.
+1 -2
View File
@@ -157,8 +157,7 @@ var ignored = [
IGNORE("_gh-is-a-dev-o.**", "TXT"),
IGNORE("_github-pages-challenge-is-a-dev", "TXT"),
IGNORE("_github-pages-challenge-is-a-dev.**", "TXT"),
IGNORE("_psl", "TXT"),
IGNORE("ns[1-4]", "A,AAAA")
IGNORE("_psl", "TXT")
];
var internal = require("./util/internal.json");
+11
View File
@@ -0,0 +1,11 @@
{
"owner": {
"username": "FWEEaaaa1",
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": [
"216.198.79.1"
]
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": ["128.204.223.115"]
"A": [
"128.204.223.115"
]
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "010101-sans",
"email": "010101sansdev@gmail.com"
},
"records": {
"CNAME": "010101-sans.github.io"
}
"owner": {
"username": "010101-sans",
"email": "010101sansdev@gmail.com"
},
"records": {
"CNAME": "010101-sans.github.io"
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"owner": {
"username": "Rudransh-K999"
},
"records": {
"CNAME": "rudransh-k999.github.io"
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "0d4vid",
"email": "nonagnidavid@gmail.com"
},
"records": {
"CNAME": "0d4vid.github.io"
}
"owner": {
"username": "0d4vid",
"email": "nonagnidavid@gmail.com"
},
"records": {
"CNAME": "0d4vid.github.io"
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": ["128.204.223.115"]
"A": [
"128.204.223.115"
]
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "barnz2",
"email": "b4rnzie@gmail.com"
},
"records": {
"CNAME": "barnz2.github.io"
}
"owner": {
"username": "barnz2",
"email": "b4rnzie@gmail.com"
},
"records": {
"CNAME": "barnz2.github.io"
}
}
+9 -7
View File
@@ -1,9 +1,11 @@
{
"owner": {
"username": "amitgoesbrr",
"email": "amitgoesbrr@gmail.com"
},
"records": {
"A": ["216.198.79.1"]
}
"owner": {
"username": "amitgoesbrr",
"email": "amitgoesbrr@gmail.com"
},
"records": {
"A": [
"216.198.79.1"
]
}
}
+4 -1
View File
@@ -4,6 +4,9 @@
"email": "0xarchit@proton.me"
},
"records": {
"NS": ["brenna.ns.cloudflare.com", "cartman.ns.cloudflare.com"]
"NS": [
"brenna.ns.cloudflare.com",
"cartman.ns.cloudflare.com"
]
}
}
-9
View File
@@ -1,9 +0,0 @@
{
"owner": {
"username": "officialaritro",
"email": "officialaritro204@gmail.com"
},
"records": {
"CNAME": "cname.vercel-dns.com"
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "jeromeandrewk@proton.me"
},
"records": {
"A": ["216.198.79.1"]
"A": [
"216.198.79.1"
]
}
}
+3 -1
View File
@@ -5,6 +5,8 @@
"email": "marufsm4@gmail.com"
},
"records": {
"A": ["75.2.60.5"]
"A": [
"75.2.60.5"
]
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"owner": {
"username": "NipunXD",
"email": "aroranipun10@gmail.com"
},
"records": {
"A": [
"216.198.79.1"
]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "prathameshrp",
"email": "prathamesh.math@gmail.com"
},
"records": {
"CNAME": "prathameshrp.github.io"
}
}
+9 -9
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "0xshijn",
"email": "0xshiinnn@gmail.com"
},
"records": {
"CNAME": "0xshijn.github.io"
}
}
{
"owner": {
"username": "0xshijn",
"email": "0xshiinnn@gmail.com"
},
"records": {
"CNAME": "0xshijn.github.io"
}
}
+7 -2
View File
@@ -5,7 +5,12 @@
"linkedin": "https://www.linkedin.com/in/vinay-ghate"
},
"records": {
"TXT": ["v=spf1 include:spf.improvmx.com ~all"],
"MX": ["mx1.improvmx.com", "mx2.improvmx.com"]
"TXT": [
"v=spf1 include:spf.improvmx.com ~all"
],
"MX": [
"mx1.improvmx.com",
"mx2.improvmx.com"
]
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"owner": {
"username": "0xwi11iam",
"email": "jiangwilliam30@gmail.com"
},
"records": {
"A": [
"216.198.79.1"
]
}
}
+4 -1
View File
@@ -4,7 +4,10 @@
"email": "youssefessamasu@gmail.com"
},
"records": {
"MX": ["mx1.forwardemail.net", "mx2.forwardemail.net"],
"MX": [
"mx1.forwardemail.net",
"mx2.forwardemail.net"
],
"TXT": [
"forward-email=youssefessamasu@gmail.com",
"v=spf1 a include:spf.forwardemail.net include:_spf.google.com -all"
+3 -1
View File
@@ -5,6 +5,8 @@
"email": "lx737456@gmail.com"
},
"records": {
"A": ["89.106.200.1"]
"A": [
"89.106.200.1"
]
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"owner": {
"username": "syafiq-dev",
"email": "syafiq.dev@pm.me"
},
"records": {
"A": [
"216.198.79.1"
]
}
}
+4 -1
View File
@@ -5,7 +5,10 @@
"discord": "862644161156218891"
},
"records": {
"MX": ["a8aacaa795f68ffd.mx1.emailprofi.seznam.cz", "a8aacaa795f68ffd.mx2.emailprofi.seznam.cz"],
"MX": [
"a8aacaa795f68ffd.mx1.emailprofi.seznam.cz",
"a8aacaa795f68ffd.mx2.emailprofi.seznam.cz"
],
"TXT": "v=spf1 include:spf.seznam.cz ~all"
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"owner": {
"username": "FWEEaaaa1",
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": [
"128.204.223.115"
]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "MaseDev33",
"email": "mase@masecodes.is-a.dev"
},
"records": {
"CNAME": "sendgrid.net"
}
}
-9
View File
@@ -1,9 +0,0 @@
{
"owner": {
"username": "joaawd",
"email": "fmodeteam@gmail.com"
},
"records": {
"CNAME": "jaycuh.github.io"
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": ["128.204.223.115"]
"A": [
"128.204.223.115"
]
}
}
@@ -1,13 +1,12 @@
{
"owner": {
"username": "BrianKN019",
"email": "briannkimemia@gmail.com"
},
"proxied": false,
"records": {
"TXT": [
"k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr6KMgdxxgg7oT3ulMwPJs9RXgXDrI9UWU118pHEMohl3UbL3Jwp4oxp/9N3thh/3WCJnYV134zbEVolZwqaT3JsFEq/mQ/RpW/JnOZ3rnxqJPurb2bcfJol4SDxiWVObzHX31xnANzFcXnq1/5dMK5QvW4Jh7n0fm4+4ywqiy2QIDAQAB"
]
}
"owner": {
"username": "BrianKN019",
"email": "briannkimemia@gmail.com"
},
"proxied": false,
"records": {
"TXT": [
"k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr6KMgdxxgg7oT3ulMwPJs9RXgXDrI9UWU118pHEMohl3UbL3Jwp4oxp/9N3thh/3WCJnYV134zbEVolZwqaT3JsFEq/mQ/RpW/JnOZ3rnxqJPurb2bcfJol4SDxiWVObzHX31xnANzFcXnq1/5dMK5QvW4Jh7n0fm4+4ywqiy2QIDAQAB"
]
}
}
+10 -11
View File
@@ -1,13 +1,12 @@
{
"owner": {
"username": "BrianKN019",
"email": "briannkimemia@gmail.com"
},
"proxied": false,
"records": {
"TXT": [
"k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCiNMCaVZh6WwO+RP1NR8f7ce0A0riKZflZAcweAbuEe21uCBT32aZp19gyX9P0yu4X8yVQ3UmQfdfeuvFw240/QtHtDWIzjIQJFu2yiGtNcSz1uuJL4K84n2kMQm6G7C1rA6jfDY0yj4Fr26tgKpEmq7oVH+8V0JYDSmxFr9GcQQIDAQAB"
]
}
"owner": {
"username": "BrianKN019",
"email": "briannkimemia@gmail.com"
},
"proxied": false,
"records": {
"TXT": [
"k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCiNMCaVZh6WwO+RP1NR8f7ce0A0riKZflZAcweAbuEe21uCBT32aZp19gyX9P0yu4X8yVQ3UmQfdfeuvFw240/QtHtDWIzjIQJFu2yiGtNcSz1uuJL4K84n2kMQm6G7C1rA6jfDY0yj4Fr26tgKpEmq7oVH+8V0JYDSmxFr9GcQQIDAQAB"
]
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"owner": {
"username": "1b7e",
"email": "nulldate4@gmail.com"
},
"records": {
"A": [
"216.198.79.1"
]
}
}
-9
View File
@@ -1,9 +0,0 @@
{
"owner": {
"username": "1ypi",
"email": "1ypi@proton.me"
},
"records": {
"CNAME": "1ypi.github.io"
}
}
+4 -1
View File
@@ -4,7 +4,10 @@
"discord": "780356848737058857"
},
"records": {
"MX": ["mx1.improvmx.com", "mx2.improvmx.com"],
"MX": [
"mx1.improvmx.com",
"mx2.improvmx.com"
],
"TXT": "v=spf1 include:spf.improvmx.com ~all"
}
}
+3 -2
View File
@@ -1,10 +1,11 @@
{
"repo": "https://github.com/256javy/256javy.github.io",
"owner": {
"username": "256javy",
"email": "256javiervillalba@gmail.com"
},
"records": {
"CNAME": "256javy.github.io"
"A": [
"216.198.79.1"
]
}
}
@@ -1,9 +0,0 @@
{
"owner": {
"username": "RaunakMandal",
"email": "iamriju2000@gmail.com"
},
"records": {
"TXT": "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5eTCgfTZyhQPPjhe2XLgXrtpj4MtiqBKdVv14XN+zvRT8Z+YCXPElsEVDwvLc91G8Lv4kZwgiLaINzeZjd8USQtgwaUx1QJnIeRyAvuq4kkAIFBAL5HsC4zqQAIzjCfAPrc3WhG7FYLZu76hpy3GbKZYAB+kBgTR+QRO79rvrbQIDAQAB"
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"owner": {
"username": "TTdznf"
},
"records": {
"CNAME": "twotoxportfolio.onrender.com"
}
}
+2 -6
View File
@@ -1,12 +1,8 @@
{
"owner": {
"username": "dragsbruh",
"email": "dragsbruh@protonmail.com",
"discord": "781445370177126401",
"bluesky": "furina.is-a.dev"
"username": "ctrlaltspace"
},
"records": {
"URL": "https://furina.is-a.dev"
"CNAME": "ctrlaltspace.github.io"
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "3lyly0",
"email": "3lyly00@gmail.com"
},
"records": {
"CNAME": "cname.vercel-dns.com"
}
"owner": {
"username": "3lyly0",
"email": "3lyly00@gmail.com"
},
"records": {
"CNAME": "cname.vercel-dns.com"
}
}
+3 -2
View File
@@ -4,7 +4,8 @@
"email": "93amr.kakashi@gmail.com"
},
"records": {
"A": ["216.198.79.1"]
"A": [
"216.198.79.1"
]
}
}
+22 -22
View File
@@ -1,23 +1,23 @@
{
"owner": {
"username": "LonelyGuy12",
"email": "me@4.is-a.dev",
"discord": "886120777630486538"
},
"records": {
"MX": [
{
"target": "mx1.improvmx.com",
"priority": 10
},
{
"target": "mx2.improvmx.com",
"priority": 20
}
],
"TXT": [
"v=spf1 include:spf.improvmx.com ~all"
],
"URL": "https://lonely.is-a.dev"
}
}
"owner": {
"username": "LonelyGuy12",
"email": "me@4.is-a.dev",
"discord": "886120777630486538"
},
"records": {
"MX": [
{
"target": "mx1.improvmx.com",
"priority": 10
},
{
"target": "mx2.improvmx.com",
"priority": 20
}
],
"TXT": [
"v=spf1 include:spf.improvmx.com ~all"
],
"URL": "https://lonely.is-a.dev"
}
}
+2 -3
View File
@@ -1,9 +1,8 @@
{
"owner": {
"username": "404Dev-404",
"email": "anthonyvaldes318+404@gmail.com"
"username": "audtjddld"
},
"records": {
"CNAME": "404dev-404.github.io"
"CNAME": "audtjddld.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "lstTTY",
"email": "1956631904@qq.com"
},
"records": {
"CNAME": "lsttty.github.io"
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "web.unsalahmet@gmail.com"
},
"records": {
"A": ["76.76.21.21"]
"A": [
"76.76.21.21"
]
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "hi.donggi@gmail.com"
},
"records": {
"A": ["167.234.218.7"]
"A": [
"167.234.218.7"
]
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "4realwilly",
"email": "wholley123@icloud.com"
},
"records": {
"CNAME": "my-website-9et.pages.dev"
}
"owner": {
"username": "4realwilly",
"email": "wholley123@icloud.com"
},
"records": {
"CNAME": "my-website-9et.pages.dev"
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"description": "Personal cybersecurity portfolio",
"owner": {
"repo": "https://github.com/4thul-505/4thul-505.github.io",
"email": "athuljos505@proton.me",
"username": "4thul-505"
},
"records": {
"CNAME": "4thul-505.github.io"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "4yk5",
"email": "terenax@outlook.com"
},
"records": {
"CNAME": "4yk5.github.io"
}
}
+9 -7
View File
@@ -1,9 +1,11 @@
{
"owner": {
"username": "iam-sigma",
"email": "iamsigmaboy@gmail.com"
},
"records": {
"A": ["216.198.79.1"]
}
"owner": {
"username": "iam-sigma",
"email": "iamsigmaboy@gmail.com"
},
"records": {
"A": [
"216.198.79.1"
]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "ssrszdx",
"email": "568032885@qq.com"
},
"records": {
"URL": "https://github.com/ssrszdx"
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "3rr0r-505",
"email": "5pyd3r.hexweb@protonmail.com"
},
"records": {
"CNAME": "3rr0r-505.github.io"
}
"owner": {
"username": "3rr0r-505",
"email": "5pyd3r.hexweb@protonmail.com"
},
"records": {
"CNAME": "3rr0r-505-github-io.pages.dev"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "3rr0r-505",
"email": "5pyd3r.hexweb@protonmail.com"
},
"records": {
"CNAME": "3rr0r-505.github.io"
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"owner": {
"username": "me5years"
},
"records": {
"CNAME": "me5years.github.io"
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "b0nn133",
"email": "bonnieroxtigers@yandex.ru"
},
"records": {
"CNAME": "b0nn133.github.io"
}
"owner": {
"username": "b0nn133",
"email": "bonnieroxtigers@yandex.ru"
},
"records": {
"CNAME": "b0nn133.github.io"
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": ["128.204.223.115"]
"A": [
"128.204.223.115"
]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "6z7y",
"email": "eenanho24n@proton.me"
},
"records": {
"CNAME": "6z7y.dpdns.org"
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "733nw0lf",
"email": "733nwolf@gmail.com"
},
"records": {
"CNAME": "733nw0lf.github.io"
}
"owner": {
"username": "733nw0lf",
"email": "733nwolf@gmail.com"
},
"records": {
"CNAME": "733nw0lf.github.io"
}
}
+7 -7
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "7aimez",
"email": "123058@combertonvc.org"
},
"records": {
"CNAME": "james-davies.pages.dev"
}
"owner": {
"username": "7aimez",
"email": "123058@combertonvc.org"
},
"records": {
"CNAME": "james-davies.pages.dev"
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "gorgonfweman@outlook.com"
},
"records": {
"A": ["128.204.223.115"]
"A": [
"128.204.223.115"
]
}
}
@@ -0,0 +1,8 @@
{
"owner": {
"username": "zahirbombap-hub"
},
"records": {
"TXT": "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCS6UxJEzGJcY2oIdwatJ55MdTBPMY7ShglTHJerQpn1aVXe+N2Pg3ESGMe2NfaWnYbK7nnwSYyuF/ax+Gi4keRT02akHt1bwNHO9UHbRQ/XA0WOl8Fv4OOQyZRjCtYiCCg1INPH+65aCYncbM02rk6UvYAQV8YXq0wJtwpNOdmjQIDAQAB"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "MaseDev33",
"email": "masedev33@proton.me"
},
"records": {
"CNAME": "8f7.domainkey.u110282348.wl099.sendgrid.net"
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "MaseDev33",
"email": "mase@masecodes.is-a.dev"
},
"records": {
"CNAME": "8f72.domainkey.u110282348.wl099.sendgrid.net"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"owner": {
"username": "8Nova2"
},
"records": {
"A": [
"141.253.97.166"
]
}
}
@@ -0,0 +1,9 @@
{
"owner": {
"username": "VersionTV",
"email": "hasanversion2009@gmail.com"
},
"records": {
"CNAME": "_cd6a7af6416d4d1e553b4a0369bf1054.jkddzztszm.acm-validations.aws"
}
}
@@ -1,9 +1,9 @@
{
"owner": {
"username": "Mou3ad",
"email": "bensaid.mouad@gmail.com"
},
"records": {
"CNAME": "_18d9db61be7cfcf0d37c790dc5356d89.jkddzztszm.acm-validations.aws"
}
"owner": {
"username": "Mou3ad",
"email": "bensaid.mouad@gmail.com"
},
"records": {
"CNAME": "_18d9db61be7cfcf0d37c790dc5356d89.jkddzztszm.acm-validations.aws"
}
}
@@ -6,4 +6,4 @@
"records": {
"CNAME": "_cd3ffa40b4cdfa9a4814778e72138bbd.jkddzztszm.acm-validations.aws"
}
}
}
@@ -1,9 +1,9 @@
{
"owner": {
"username": "Mou3ad",
"email": "bensaid.mouad@gmail.com"
},
"records": {
"CNAME": "_8c0674c225f7bd6c72ae80a99574c48a.jkddzztszm.acm-validations.aws"
}
"owner": {
"username": "Mou3ad",
"email": "bensaid.mouad@gmail.com"
},
"records": {
"CNAME": "_8c0674c225f7bd6c72ae80a99574c48a.jkddzztszm.acm-validations.aws"
}
}
@@ -0,0 +1,8 @@
{
"owner": {
"username": "kyaw-hein222"
},
"records": {
"CNAME": "_c274362d40cfec6dc07e8b3ed307939f.jkddzztszm.acm-validations.aws"
}
}
@@ -1,9 +1,9 @@
{
"description": "R2turnTrue - Hosting (ACME Challenge)",
"owner": {
"username": "R2turnTrue",
"email": "r3turntrue@gmail.com"
},
"owner": {
"username": "R2turnTrue",
"email": "r3turntrue@gmail.com"
},
"records": {
"CNAME": "9F66BC05309C823E09A29FCF1AFC5B3D.155FFE16FCBCA762EF3D43120F26FC83.b6a83f162a44c20.comodoca.com"
}
@@ -0,0 +1,9 @@
{
"owner": {
"username": "dmitrymaranik",
"email": "dmitrymaranik@gmail.com"
},
"records": {
"CNAME": "_4dcb6a1e93453062fdcbc5a45ad48f8a.jkddzztszm.acm-validations.aws"
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "amitdutta4255@gmail.com"
},
"records": {
"TXT": ["4EmBRsB60MGYQZdRVs0E_5dqo5hJjGodDzFAsjHdwns"]
"TXT": [
"4EmBRsB60MGYQZdRVs0E_5dqo5hJjGodDzFAsjHdwns"
]
}
}
+3 -1
View File
@@ -4,6 +4,8 @@
"email": "amitdutta4255@gmail.com"
},
"records": {
"TXT": ["xBVVk1_nxck-AbOHBrNGLdlIDHDkej_au2ahk-bYimE"]
"TXT": [
"xBVVk1_nxck-AbOHBrNGLdlIDHDkej_au2ahk-bYimE"
]
}
}
+3 -1
View File
@@ -5,6 +5,8 @@
"email": "reaver.entertainment@hotmail.com"
},
"records": {
"TXT": ["zEDrxAgXDeQVkY8Qh4-KVPlQm6FROmnJUdWYqIxoUA0"]
"TXT": [
"zEDrxAgXDeQVkY8Qh4-KVPlQm6FROmnJUdWYqIxoUA0"
]
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"owner": {
"username": "c0ba"
},
"records": {
"CNAME": "_acme-challenge.c0ba.cdstudio.org"
}
}
+3 -1
View File
@@ -5,6 +5,8 @@
"email": "reaver.entertainment@hotmail.com"
},
"records": {
"TXT": ["devAt0AD4jmuvgyIf20QXnrdhtzyiv_exuTiH-FMyTU"]
"TXT": [
"devAt0AD4jmuvgyIf20QXnrdhtzyiv_exuTiH-FMyTU"
]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "n-o-o-b-z",
"email": "dexmacone@gmail.com"
},
"records": {
"CNAME": "33e55cd9-b598-49a3-a236-d7537427fdbc.acmedns.infinityfree.net"
}
}
@@ -7,4 +7,3 @@
"TXT": "wBrTbLUV7y74AMCIfkBKy0zjJYwJxgR8qj6Ut1TXju0"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"owner": {
"username": "enderliker",
"email": "notender01@gmail.com"
},
"records": {
"CNAME": "0f2f5e2c0176fe51d1b9d3afed94a470._acme.deno.net"
},
"proxied": false
}
+8
View File
@@ -0,0 +1,8 @@
{
"owner": {
"username": "Frqmelikescheese"
},
"records": {
"CNAME": "a39af01a-cf13-4343-b9b1-8faef753226a.acmedns.infinityfree.net"
}
}
@@ -0,0 +1,8 @@
{
"owner": {
"username": "michael-farah"
},
"records": {
"TXT": "Am-ph38L2P6h5SBf-2dxXrKeEK5qDSI0ql9IkAE4GHI"
}
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"owner": {
"username": "hyodu",
"username": "nv8v",
"email": "github.com.haunt330@passinbox.com"
},
"records": {
"CNAME": "4951939c56f543751e9c2e33._acme.deno.dev"
"CNAME": "955b428e845dda23f230ac36169f002f._acme.deno.net"
}
}
+11
View File
@@ -0,0 +1,11 @@
{
"owner": {
"username": "do11ars"
},
"records": {
"TXT": [
"JMtfXRrjnDdROGwx180KoS5xGnQ8Dfp1JW38_Kw6-OQ",
"XNx0OM4ZVxRUXeg-kH8-FHbK-2wOb_iGgVtFm99nzso"
]
}
}
@@ -0,0 +1,9 @@
{
"owner": {
"username": "SulaimanAlizada",
"email": "SulaimanAlizada9@gmail.com"
},
"records": {
"CNAME": "88b86e1d-d7c1-4ae2-bee8-e4e9c5fb9614.acmedns.infinityfree.net"
}
}
@@ -5,6 +5,8 @@
"email": "reaver.entertainment@hotmail.com"
},
"records": {
"TXT": ["Wa6egx_VprU9Ixruf2otVNZYAeevRaWur_kXC2dX2dE"]
"TXT": [
"Wa6egx_VprU9Ixruf2otVNZYAeevRaWur_kXC2dX2dE"
]
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"owner": {
"username": "Listencur",
"email": "noidqiao@gmail.com"
},
"records": {
"CNAME": "e2dfdab9-e9b3-466c-8190-7bd129c87489.auth.acme-dns.io"
}
}
+1 -1
View File
@@ -6,4 +6,4 @@
"records": {
"TXT": "did=did:plc:7by3itciq5ufovihg4s5jt5i"
}
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"owner": {
"username": "notamitgamer"
},
"records": {
"TXT": [
"did=did:plc:flx2xffegotle5js7fjxaikg"
]
}
}
Loaded 100 of 9699 files, more files were not shown because too many files have changed in this diff. Show more