Skip to main content

Documentation Index

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

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

The skills.js module exports an array s of skill group objects consumed by the Skills section of the portfolio. Skills are organised into four thematic groups that mirror the subsystems of a spacecraft: NAVIGATION (front-end), PROPULSION (back-end), LIFE SUPPORT (tooling & infrastructure), and COMMS (soft skills & design). Each individual skill carries a proficiency level (0–100) and a frequency string — a radio frequency that serves as a visual metaphor rendered by the FrequencyGauge component, mapping skill mastery onto the electromagnetic spectrum.

Data Shape

interface Skill {
  name: string;       // Display name of the skill
  level: number;      // Proficiency score, 0–100
  frequency: string;  // Radio frequency string, e.g. "144.2 MHz" or "1.2 GHz"
}

interface SkillGroup {
  id: string;          // Unique identifier, e.g. "nav"
  name: string;        // All-caps group heading
  description: string; // Subtitle shown beneath the group heading
  skills: Skill[];     // Ordered list of skills within this group
}
The frequency value is purely presentational. It is passed directly to the FrequencyGauge component as a label and does not drive any audio or networking behaviour. Choose a frequency that falls within the real-world band range appropriate for the group (see the table below).

Current Entries

Frequencies in this group occupy the VHF/UHF amateur radio band (144–146 MHz).
SkillLevelFrequency
React / Next.js95144.2 MHz
TypeScript90144.5 MHz
Tailwind CSS85145.1 MHz
Framer Motion80145.8 MHz

PROPULSION — Back-end & Data Processing (id: "prop")

Frequencies in this group occupy the 70 cm amateur band (432–434 MHz).
SkillLevelFrequency
Node.js85432.1 MHz
PostgreSQL80432.5 MHz
Redis75433.0 MHz
GraphQL70433.8 MHz

LIFE SUPPORT — Tooling & Infrastructure (id: "life")

Frequencies in this group occupy the 23 cm microwave band (1.2–1.5 GHz).
SkillLevelFrequency
Git / CI/CD901.2 GHz
Docker751.3 GHz
AWS / Vercel801.4 GHz
Jest / Vitest851.5 GHz

COMMS — Soft Skills & Design (id: "comms")

Frequencies in this group occupy the 5 GHz Wi-Fi band (5.0–5.8 GHz).
SkillLevelFrequency
UI/UX Design855.0 GHz
Tech Writing905.2 GHz
Mentorship805.4 GHz
Agile/Scrum855.8 GHz

Adding New Entries

To add a new skill to an existing group:
  1. Open data/skills.js.
  2. Locate the group object whose id matches the category you want (e.g. "nav" for front-end skills).
  3. Push a new object into that group’s skills array.
  4. Set level between 0 and 100.
  5. Choose a frequency within the band range already used by the other skills in that group to maintain the metaphor’s coherence (see tables above).
  6. Save the file — the Skills section will reflect the new entry immediately.
// data/skills.js  — add to the "nav" group's skills array
{
  name: "Three.js",
  level: 72,
  frequency: "146.4 MHz",
}
To add an entirely new skill group:
// data/skills.js  — append a new group object to the top-level array
{
  id: "power",
  name: "POWER SYSTEMS",
  description: "Databases & Storage",
  skills: [
    { name: "MongoDB",    level: 78, frequency: "2.3 GHz" },
    { name: "Supabase",   level: 82, frequency: "2.4 GHz" },
    { name: "Prisma ORM", level: 88, frequency: "2.5 GHz" },
  ],
}
Keep each group to four to six skills so the FrequencyGauge display remains legible. If a group grows beyond six entries, consider splitting it into two thematically distinct groups.

Field Reference

id
string
required
Unique identifier for the skill group. Used as a React key and for any future deep-link or filter logic. Keep it short and lowercase (e.g. "nav", "prop").
name
string
required
All-caps heading for the group, rendered as a section title in the Skills panel. Should evoke a spacecraft subsystem (e.g. "NAVIGATION", "PROPULSION").
description
string
required
A short subtitle that translates the spacecraft metaphor into plain language (e.g. "Front-end & Interface Systems"). Displayed beneath the group heading.
skills
Skill[]
required
Ordered array of skill entries belonging to this group. Rendered in the order they appear, so place your strongest or most relevant skills first.
skills[].name
string
required
Display name of the individual skill or technology. Appears as a label next to the frequency gauge and proficiency bar.
skills[].level
number
required
Proficiency score from 0 (no experience) to 100 (expert). Drives the width of the animated proficiency bar in the Skills UI.
skills[].frequency
string
required
A radio frequency string (e.g. "144.2 MHz", "1.3 GHz") rendered as a label by the FrequencyGauge component. Choose a frequency that falls within the band already established by the other skills in the same group.

Build docs developers (and LLMs) love