5 Minute Website

A guide from the 90s Internet Webring.

You want to put something on the internet. Here's how, from zero to webring member, in six steps.

This is one simple way to do it — there are many others. You could use Neocities, Cloudflare Pages, a VPS, a Raspberry Pi in your closet, whatever. We're describing the GitHub Pages path because it's free, fast, and the webring repo is already on GitHub. Use whatever works for you.


1. Write some HTML

Create a file called index.html and put something in it. Here's a starter:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport"
          content="width=device-width, initial-scale=1">
    <title>My Website</title>
</head>
<body>
    <h1>Hello, world!</h1>
    <p>This is my website. There are many
    like it, but this one is mine.</p>
</body>
</html>

Open it in your browser. You have a website. It just isn't on the internet yet.

Change the text. Add more stuff. Make it yours. You can always come back and edit it later.


2. Put it on GitHub

GitHub is where we'll host your site for free. If you don't have an account, make one.

Option A: The website (easy)

  1. Go to github.com/new
  2. Name your repo (e.g. "my-cool-site")
  3. Make it Public
  4. Click "Create repository"
  5. Click "uploading an existing file"
  6. Drag in your index.html
  7. Click "Commit changes"

Option B: The command line

If you have git installed:

mkdir my-cool-site
cd my-cool-site
git init
git add index.html
git commit -m "my first website"
gh repo create my-cool-site --public
git push -u origin main

(You'll need the GitHub CLI for gh repo create, or you can create the repo on the website and use git remote add origin <url> instead.)


3. Turn on GitHub Pages

This makes GitHub serve your site at username.github.io/repo-name.

  1. Go to your repo on GitHub
  2. Click Settings (top menu)
  3. Click Pages (left sidebar)
  4. Under "Source", pick Deploy from a branch
  5. Select main branch, / (root)
  6. Click Save

Wait a minute or two. Your site is now at https://username.github.io/repo-name.

If you named your repo username.github.io, it'll be at https://username.github.io with no path needed.

Or via the CLI:

gh api repos/USERNAME/REPO/pages \
  -X POST -f source.branch=main \
  -f source.path=/

4. Buy a domain (optional)

Your site already works at github.io. But a custom domain is fun.

Some domain registrars:

A .com is about $10/year. Weird TLDs (.es, .pizza, .lol) can be cheaper or more expensive.

If you don't want a custom domain, skip to step 6.


5. Configure DNS

Point your domain at GitHub Pages.

A. Add a CNAME file to your repo

Create a file called CNAME (no extension) in your repo root containing just your domain:

mycoolsite.com

B. Set DNS records

In your registrar's DNS settings, add:

For an apex domain (mycoolsite.com):

Type  Host  Value
A     @     185.199.108.153
A     @     185.199.109.153
A     @     185.199.110.153
A     @     185.199.111.153

For a subdomain (www.mycoolsite.com):

Type   Host  Value
CNAME  www   username.github.io

Or both! Most people set up the apex domain with A records and add a CNAME for www too.

C. Enable HTTPS

Back in GitHub repo Settings > Pages, check "Enforce HTTPS". GitHub gives you a free SSL certificate.

DNS can take a few minutes to a few hours to propagate. Be patient.


6. Join the webring!

You have a website on the internet. Now let's link it to other websites.

A. Add the webring snippet

Paste this anywhere on your site:

<center>
  <a href="https://90s-internet.com/#prev">&lt;&lt; prev</a> |
  <b>90s Internet Webring</b> |
  <a href="https://90s-internet.com/#next">next &gt;&gt;</a>
  <br>
  <a href="https://90s-internet.com/#random">random</a>
  &middot; <a href="https://90s-internet.com">list</a>
  &middot; <a href="https://github.com/oatsandsugar/90s-internet/issues/new?title=Join%20the%20webring&amp;labels=join">join</a>
</center>

B. Open an issue

Click here to open a join issue. Tell us:

We'll link you into the ring. Welcome to the 90s internet.


Back to the webring · Source