This guide walks you through cloning the Full Moon repository, serving its pre-built static files locally, and navigating every route in the browser. Because the repo contains only Vite build output — noDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/full-moon/llms.txt
Use this file to discover all available pages before exploring further.
src/ directory — there is no compile step and no npm install required before you can run the site. By the end you will have the portfolio running locally and understand how the hash-based routing connects each URL to its corresponding HTML shell.
Clone the repository
Clone Full Moon from GitHub to your local machine:The repository contains only static build output:
index.html, the pages/ directory, the components/ directory, and the compiled assets/. No node_modules or package manifest is present, so there is nothing to install before serving.Start a local static server
Serve the repository root with any static file server. The quickest option requires only Node.js to already be installed:Alternatively, use Python’s built-in server if you prefer:Both commands serve the current directory over HTTP on a local port.
npx serve defaults to port 3000; Python defaults to port 8000 unless you specify one.Open the site in your browser
Once the server is running, open the URL it reports — for example:The browser loads
index.html, which immediately bootstraps React and renders the landing page. You will see the starfield background, the fog overlay, the animated full-moon SVG, and the tagline “I cast useEffect() under the full moon.” Click Cross the Threshold to navigate to the About page.Navigate to individual pages
Each page in the When a shell loads, its inline
pages/ directory is a standalone HTML shell. You can navigate to them directly by URL:<script> sets window.__STATIC_PAGE_ROUTE__ and updates window.location.hash, which tells the React app which route to render. The navigation bar rendered by Navigation.js also updates the hash on every link click, so you can browse between pages without ever reloading the server.Exploring Routes
Each route in the application maps to a dedicated static HTML shell file. The table below lists every route alongside its corresponding file:| Route | Static Shell |
|---|---|
/ | index.html |
/about | pages/About.html |
/skills | pages/Skills.html |
/work | pages/Work.html |
/projects | pages/Projects.html |
/case-studies | pages/CaseStudies.html |
/blog | pages/Blog.html |
/testimonials | pages/Testimonials.html |
/contact | pages/Contact.html |
How Routing Works
Full Moon does not use a server-side router or a conventional client-side router package for initial page resolution. Instead, each static HTML shell carries a small inline script in its<head> that runs before React mounts:
window.__STATIC_PAGE_ROUTE__ value tells the React app which page component to render. The window.location.hash assignment ensures the URL bar reflects the current route immediately, even on a hard reload. When users click navigation links, Navigation.js updates window.location.hash directly, and the React app re-renders the matching page component — no server round-trip required.
The landing page (index.html) does not set window.__STATIC_PAGE_ROUTE__; the app defaults to the / (home) route in that case.