Skip to main content

Documentation Index

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

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

The skills data file powers the Skills section of the portfolio. Each entry in the exported skills array renders as a RuneTile — a card composed of a Sigil icon, a mastery badge, the skill name, and a short line of flavor text.

Schema

FieldTypeRequiredDescription
idstringYesUnique key used internally for React list rendering
namestringYesDisplay name shown on the RuneTile
categorystringYesGrouping label — tiles are clustered by this value on the Skills page
mastery'Master' | 'Adept'YesProficiency level — controls badge color and label
descriptionstringYesOne-line thematic flavor text shown beneath the skill name
sigilIdstringYesReferences a sigil defined in data/sigils.js — determines the glyph rendered on the tile

Categories

Categories are free-form strings — the skills page groups tiles by matching category values. The placeholder data uses these six:
CategoryContents in Placeholder Data
LanguagesTypeScript, JavaScript, Python
Front-EndReact, Tailwind CSS, Framer Motion
Back-End/DataNode.js, SQL
DebuggingChrome DevTools, Jest / Vitest
Git/GitHubGit
DesignFigma
You can rename, merge, split, or add categories freely — just keep the strings consistent across entries you want grouped together.

Mastery Levels

The mastery field accepts exactly two values:
ValueMeaningBadge Color
MasterDeep expertise — technologies you reach for firstCyan
AdeptComfortable proficiency — technologies you work with confidentlyPurple

Placeholder Skills

All twelve entries included in the template:
NameCategoryMastery
TypeScriptLanguagesMaster
JavaScriptLanguagesMaster
PythonLanguagesAdept
ReactFront-EndMaster
Tailwind CSSFront-EndMaster
Framer MotionFront-EndAdept
Node.jsBack-End/DataAdept
SQLBack-End/DataAdept
Chrome DevToolsDebuggingMaster
Jest / VitestDebuggingAdept
GitGit/GitHubMaster
FigmaDesignAdept

Full Placeholder Array

// data/skills.js
export const skills = [
  { id: 'ts', name: 'TypeScript', category: 'Languages', mastery: 'Master',
    description: 'Strict typing rituals to banish runtime errors.', sigilId: 'rune-1' },
  { id: 'js', name: 'JavaScript', category: 'Languages', mastery: 'Master',
    description: 'The chaotic ancient tongue of the web.', sigilId: 'rune-2' },
  { id: 'python', name: 'Python', category: 'Languages', mastery: 'Adept',
    description: 'Serpentine scripts for automation and data binding.', sigilId: 'rune-3' },
  { id: 'react', name: 'React', category: 'Front-End', mastery: 'Master',
    description: 'Component conjuration and state alchemy.', sigilId: 'rune-4' },
  { id: 'tailwind', name: 'Tailwind CSS', category: 'Front-End', mastery: 'Master',
    description: 'Utility-first styling incantations.', sigilId: 'rune-5' },
  { id: 'framer', name: 'Framer Motion', category: 'Front-End', mastery: 'Adept',
    description: 'Breathing life into static DOM elements.', sigilId: 'rune-6' },
  { id: 'node', name: 'Node.js', category: 'Back-End/Data', mastery: 'Adept',
    description: 'Server-side runtime environments.', sigilId: 'rune-7' },
  { id: 'sql', name: 'SQL', category: 'Back-End/Data', mastery: 'Adept',
    description: 'Relational data extraction and manipulation.', sigilId: 'rune-1' },
  { id: 'debug', name: 'Chrome DevTools', category: 'Debugging', mastery: 'Master',
    description: 'Peering into the void to find the source of bugs.', sigilId: 'rune-2' },
  { id: 'jest', name: 'Jest / Vitest', category: 'Debugging', mastery: 'Adept',
    description: 'Automated wards against regressions.', sigilId: 'rune-3' },
  { id: 'git', name: 'Git', category: 'Git/GitHub', mastery: 'Master',
    description: 'Timeline manipulation and alternate reality branching.', sigilId: 'rune-4' },
  { id: 'figma', name: 'Figma', category: 'Design', mastery: 'Adept',
    description: 'Vector manipulation and interface pre-visualization.', sigilId: 'rune-5' },
];
The description field is intentionally short (5–10 words) to fit within the RuneTile. Lean into the occult metaphor or keep it factual — both work.

Build docs developers (and LLMs) love