Skip to main content

Documentation Index

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

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

Choose Your Destiny is designed to be forked and made your own. The retro neon aesthetic is driven by CSS custom properties you can override at runtime without rebuilding anything, while deeper changes to portfolio content, fonts, and routes require the original source project. This guide covers what you can change directly on the deployed files, and what requires rebuilding from source.

1. Changing Neon Colors

All five neon accent colors and both background shades are declared as CSS custom properties on :root in assets/main.css. Every glow-*, text-glow-*, border-neon-*, and bg-neon-* utility class reads from these variables at runtime.
/* assets/main.css — :root block */
:root {
  --neon-magenta: #ec4899;
  --neon-cyan:    #22d3ee;
  --neon-purple:  #a855f7;
  --neon-lime:    #a3e635;
  --neon-orange:  #fb923c;
  --bg-dark:      #050505;
  --bg-panel:     #0a0a0a;
}
Each variable is used consistently across the app:
VariableDefault valueUsed by
--neon-magenta#ec4899About page, Contact page, nav P1
--neon-cyan#22d3eeHome cards, scrollbar, general accents
--neon-purple#a855f7Skills page, comm channels
--neon-lime#a3e635Status indicator, cursor, special attacks
--neon-orange#fb923cWriting page, tools skill group
--bg-dark#050505Main page background
--bg-panel#0a0a0aCard and panel backgrounds
You can override colors without touching the compiled main.css at all. Create a separate overrides.css file and load it after main.css in your HTML shells. CSS custom properties cascade, so a later :root block will override the values in main.css:
/* overrides.css */
:root {
  --neon-cyan:  #00ffe0;  /* teal instead of sky-blue */
  --neon-lime:  #39ff14;  /* brighter neon green */
}
<!-- In index.html / pages/*.html — add after the existing link tag -->
<link rel="stylesheet" href="./overrides.css">
This approach works directly on the deployed repository — no rebuild required.

2. Updating Portfolio Content

All page content — projects, skill levels, writing log entries, case-study stages, and about text — is defined as static data arrays in the original React source files. In the deployed repository these arrays are inlined into assets/main.js and cannot be edited directly in place.
This repository contains only the pre-built output. To update portfolio content you need the original source project. Edit the data arrays there, rebuild, and redeploy the output.
The data arrays in the source follow this structure:
PageArray variableExample fields
Projectsystitle, category, color, desc, tech, demoMode
Skillsmmtitle, icon, color, skills[{name, level, note}]
Writingymid, date, tag, title, excerpt, color
Case Studiesaiid, title, icon, color, hp, desc
For example, a project entry in the source looks like:
// In the Projects page source (variable ys)
{
  id: 5,
  title: "GHOST_SIGNAL",
  category: "FULLSTACK",
  color: "purple",
  image: "https://images.unsplash.com/photo-XXXXXXX",
  desc: "Real-time encrypted messaging with a cyberpunk twist.",
  tech: ["Next.js", "WebSockets", "Redis"],
  demoMode: true,
}

3. Changing Fonts

The four Google Fonts families are loaded via a single @import at the very top of assets/main.css:
@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800
  &family=JetBrains+Mono:wght@400;700
  &family=Press+Start+2P
  &family=VT323
  &display=swap";
These font families are mapped to utility classes that are compiled into assets/main.css:
Utility classFont familyUsed for
font-arcadePress Start 2PPage headings, logo, arcade titles
font-terminalVT323Navigation, labels, UI chrome
font-codeJetBrains MonoCode snippets, descriptions
font-sansInterBody text
To swap a font without rebuilding, you can override the @import by adding a second stylesheet after main.css in your HTML shells. Update the Google Fonts URL for your chosen family, then use a CSS rule to re-declare the font-family for the relevant CSS class or element selector. For a full font substitution across all utility classes, updating the source and rebuilding is the cleaner approach.

4. Section Color Themes

Each page component passes a color prop to NeonCard (Eu) and NeonButton (Lu) components. The color determines which --neon-* variable is used for borders, glows, and text highlights throughout that page.
// Home page — cyan cards, navigation uses per-route colors
<NeonCard color="cyan" hover onClick={() => navigate(path)}>
To change a page’s accent color in the source, update the color prop on its top-level NeonCard and the color value on any PageHeader component in that page.

5. Deploying to a Static Host

The repository is a fully self-contained static site ready to deploy. Upload the directory contents to any static host. The .nojekyll file at the root tells GitHub Pages not to run the output through Jekyll, which would otherwise strip files and directories whose names start with an underscore.
Best for: Personal portfolios hosted at username.github.io/repo-name
1

Push the repository

Push your repository to GitHub. The files at the repo root (including index.html and .nojekyll) should be at the top level of the branch you deploy from.
2

Configure GitHub Pages

In your repository settings, go to Pages and set the source to the branch and folder containing your files. The .nojekyll file must be present — it prevents Jekyll from interfering with assets/ and other directories.
3

Verify the base URL

If your repo is not at the root (e.g. username.github.io/choose-your-destiny), the hash-based routing still works — all navigation is in the fragment and requires no server path configuration.
Note: No redirect rules are needed — HashRouter handles all navigation in the fragment. The .nojekyll file ensures assets/ and other directories are served correctly.

Host Comparison

FeatureGitHub PagesNetlifyVercel
Cost (static sites)FreeFree tierFree tier
Requires .nojekyll✅ YesNoNo
Requires redirect rulesNoNoNo
Custom domain
Preview deployments per branch
Build minutes included2 000/mo300/mo100/mo
CDN / edge distributionLimitedGlobal CDNGlobal Edge

Build docs developers (and LLMs) love