Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/y2k-webring/llms.txt

Use this file to discover all available pages before exploring further.

Y2K Webring outputs a fully static dist/ directory when you run npm run build. Because the app uses hash-based routing (all routes are prefixed with #, e.g. /#/, /#/about, /#/projects), the browser never makes a real navigation request for sub-routes — every link is handled entirely by React Router on the client side. This means you don’t need a _redirects file, a vercel.json with rewrite rules, or any server-side configuration to make deep links work.

Build Output

Running npm run build (powered by Vite) produces the following dist/ structure:
dist/
├── index.html          # Entry point — contains the hash-redirect bootstrap script
├── pages/              # Pre-rendered HTML for each route
│   ├── Home.html
│   ├── About.html
│   └── ...
└── assets/
    ├── main.js         # Vite-compiled JavaScript bundles
    ├── main.css        # Compiled and purged Tailwind CSS
    └── ...             # Additional code-split chunks and assets
  • index.html — The single entry point. It includes an inline script that checks window.location.hash and redirects bare URLs to /#/ so the React app always receives a valid hash route on first load.
  • pages/ — Static HTML snapshots pre-rendered for each route. These improve initial load time and allow crawlers to index page content without executing JavaScript.
  • assets/ — All Vite-compiled JS bundles (including code-split chunks) and the final processed CSS file.

Deploying to GitHub Pages

1

Set the base path (subdirectory deploys only)

If your site will live at https://username.github.io/y2k-webring/ (i.e. a project page, not a user/org root page), the Vite source project’s build config must have a matching base option set to '/y2k-webring/' so that all asset paths resolve correctly. In the source project this is configured before running the build — the compiled dist/ output already embeds the correct paths when the build was performed with that setting.Skip this step if deploying to a root domain (https://username.github.io/).
2

Build the project

npm run build
This produces the dist/ directory described above.
3

Deploy dist/ to the gh-pages branch

Use the gh-pages package to publish the dist/ folder to the gh-pages branch in one command:
npx gh-pages -d dist
This creates (or force-pushes to) the gh-pages branch with the contents of dist/.
4

Enable GitHub Pages in repo settings

  1. Go to your repository on GitHub.
  2. Navigate to Settings → Pages.
  3. Under Branch, select gh-pages and leave the folder as / (root).
  4. Click Save. GitHub will publish the site and show the live URL within a minute or two.

Deploying to Netlify

1

Connect your repository

Log in to netlify.com, click Add new site → Import an existing project, and authorize Netlify to access your GitHub (or GitLab / Bitbucket) account. Select the y2k-webring repository.
2

Set the build command

In the Build settings screen, set:
Build command: npm run build
3

Set the publish directory

Publish directory: dist
4

Deploy

Click Deploy site. Netlify runs the build and publishes the dist/ directory. No _redirects file or netlify.toml redirect rules are needed — hash routing handles all client-side navigation without ever making a server request for a sub-route.

Deploying to Vercel

1

Import your repository

Log in to vercel.com, click Add New → Project, and import your y2k-webring repository from GitHub.
2

Select the Vite framework preset

Vercel auto-detects Vite projects. Confirm that the Framework Preset is set to Vite. If it isn’t detected automatically, select it from the dropdown.
3

Confirm the build command

Build Command: npm run build
4

Confirm the output directory

Output Directory: dist
Click Deploy. Vercel builds and publishes the project. No vercel.json rewrites are required.

Because Y2K Webring uses hash-based routing, every URL your visitors land on — whether https://yoursite.com/, https://yoursite.com/#/about, or https://yoursite.com/#/projects — always causes the browser to request index.html from the server. The hash fragment (#/about) is never sent to the server; it stays in the browser and is read by React Router after index.html loads. This means there are no 404 errors for sub-routes on any static host, and no server-side fallback configuration is required.

Build docs developers (and LLMs) love