Fortune Seeker is distributed as a Vite static build output rather than raw source files. When Vite compiles a React application it produces a self-contained bundle: an HTML shell, a JavaScript bundle containing the entire React app, a compiled CSS stylesheet, and several smaller JS modules for shared dependencies. All of these files live in the repository root and theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/fortune-seeker/llms.txt
Use this file to discover all available pages before exploring further.
assets/ folder, ready to serve directly from any static host. The components/ folder sits alongside them, containing the individual ES module components that index.html preloads via <link rel="modulepreload"> tags.
Directory Tree
Key Files Explained
| File / Folder | Purpose |
|---|---|
index.html | The single HTML shell Vite uses as the SPA entry point. It mounts the React app into <div id="root"> and preloads all JS modules. |
home.html – writing.html | Per-route HTML files for GitHub Pages compatibility. Each file is a copy of the SPA shell so that direct URL navigation resolves correctly. |
.nojekyll | An empty marker file that tells GitHub Pages not to process the repository with Jekyll, preventing it from ignoring assets/ and other underscore-prefixed paths. |
assets/ | Vite’s compiled build output. Contains the React app bundle, Tailwind stylesheet, and split dependency chunks. |
components/ | Individual compiled ES module components loaded via modulepreload. |
Static HTML Pages
GitHub Pages serves static files and does not understand client-side routing. When a visitor navigates directly tohttps://your-username.github.io/fortune-seeker/about, GitHub Pages looks for a file named about.html or about/index.html. Without it the server returns a 404.
Fortune Seeker solves this with a per-route HTML file for every React Router path. Each file — home.html, about.html, projects.html, skills.html, work.html, casestudies.html, articles.html, writing.html, testimonials.html, contact.html — is a copy of index.html that loads the same assets/main.js bundle. React Router takes over once the bundle boots and renders the correct page component based on the URL path.
Assets Folder
Theassets/ folder is the direct output of vite build. It contains:
| File | Contents |
|---|---|
main.js | The full compiled React application. Every page component, all route definitions, and all business logic are bundled here. |
main.css | The compiled Tailwind CSS stylesheet plus custom utility classes for 3D card transforms (preserve-3d, backface-hidden, rotate-y-180), the gold text-shadow effect, and the waver keyframe animation. Google Fonts for Cormorant Garamond and Inter are imported at the top of this file. |
index.js | The Framer Motion library, including AnimatePresence for page transitions. |
proxy.js | Framer Motion’s internal motion component factory (motion.div, motion.path, etc.) and animation utilities. |
jsx-runtime.js | The React JSX transform runtime (jsx, jsxs, Fragment). |
createLucideIcon.js | The Lucide React icon factory function used to construct icon components such as Flame, Send, Sparkles, and Github. |
Components Folder
Each file incomponents/ is a compiled ES module. index.html uses <link rel="modulepreload"> to instruct the browser to fetch these modules early, before main.js executes and imports them. This eliminates a round-trip waterfall at startup.
| Component | What it does |
|---|---|
TarotCard.js | Renders a two-faced card with a 3D CSS flip animation driven by Framer Motion. Accepts frontContent, backContent, isFlipped, and an onClick handler. Used on the homepage, /about, /projects, and /case-studies. |
CrystalBall.js | A glass sphere visual with radial gradient lighting and a layered glow effect. Featured prominently on the /about page. |
CandleFlame.js | Particle-based animated flame rendered with Framer Motion. Used as an atmospheric accent throughout the site. |
Layout.js | The top-level app shell that wraps every page. Mounts Starfield, CustomCursor, Navigation, and CandleFlame as persistent background layers. |
Navigation.js | A slide-in drawer navigation built with React Router v6 hooks and Framer Motion. Also bundles the React DOM render call that mounts the app into #root. |
Starfield.js | A <canvas> element that fills the viewport with drifting gold particles connected by faint lines when they pass within 100 px of each other. Runs on requestAnimationFrame and responds to window resize. |
CustomCursor.js | Replaces the default OS cursor with a glowing gold dot that tracks mouse position via Framer Motion’s useMotionValue. The default cursor is hidden globally in main.css. |
Because this repository is a static build export, the original TypeScript and JSX source files are not included. The
.js files in components/ are compiled ES modules — they are valid JavaScript but are not human-editable source code. To modify component behaviour, fork the project, rebuild it from source with npm run build, and commit the new output. The compiled bundle in assets/main.js contains all page components and cannot be edited directly.