Website Review
What is JS.ORG?
JS.ORG is a free subdomain service for JavaScript projects, run since 2015. It gives you a clean URL such as yourproject.js.org that points at a GitHub Pages site you already control. You keep ownership of the repository and its content; JS.ORG only provides the domain name.
The main catch is the content requirement: your page must have a clear connection to JavaScript. A personal portfolio, a library demo, documentation, or a small tool all fit. An unrelated blog or a parked page does not.
How it works
- Create or open a GitHub Pages site and add real content.
- Pick a subdomain based on your GitHub username or repository name — for
foo.github.io/bar, eitherfoo.js.orgorbar.js.orgis possible. - Add a
CNAMEfile to the repo (in thegh-pagesbranch for project pages) containing just the chosen domain. - Open a pull request adding your subdomain to the JS.ORG domain list. It typically goes live within 24 hours, though naming conflicts can slow things down.
Who it suits
- Library and tool authors who want a memorable docs or demo URL without buying a domain.
- Students and hobbyists publishing a first JavaScript project.
- Maintainers of small open-source projects who want something shorter than a
github.ioaddress.
It suits you less if you need full DNS control, email on the domain, or a name unrelated to your GitHub account or repo. For those, a registered domain is the better route.
Trade-offs to weigh
| JS.ORG subdomain | Own domain | |
|---|---|---|
| Cost | Free | Registration and renewal fees |
| DNS control | Limited to the subdomain | Full |
| Naming | Tied to username or repo name | Anything available |
| Portability | Stays with JS.ORG | Yours to move |
Next step
If your project is JavaScript-related and already on GitHub Pages, check whether your username or repo name gives you a subdomain you would be happy to share. If the name is awkward or you expect to outgrow GitHub Pages, register your own domain instead. Either way, read the JS.ORG terms first, since as the repository owner you carry responsibility for everything published under the subdomain.
How do I get a free .js.org subdomain for my GitHub Pages project?
You get a free *.js.org subdomain by hosting your project on GitHub Pages and then asking JS.ORG to point one of its subdomains at it. JS.ORG doesn't host your files; it provides the custom URL, while GitHub Pages serves the content. JS.ORG
The four-step process
- Set up a GitHub Pages site on your GitHub account and publish real content. The page should have a clear connection to JavaScript — a library, tool, demo, documentation or project page qualifies; an unrelated personal blog does not.
- Pick the subdomain name. It must match either your GitHub username or your repository name. For a Pages URL like
http://foo.github.io/bar, you can requestfoo.js.orgorbar.js.org. - Add a file named
CNAMEto your repository (in thegh-pagesbranch for project pages) containing a single line with the chosen domain, such asfoo.js.org— no quotes, no extra text. - Open a pull request in the JS.ORG GitHub repository to add your subdomain to the list of existing domains. The new URL typically goes live within 24 hours, so watch the pull request in case of a naming conflict or a follow-up question.
Practical things to know
- You keep full control of your published content, and with that comes responsibility for it — including the legal and editorial duties of running a public site.
- The main trade-off is the naming constraint: you can't pick an arbitrary brand name unless it happens to be your username or repo name. If you want
mycoolproject.js.orgbut the repo is called something else, rename the repo or accept the alternative. - Conflicts are possible. Popular usernames and repo names may already be taken, which is why the pull request step exists as a check rather than an automatic approval.
- A
.js.orgURL signals to other JavaScript developers that the project is relevant to them, which is useful for libraries, CLI tools and small documentation sites. It is less suitable for a commercial product that needs its own brand domain.
A concrete example
Suppose your GitHub username is ada and you publish a small date-parsing library at https://ada.github.io/dateparse. You could request ada.js.org or dateparse.js.org. If dateparse.js.org is already claimed, ada.js.org still works, and you can link to the specific project path from your README.
Next step
Before starting, check whether your preferred name is already in the JS.ORG domain list. If it is, choose the other option (username or repo name) and proceed with the CNAME file and pull request. If you'd rather use a domain you fully own, GitHub's own custom domain documentation is the alternative path.
What content does my page need to qualify for a JS.ORG subdomain?
Your page needs "reasonable content with a clear connection to JavaScript," per JS.ORG's own description. In practice that means the site should be recognizably about JavaScript or built for the JavaScript community — a library, framework, tool, demo, documentation site, tutorial collection, or a personal developer page centered on JS work. A generic blog, portfolio, or business page with no JS angle is the kind of thing likely to draw a question on your pull request.
A few practical points from how the process works:
- The subdomain is tied to a GitHub Pages site, so the content has to actually be live there before you request the URL.
- You choose the name from your existing GitHub Pages URL — for
foo.github.io/bar, eitherfoo.js.orgorbar.js.orgworks. - JS.ORG reviews the pull request that adds your subdomain, and naming conflicts or content questions are raised there. That review is where the "clear connection to JavaScript" test gets applied.
A concrete test: if a visitor landed on your page knowing nothing about you, would they immediately see why it belongs under a JavaScript domain? A project README-style page for a JS library passes easily. A page about your photography hobby does not, even if you wrote it in JavaScript.
Next step: before opening the pull request, write one sentence describing the JS connection and check whether the page itself makes that obvious within the first screen. If it doesn't, add a short description or link to the related repository. Note that you keep full control and full responsibility for what you publish — JS.ORG states that publishing rights and duties stay with you.
If you want a subdomain without that content constraint, a general free host is a better fit; JS.ORG's value is the JS-specific URL, and the content rule is the price of it.
Can I use my GitHub username or repository name as the subdomain?
Yes. JS.ORG lets you derive the subdomain from your existing GitHub Pages URL, so you can use either your GitHub username or your repository name.
According to the site's own instructions, if your GitHub Pages URL is http://foo.github.io/bar, then either foo.js.org or bar.js.org is possible. In other words:
- Username-based:
foo.js.org— good when the project is tied to you personally or when you want one recognizable namespace across several repos. - Repo-based:
bar.js.org— good when the project has its own identity and might later move or be handed to someone else.
How to set it up
- Create or open your GitHub Pages site and make sure it has real content clearly related to JavaScript.
- Pick your subdomain based on the existing Pages URL, as above.
- Add a file named
CNAMEto your repo (in thegh-pagesbranch for project pages) containing a single line with your chosen domain, such asfoo.js.org. - Open a pull request on the JS.ORG repository adding your subdomain to the list of existing domains.
The site says the new URL should go live within 24 hours, and advises watching your pull request in case of a naming conflict or a follow-up question.
What to weigh before choosing
| Choice | Best for | Trade-off |
|---|---|---|
| Username subdomain | Personal portfolios, multiple small projects | Name is tied to your account; less fitting if the project grows beyond you |
| Repo subdomain | A single named project or library | Renaming the repo later may mean redoing the subdomain request |
One practical point: the subdomain has to match part of your current GitHub Pages URL, so decide before you publicize the address. If you expect the project to outlive your involvement, the repo name usually ages better.
As a next step, check whether the name you want is already taken in the JS.ORG domain list before you write your CNAME file — that avoids doing the work twice if there's a conflict. You keep full control over the published content, but the site notes that responsibility for what you publish stays with you.
How long does it take for a new JS.ORG subdomain to go live?
A new JS.ORG subdomain typically goes live within 24 hours of your pull request being accepted. The site states this directly: after you add your subdomain to the JS.ORG list via a pull request, "Your new URL should go live within 24 hours."
Two practical points worth knowing:
- The 24-hour window starts after your pull request is processed, not when you first create the GitHub Page or add the CNAME file.
- The site advises keeping an eye on your pull request in case of a naming conflict or a question from the maintainers. A conflict can delay things beyond that window, so respond promptly if asked.
What to do while you wait
Set up your GitHub Page content and CNAME file first, then open the pull request. If the subdomain is a priority, check the pull request after a day; if there's no response or a conflict is flagged, address it directly in the thread rather than opening a new request.
For background on the service, see JS.ORG.
Who owns and controls the content published on a JS.ORG subdomain?
The repository owner keeps complete control over the content published on a JS.ORG subdomain. JS.ORG itself does not take editorial control or ownership of your page: it approves the subdomain name and points it at your GitHub Pages site, while you remain responsible for everything you publish and for the rights and duties that come with running a public website.
In practice, that split looks like this:
- You control: the site's files, text, images, design and updates, held in your own GitHub repository.
- JS.ORG controls: the subdomain namespace, meaning it decides whether your requested name is granted and whether it stays in the domain list.
- You are responsible: copyright, licensing, privacy notices and legal compliance for the published content.
A useful next step if you are considering this: treat the subdomain as a naming privilege rather than a hosting service. Before applying, make sure your page has clear, reasonable JavaScript-related content, pick a subdomain name that matches your existing GitHub Pages URL, and add a CNAME file to your repository with that single domain line. Then open a pull request adding your subdomain to the JS.ORG list.
One practical decision criterion: choose a JS.ORG subdomain when you want a short, memorable JavaScript-flavoured URL on top of GitHub Pages and you are comfortable managing content yourself. If you need guaranteed uptime, a custom domain you fully own, or hosting beyond static pages, a different setup may suit you better. The trade-off is simple — you get a sleeker address and community recognition, but ownership of the content, and the obligations attached to it, stay entirely with you.
User reviews (0)