Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/spell-index/llms.txt

Use this file to discover all available pages before exploring further.

Spell Index ships as a fully compiled static site — the repository root contains index.html, pre-built JS and CSS assets, and a .nojekyll marker ready for GitHub Pages. There is no package.json, no build step required to run it, and no backend or environment variables needed. Getting the site running locally takes under a minute.
Because the repository contains only the compiled output, there is nothing to install or build before serving it. If you want to modify the source, see the Building from source section below.

Running the built site

1

Clone the repository

Clone the Spell Index repo from GitHub to your local machine:
git clone https://github.com/apursley2012/spell-index.git
cd spell-index
2

Serve the static files locally

Because the site uses client-side routing (React Router v6), you need an HTTP server that serves index.html for all paths — opening index.html directly in a browser will break sub-routes. Use any static file server that supports SPA fallback routing.Option A — serve (recommended, zero config):
npx serve .
This starts a server at http://localhost:3000 by default. serve automatically falls back to index.html for unknown paths, so all React Router routes work correctly.Option B — Python built-in server (serves files only; deep links won’t work):
python -m http.server 8080
Open http://localhost:8080 in your browser. Navigate using the sidebar — do not type sub-routes directly into the address bar when using the Python server.
Spell Index sets cursor: none globally in assets/main.css, replacing the system pointer with the animated CursorTrail component. If you rely on OS-level cursor visibility, open assets/main.css and remove or override the cursor: none rules.
3

Explore the app in your browser

Open http://localhost:3000 (or whichever port your server reports). You will land on the home page — The Summoning (/) — with the full sidebar navigation visible on desktop (≥1024 px wide) or a hamburger menu on mobile.All ten routes are available immediately:
/               → The Summoning    (Home)
/about          → Origin Story     (About)
/skills         → Dark Arts        (Skills)
/projects       → Conjurings       (Projects)
/work           → Day Job Spells   (Work)
/case-studies   → Post-Mortems     (Case Studies)
/articles       → Scrolls          (Articles)
/articles/:slug → (Article detail)
/testimonials   → Testimony        (Testimonials)
/contact        → Send a Raven     (Contact)
Each route is wrapped in PageTransition, which applies a Framer Motion opacity/blur/y entrance and exit animation on every navigation.

Deploying the static site

The repository is ready to deploy to any static host without modification. The .nojekyll file at the repo root tells GitHub Pages not to process files with Jekyll. GitHub Pages Push the repository to a GitHub repo and enable Pages from the repository settings, pointing it at the root of the main branch. No build command is required. Netlify Drag the cloned folder into the Netlify dashboard, or connect the GitHub repo. Set the publish directory to . (repo root) and leave the build command blank. Configure a redirect rule so all paths fall back to index.html:
/* /index.html 200
Add this as a _redirects file in the repo root, or configure it under Redirects in the Netlify UI. Vercel Import the GitHub repo in the Vercel dashboard. Set the framework preset to Other and the output directory to . (repo root). Vercel automatically handles SPA fallback routing.

Building from source

The repository contains only the compiled Vite build output — there is no src/ directory, no package.json, no tailwind.config.js, and no vite.config.js. If you want to customise the site, you will need to reconstruct the source project using the same stack.
To rebuild Spell Index from scratch, create a new Vite + React project and install the dependencies that are bundled in the compiled output:
npm create vite@latest spell-index -- --template react
cd spell-index
npm install react-router-dom framer-motion tailwindcss @tailwindcss/vite lucide-react
Replicate the color tokens from the compiled CSS into your Tailwind configuration:
// tailwind.config.js (example — reconstruct to match the compiled palette)
export default {
  theme: {
    extend: {
      colors: {
        midnight: "#0a0a1a",
        ink:      "#1a0a2e",
        void:     "#05050a",
        parchment:"#e8dcc7",
        amber:    "#f5c45a",
        teal:     "#3dd6c4",
      },
      fontFamily: {
        cinzel: ["Cinzel", "serif"],
        inter:  ["Inter", "sans-serif"],
      },
    },
  },
}
The 16 custom components are the heart of the UI. Each is pre-built in components/witchy/ in the compiled repo — use those files as a reference when reconstructing the source. Run the dev server once you have your source files in place:
npm run dev
Vite will start a local server at http://localhost:5173 with hot module replacement enabled.

Build docs developers (and LLMs) love