Full Moon is a single-page application built with React Router configured in hash mode. Instead of relying on a server to resolveDocumentation 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.
/about or /projects to the correct bundle, every URL encodes the route in the hash fragment — for example, https://your-site.com/#/about. This means the browser always loads the same index.html (or a per-page shell), and React Router takes over navigation entirely on the client side.
How It Works
React Router runs in hash mode, so all routes take the form/#/route. To support direct URL access and bookmarking on static hosts, each page in the pages/ directory has its own lightweight HTML shell. When a visitor lands on pages/about.html directly, the shell script fires before React mounts and ensures the hash is set correctly before the app boots.
Each static shell does three things in order:
- Sets
window.__STATIC_PAGE_ROUTE__to the canonical route string for that page - Inspects
window.location.hashand redirects to the correct hash if it is missing or still at the root - Loads the same compiled
main.jsbundle shared by every page
Route Table
Every route in the application has a corresponding static HTML shell underpages/.
| Route | Static Shell | Page Title |
|---|---|---|
/ | index.html | Home |
/about | pages/About.html | About |
/skills | pages/Skills.html | Skills |
/work | pages/Work.html | Work |
/projects | pages/Projects.html | Projects |
/case-studies | pages/CaseStudies.html | Case Studies |
/blog | pages/Blog.html | Blog |
/testimonials | pages/Testimonials.html | Testimonials |
/contact | pages/Contact.html | Contact |
Why Hash Routing?
Static file hosts — GitHub Pages, Netlify, S3 static hosting, Vercel static output — serve files directly from a directory tree. When a user navigates tohttps://your-site.com/projects, the host looks for a file at /projects/index.html. If it does not exist, the host returns a 404 error.
Hash routing sidesteps this entirely. Because the hash fragment (#/projects) is never sent to the server, every request resolves to an HTML file that actually exists on disk. The routing logic lives 100% in the browser. No server configuration, no _redirects file, and no catch-all rewrite rule is required.
This also makes the app portable: the same build artifact can be deployed to any static host without modification.
Deployment
Because no server-side routing is required, Full Moon can be deployed to any host that can serve static files:- GitHub Pages — push the repository root to your
gh-pagesbranch or configure Pages to serve from themainbranch root - Netlify — drag and drop the repository root into Netlify Drop, or connect the repo and set the publish directory to
/ - Vercel — import the repository and set the output directory to
/; no build command is needed since the files are pre-built - Any static CDN — upload the repository contents and point your domain at
index.html