Getting y2k-web running on your machine takes less than five minutes. The project has no backend — it is a fully static React 18 SPA bundled by Vite — so all you need is Node.js, a package manager, and a terminal. Follow the steps below to go from zero to a glowing retro portfolio in your browser.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/y2k-web/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Make sure the following are installed before you begin:
- Node.js 18 or later — Vite 5 and Framer Motion 11 both require Node 18+. Check your version with:
- Git — needed to clone the repository. Verify with:
Clone the repository
Clone the repository from GitHub and change into the project directory:The repository includes the pre-built
assets/ output, the components/ source files, and the pages/ static HTML shells — everything you need is already in the repo.Install dependencies
Install all project dependencies using your preferred package manager:This installs React 18, React Router, Framer Motion 11, Tailwind CSS, Vite, and all their transitive dependencies into
node_modules/.Start the development server
Launch the Vite dev server with hot-module replacement:Vite will start and print a local URL to your terminal. Open it in your browser:
y2k-web uses hash-based routing, so all routes are accessed via the
# fragment — for example http://localhost:5173/#/about or http://localhost:5173/#/projects. This means the Vite dev server serves a single index.html entry point and React Router handles everything after the # entirely in the browser.Build for production
When you are ready to deploy, generate an optimised production bundle:Vite compiles and minifies the entire application into the
dist/ directory. The output includes:dist/assets/main.js— the bundled and tree-shaken JavaScriptdist/assets/main.css— the compiled Tailwind stylesheetdist/index.html— the root entry pointdist/pages/— the static HTML shells for each hash route
Preview the production build
Before deploying, you can serve the Vite’s preview server starts on port 4173 by default:This is the same bundle that will be served in production — a great final sanity-check before pushing to GitHub Pages or any other static host.
dist/ output locally to verify everything looks correct:Your first customization
The most common first edit is updating the navigation links to reflect your own page labels or to add a new route. The navbar is driven by a simple array of{ path, label } objects defined in the application source. Here is the full nav items array as it ships:
"Resume" to "CV" — update the corresponding label value:
/photography):
- Add an entry to the array:
- Create a corresponding component and register it with React Router alongside the existing routes.
-
Copy one of the existing files in
pages/(for examplepages/About.html) and update the injectedwindow.__STATIC_PAGE_ROUTE__value and hash redirect to match your new path:
y2k-web uses hash-based routing (
#/about-style URLs) via React Router’s HashRouter. This is intentional — hash routing requires zero server-side configuration, which makes the site fully compatible with GitHub Pages and other static file hosts that cannot be configured to rewrite all requests to index.html.