Add files via upload

This commit is contained in:
andrewstech
2022-12-01 18:14:48 +00:00
committed by GitHub
commit fda164e41f
21 changed files with 936 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) <https://github.com/tarampampam>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+112
View File
@@ -0,0 +1,112 @@
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://socialify.git.ci/tarampampam/free-domains/image?description=1&font=Raleway&forks=1&issues=1&owner=0&pulls=1&pattern=Solid&stargazers=1&theme=Dark">
<img src="https://socialify.git.ci/tarampampam/free-domains/image?description=1&font=Raleway&forks=1&issues=1&owner=0&pulls=1&pattern=Solid&stargazers=1&theme=Light">
</picture>
<br/>
<br/>
[![Tests Status][badge-tests]][actions]
[![Deploy Status][badge-deploy]][deploy]
</div>
Free subdomains for personal sites, open-source projects, and more. Here is a list of supported domain names:
| Domain name | Features |
|:-------------------------------------:|:---------------------------------------------------------:|
| ⚡ [`*.localplayer.dev`](https://localplayer.dev/) | ![cf][badge-cf] ![dnssec][badge-dnssec] ![ssl][badge-ssl] |
| ⚡ [`*.is-not-a.dev`](https://is-not-a.dev/) | ![cf][badge-cf] ![dnssec][badge-dnssec] ![ssl][badge-ssl] |
> Wildcards (like `*.foo.is-not-a.dev`) are supported too, but the reason for their registration should be very clear and described in detail.
[badge-cf]:https://shields.io/badge/%20-cloudflare-blue?logo=cloudflare&style=plastic?cacheSeconds=3600
[badge-dnssec]:https://shields.io/badge/%20-DNSSEC-blue?logo=moleculer&logoColor=white&style=plastic?cacheSeconds=3600
[badge-ssl]:https://shields.io/badge/SSL-Required-blue?style=plastic?cacheSeconds=3600
## Why?
First of all, I want to answer one important question - "Why are you giving out domains for free?". Because sometimes I need domains for my pet projects, and instead of buying new domains every time, I decided to buy one for everyone, and use subdomains. And why not share them with the community?
## Domains settings
| Option | `*.localplayer.dev` | `*.is-not-a.dev` |
|:--------------------------------------------------------------------------:|:-------------------------:|:-------------------------:|
| [DNSSEC][dnssec] | ✅ | ✅ |
| Email | ❌ | ❌ |
| SSL/TLS * | [Full][ssl-full] | [Full][ssl-full] |
| Always Use HTTPS * | ✅ | ✅ |
| HTTP Strict Transport Security (HSTS) | ✅ | ✅ |
| Minimum TLS Version * | TLS 1.2 | TLS 1.2 |
| Opportunistic Encryption, TLS 1.3 * | ✅ | ✅ |
| WAF (Web Application Firewall) * | ✅ (Medium Security Level) | ✅ (Medium Security Level) |
| Browser Integrity Check * | ✅ | ✅ |
| [Caching Level][caching-levels], Browser Cache TTL * | Standard, 4 hours | Standard, 4 hours |
| [Crawler Hints][crawler-hints] * | ✅ | ✅ |
| [HTTP/2][http2], [HTTP/2 to Origin][http2-to-origin], HTTP/3 (with QUIC) * | ✅ | ✅ |
| [0-RTT Connection Resumption][0rtt] * | ✅ | ✅ |
| [gRPC][grpc], WebSockets * | ✅ | ✅ |
| [Pseudo IPv4][pseudo-ipv4] * | Add header | Add header |
| IP Geolocation (HTTP header `CF-IPCountry`) * | ✅ | ✅ |
| Maximum Upload Size * | 100 MB | 100 MB |
> `*` Available only when proxying (`"proxy": true`) is enabled
[dnssec]:https://developers.cloudflare.com/dns/additional-options/dnssec
[ssl-full]:https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full/
[ssl-flex]:https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/flexible/
[caching-levels]:https://developers.cloudflare.com/cache/how-to/set-caching-levels
[crawler-hints]:https://blog.cloudflare.com/crawler-hints-how-cloudflare-is-reducing-the-environmental-impact-of-web-searches/
[http2]:https://www.cloudflare.com/website-optimization/http2/what-is-http2/
[http2-to-origin]:https://developers.cloudflare.com/cache/how-to/enable-http2-to-origin
[0rtt]:https://developers.cloudflare.com/fundamentals/network/0-rtt-connection-resumption/
[grpc]:https://support.cloudflare.com/hc/en-us/articles/360050483011
[pseudo-ipv4]:https://support.cloudflare.com/hc/en-us/articles/229666767
# How to get one?
1. Star and [fork](https://github.com/open-domains/Register/fork) this repository (follow [this guide](https://github.com/firstcontributions/first-contributions) if you don't know how to make a contributions)
2. Add a new file called `<your-subdomain-name>.<root-domain>.json` in the `./domains` folder to register `<your-subdomain-name>` subdomain
3. Edit it (below is just an **example**, provide a **valid** JSON file with your needs, the format is very strict; format you can [check here](https://jsonlint.com/)):
```json
{
"$schema": "../schemas/domain.schema.json",
"description": "<describe your project in this field>",
"domain": "<is-an.app or 1bt.uk - select one>",
"subdomain": "<your subdomain name>",
"owner": {
"repo": "<https://URL/to/the/repository/with/subdomain/content/sources>",
"email": "<your-public@email.address>"
},
"record": {
"CNAME": "<cname-domain-with-a-dot-at-the-end>",
"TXT": ["list", "of", "required", "txt", "records"],
"A": ["list", "of", "IPv4", "addresses", "like", "a", "127.0.0.1"],
"AAAA": ["list", "of", "IPv6", "addresses", "like", "a", "::1"],
"NS": ["list", "of", "nameservers"]
},
"proxy": false // disable the CF proxy, proxying is always enabled by default
}
```
4. Your pull request will be reviewed and merged. Please, don't ignore the PR checklist. If you ignore this repository rules, your PR will be ignored too. _Make sure to keep an eye on it in case we need you to make any changes!_
5. After the pull request is merged, please allow up to 24 hours for the changes to propagate _(usually, it takes 5..15 minutes)_
6. Enjoy your new domain!
> Domains, used for illegal purposes will be removed and permanently banned. Please, provide a clear description of your resource in the PR.
## If you don't know...
- What is GitHub pages and how to set up a custom domain, read the [docs here](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site)
- The difference between `A`, `CNAME`, and other record types, the article on Wikipedia [is here](https://en.wikipedia.org/wiki/List_of_DNS_record_types)
> 🔍 A few similar services can be [found here](https://free-for.dev/#/?id=domain).
[badge-tests]:https://img.shields.io/github/workflow/status/open-domains/Register/tests?label=tests&logo=github&style=for-the-badge
[badge-deploy]:https://img.shields.io/github/workflow/status/open-domains/Register/deploy?label=deploy&logo=github&style=for-the-badge
[actions]:https://github.com/open-domains/Register/actions
[deploy]:https://github.com/open-domains/Register/actions/workflows/deploy.yml
# This repo was forked from
https://github.com/tarampampam/free-domains
+98
View File
@@ -0,0 +1,98 @@
var regNone = NewRegistrar("none")
var providerCf = DnsProvider(NewDnsProvider("cloudflare"))
var proxy = { // https://stackexchange.github.io/dnscontrol/providers/cloudflare
on: {"cloudflare_proxy": "on"},
off: {"cloudflare_proxy": "off"}
}
/**
* Note: glob() is only an internal undocumented helper function (maybe risky).
*
* @param {String} filesPath
* @returns {{
* name: string,
* data: {
* description: string,
* domain: string,
* subdomain: string,
* owner?: {repo?: string, email?: string},
* record: {TXT?: string[], A?: string[], AAAA?: string[], CNAME?: string, NS?: string[]},
* proxy?: boolean
* }}[]}
*/
function getDomainsList(filesPath) {
var result = []
var files = glob.apply(null, [filesPath, true, '.json'])
for (var i = 0; i < files.length; i++) {
var basename = files[i].split('/').reverse()[0]
var name = basename.split('.')[0]
result.push({name: name, data: require(files[i])})
}
return result
}
var domains = getDomainsList('./domains')
/**
* @type {{}}
*/
var commit = {}
for (var idx in domains) {
var domainData = domains[idx].data
var proxyState = proxy.on // enabled by default
if (!commit[domainData.domain]) {
commit[domainData.domain] = []
}
if (domainData.proxy === false) {
proxyState = proxy.off
}
if (domainData.record.TXT) {
for (var txt in domainData.record.TXT) {
commit[domainData.domain].push(
TXT(domainData.subdomain, domainData.record.TXT[txt]) // https://stackexchange.github.io/dnscontrol/js#TXT
)
}
}
if (domainData.record.CNAME) {
commit[domainData.domain].push(
CNAME(domainData.subdomain, domainData.record.CNAME, proxyState) // https://stackexchange.github.io/dnscontrol/js#CNAME
)
}
if (domainData.record.A) {
for (var a in domainData.record.A) {
commit[domainData.domain].push(
A(domainData.subdomain, IP(domainData.record.A[a]), proxyState) // https://stackexchange.github.io/dnscontrol/js#A
)
}
}
if (domainData.record.AAAA) {
for (var aaaa in domainData.record.AAAA) {
commit[domainData.domain].push(
AAAA(domainData.subdomain, domainData.record.AAAA[aaaa], proxyState) // https://stackexchange.github.io/dnscontrol/js#AAAA
)
}
}
if (domainData.record.NS) {
for (var ns in domainData.record.NS) {
commit[domainData.domain].push(
NS(domainData.subdomain, domainData.record.NS[ns]) // https://stackexchange.github.io/dnscontrol/js#NS
)
}
}
}
for (var domainName in commit) {
D(domainName, regNone, providerCf, commit[domainName])
}
+15
View File
@@ -0,0 +1,15 @@
{
"$schema": "../schemas/domain.schema.json",
"description": "Root domain",
"domain": "is-not-a.dev",
"subdomain": "@",
"owner": {
"repo": "https://github.com/open-domains/Register"
},
"record": {
"TXT": [
"v=spf1 -all"
]
},
"proxy": false
}
+27
View File
@@ -0,0 +1,27 @@
{
"$schema": "../schemas/domain.schema.json",
"description": "Root domain",
"domain": "localplayer.dev",
"subdomain": "@",
"owner": {
"repo": "https://github.com/open-domains/Register"
},
"record": {
"TXT": [
"v=spf1 -all"
],
"A": [
"185.199.108.153",
"185.199.109.153",
"185.199.110.153",
"185.199.111.153"
],
"AAAA": [
"2606:50c0:8000::153",
"2606:50c0:8001::153",
"2606:50c0:8002::153",
"2606:50c0:8003::153"
]
},
"proxy": false
}
+14
View File
@@ -0,0 +1,14 @@
{
"$schema": "../../schemas/domain.schema.json",
"description": "DKIM record",
"domain": "is-an.app",
"subdomain": "*._domainkey",
"owner": {
"repo": "https://github.com/open-domains/Register"
},
"record": {
"TXT": [
"v=DKIM1; p="
]
}
}
+14
View File
@@ -0,0 +1,14 @@
{
"$schema": "../../schemas/domain.schema.json",
"description": "DKIM record",
"domain": "1bt.uk",
"subdomain": "*._domainkey",
"owner": {
"repo": "https://github.com/open-domains/Register"
},
"record": {
"TXT": [
"v=DKIM1; p="
]
}
}
+14
View File
@@ -0,0 +1,14 @@
{
"$schema": "../../schemas/domain.schema.json",
"description": "DMARC record",
"domain": "is-an.app",
"subdomain": "_dmarc",
"owner": {
"repo": "https://github.com/open-domains/Register"
},
"record": {
"TXT": [
"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"
]
}
}
@@ -0,0 +1,14 @@
{
"$schema": "../../schemas/domain.schema.json",
"description": "DMARC record",
"domain": "1bt.uk",
"subdomain": "_dmarc",
"owner": {
"repo": "https://github.com/open-domains/Register"
},
"record": {
"TXT": [
"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"
]
}
}
+398
View File
@@ -0,0 +1,398 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": {
"type": "string",
"description": "Path to the schema file"
},
"description": {
"type": "string",
"minLength": 4
},
"domain": {
"type": "string",
"enum": [
"1bt.uk",
"is-an.app"
]
},
"subdomain": {
"type": "string",
"pattern": "^([a-z0-9_*.-]{2,64}|@)$",
"not": {
"enum": [
"*",
"a11y",
"about",
"account",
"accounts",
"ad",
"ads",
"admin",
"admins",
"answer",
"answers",
"api",
"apis",
"app",
"apps",
"archive",
"archives",
"array",
"arrays",
"asm",
"async",
"awesome",
"backup",
"backups",
"base",
"basic",
"basics",
"blog",
"blogs",
"book",
"books",
"bot",
"bots",
"browser",
"browsers",
"bug",
"bugs",
"build",
"builds",
"business",
"career",
"cdn",
"center",
"chat",
"chats",
"client",
"clients",
"cloud",
"code",
"company",
"console",
"contact",
"contacts",
"cookie",
"cookies",
"copyright",
"copyrights",
"core",
"css",
"data",
"db",
"ddns",
"deal",
"debug",
"demo",
"demos",
"dev",
"devs",
"develop",
"developer",
"developers",
"dir",
"dirs",
"dns",
"doc",
"docs",
"domain",
"domains",
"donate",
"dyn",
"ecma",
"editor",
"email",
"emails",
"es2015",
"faq",
"faqs",
"feed",
"file",
"find",
"free",
"front",
"ftp",
"function",
"functions",
"fund",
"funds",
"game",
"games",
"get",
"git",
"global",
"globals",
"group",
"groups",
"headquarter",
"help",
"home",
"homepage",
"host",
"hq",
"html",
"i18n",
"imap",
"index",
"info",
"io",
"js",
"json",
"l10n",
"legal",
"legals",
"libraries",
"lib",
"license",
"licenses",
"like",
"link",
"live",
"log",
"logs",
"login",
"logo",
"logos",
"logout",
"loop",
"love",
"mail",
"main",
"map",
"maps",
"market",
"master",
"media",
"meet",
"member",
"members",
"mobile",
"mobiles",
"mx",
"my",
"native",
"net",
"network",
"now",
"ns",
"ns1",
"ns2",
"online",
"open",
"orig",
"origin",
"page",
"pages",
"password",
"passwords",
"permalink",
"permalinks",
"plain",
"pop3",
"portal",
"portals",
"pub",
"pubs",
"raw",
"readme",
"regex",
"register",
"registration",
"remote",
"rest",
"root",
"roots",
"rss",
"run",
"script",
"scripts",
"secure",
"serv",
"server",
"servers",
"service",
"services",
"shop",
"shops",
"site",
"sites",
"smtp",
"socket",
"source",
"sources",
"ssh",
"standard",
"standards",
"store",
"stores",
"sub",
"subs",
"subdomain",
"subdomains",
"subscribe",
"support",
"sync",
"system",
"systems",
"tag",
"tags",
"team",
"teams",
"tech",
"terminal",
"test",
"this",
"that",
"tip",
"tool",
"tools",
"topic",
"topics",
"translate",
"trend",
"trends",
"trick",
"tricks",
"trust",
"trusted",
"tutorial",
"tutorials",
"tweak",
"tweaks",
"type",
"types",
"unit",
"units",
"united",
"unsubscribe",
"uri",
"uris",
"url",
"urls",
"user",
"users",
"util",
"utils",
"utility",
"validate",
"var",
"vars",
"virtual",
"vpn",
"vps",
"wasm",
"watch",
"web",
"webmail",
"webmaster",
"world",
"ww",
"ww1",
"ww2",
"ww3",
"www",
"www1",
"www2",
"www3",
"xml"
]
}
},
"owner": {
"type": "object",
"additionalProperties": false,
"properties": {
"repo": {
"type": "string",
"description": "Path to the github repository"
},
"email": {
"type": "string",
"description": "Email address"
}
}
},
"record": {
"type": "object",
"additionalProperties": false,
"properties": {
"TXT": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 255
}
},
"A": {
"type": "array",
"items": {
"type": "string",
"pattern": "^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$"
}
},
"AAAA": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))$"
}
},
"CNAME": {
"type": "string",
"minLength": 1,
"pattern": "^[a-z0-9_./-]*\\.$"
},
"NS": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9._-]{3,}$"
}
}
},
"anyOf": [
{
"required": [
"TXT"
]
},
{
"required": [
"A"
]
},
{
"required": [
"AAAA"
]
},
{
"required": [
"CNAME"
]
},
{
"required": [
"NS"
]
}
]
},
"proxy": {
"type": "boolean",
"default": true
}
},
"required": [
"$schema",
"description",
"domain",
"subdomain",
"record"
]
}
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/favicon/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="161.000000pt" height="161.000000pt" viewBox="0 0 161.000000 161.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,161.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M748 1439 c-242 -26 -457 -195 -532 -421 -112 -333 57 -682 392 -806
138 -51 351 -38 482 29 78 40 107 61 172 126 72 70 109 127 144 218 35 93 35
95 40 205 11 276 -157 520 -423 617 -37 13 -94 26 -128 29 -33 3 -64 6 -70 8
-5 1 -40 -1 -77 -5z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 770 B

+165
View File
@@ -0,0 +1,165 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>A free subdomain for developers on the web</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=source-sans-pro:400,700" rel="stylesheet" />
<link rel="apple-touch-icon" sizes="152x152" href="favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png">
<!-- <link rel="manifest" href="webmanifest.json">-->
<link rel="mask-icon" href="favicon/safari-pinned-tab.svg" color="#5bbad5">
<style>
:root {
--color-bg-primary: #fff;
--color-bg-secondary: #00a6d5;
--color-bg-inverted: #151515;
--color-text-primary: #151515;
--color-text-inverted: #fff;
}
@media (prefers-color-scheme: dark) {
:root {
--color-bg-primary: #2f2f2f;
--color-bg-secondary: #3bc1e1;
--color-bg-inverted: #fff;
--color-text-primary: #fff;
--color-text-inverted: #2f2f2f;
}
}
body, html {
background-color: var(--color-bg-primary);
color: var(--color-text-primary);
font-family: 'Source Sans Pro', Arial, Helvetica, sans-serif;
font-size: 16px;
margin: 0;
padding: 0;
height: 100vh;
}
body {
display: flex;
justify-content: center;
align-items: center;
}
main {
width: 800px;
}
header {
margin-bottom: 2em;
}
.url-example {
position: relative;
background-color: var(--color-bg-secondary);
color: var(--color-text-inverted);
padding: 10px 20px;
font-weight: 700;
font-size: 3em;
z-index: 1;
}
.url-example:after {
position: absolute;
content: "";
top: 0;
width: 1.65em;
height: 1.65em;
right: -0.825em;
transform: scale(0.3, 0.707) rotate(45deg);
z-index: -1;
background-color: var(--color-bg-secondary);
}
p.large {
font-size: 1.7em;
}
p {
font-size: 1.4em;
font-weight: 400;
padding: 1em 0 0 0;
margin: 0;
line-height: 1.5;
}
p.small {
font-size: 1em;
}
a {
color: var(--color-bg-secondary);
}
@media (max-width: 800px) {
main {
padding: 0 30px;
}
.url-example {
font-size: 1.6em;
padding: 6px 10px;
}
p.large {
font-size: 1.3em;
}
p {
font-size: 1.1em;
}
p.small {
font-size: .8em;
}
}
</style>
</head>
<body>
<main>
<header>
<span class="url-example">https://<span class="typed"></span>.is-an.app</span>
</header>
<article>
<p class="large">
Are you a developer exploring an awesome domain name for your application, personal website, or project?
You came to the right place!
</p>
<p>
This service offers a handy subdomain service for you to have a subdomain via <strong>CNAME</strong>,
<strong>A</strong>, <strong>AAAA</strong>, or <strong>NS</strong> DNS records.
In limited cases, you can use a wildcard subdomain.
</p>
<p>
Fork the <a href="https://github.com/tarampampam/free-domains">repository</a>, add a subdomain, and send a <a
href="https://github.com/tarampampam/free-domains/pulls" target="_parent">Pull Request</a>. We will make it
work!
</p>
<p class="small">
Crafted with ❤ by <a href="https://github.com/tarampampam">@tarampampam</a>
</p>
</article>
</main>
<script src="https://cdnjs.cloudflare.com/ajax/libs/typed.js/2.0.12/typed.min.js"
integrity="sha512-3J8teBiHrSyaaRBajZyIEtpDsXdPq1gsznKWIVb5CnorQuFhjWGhWe54z8YNnHHr7MZuExb9m5kvf964HiT1Sw=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
new Typed('.typed', { // https://github.com/mattboldt/typed.js
strings: ['example', 'foo', '4free', 'your'],
typeSpeed: 140,
backDelay: 2000,
showCursor: false,
loop: true,
})
</script>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
User-agent: ia_archiver
Disallow: /
User-agent: *
+14
View File
@@ -0,0 +1,14 @@
{
"name": "",
"short_name": "",
"icons": [
{
"src": "/favicon/android-chrome-144x144.png",
"sizes": "144x144",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}