DevHaunt uses React Router v6’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/dev-haunt/llms.txt
Use this file to discover all available pages before exploring further.
<Routes> and <Route> components for all client-side navigation. Because the project is deployed as a collection of static HTML files with no server-side router, it relies on hash-based routing — every URL takes the form /#/route-name. Each of the nine pages also has a corresponding HTML file in the pages/ directory that activates the correct hash before the React app mounts.
The route table
The following nine routes are declared inassets/main.js:
| Path | Page component | Navigation label | Halloween concept |
|---|---|---|---|
/ | HomePage | The Porch | Landing / hero with animated haunted house |
/about | AboutPage | Trick or Treat | Bio section with TrickOrTreatBag illustration |
/projects | ProjectsPage | Graveyard | Project cards rendered as Tombstone components |
/skills | SkillsPage | Pumpkin Patch | Skills grid rendered as JackOLantern components |
/work | WorkPage | Hall of Doors | Work history rendered as DoorPanel components |
/case-studies | CaseStudiesPage | Evidence | Case studies inside an EvidenceBoard layout |
/blog | BlogPage | Tales | Blog articles displayed as Postcard components on a wooden shelf |
/testimonials | TestimonialsPage | Spirits Speak | Testimonials rendered as FloatingGhost components |
/contact | ContactPage | Ring Doorbell | Contact form via the DoorbellForm component |
<Routes> block in assets/main.js is:
Navigation array
TheNavigation component in components/Navigation.js reads from a navLinks array to render both the desktop pill nav and the mobile dropdown. The array maps each route path to its Halloween-themed label:
Navigation component uses the useLocation hook from react-router-dom to read the current pathname and apply the active pumpkin-orange color to the matching link:
Static HTML pages and the hash redirect pattern
Every route other than/ has a matching HTML file in pages/. For example, pages/About.html contains:
#/about). React Router then reads that hash and renders the right page component. All subsequent in-app navigation uses React Router’s client-side transitions without any further page loads.
The
window.__STATIC_PAGE_ROUTE__ assignment is a marker that identifies which static entry point was loaded. It is currently informational — the actual routing is driven entirely by the hash value the script sets.Adding a new route
To add a new page to DevHaunt, three things must change:Add the page component to assets/main.js
In the original source, define a new React component function and add it to the
<Routes> block. In the compiled assets/main.js, the <Routes> block appears near the end of the file (search for the existing route paths to locate it). If editing the compiled bundle directly, add a new Route call in the minified format that matches the surrounding code — this is fragile and only practical for small changes:Add the nav link to components/Navigation.js
The
navLinks array (variable ea in the compiled bundle) drives both the desktop pill nav and the mobile dropdown. Add your new path and label to the array in components/Navigation.js:Create the static HTML entry point
Copy any existing file from Also update the
pages/ (for example, pages/About.html) to pages/Spellbook.html. Update the two values in the inline script to match your new route:<title> tag in the <head> to reflect the new page name. Once the static HTML file exists, the new route is accessible via direct URL (/pages/Spellbook.html) as well as through in-app navigation.