The Skills page uses the Star Chart metaphor — each technology you know is plotted as a star on a dark celestial canvas, and lines connect related skills into constellation patterns. Below the visual map, a second section presents the same skills as animated horizontal proficiency bars, giving visitors both a poetic and a precise read of your technical capabilities.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/aurora-borealis/llms.txt
Use this file to discover all available pages before exploring further.
What the Page Displays
The/skills route is divided into two sections:
- Constellation map — an SVG canvas where skill nodes are positioned at fixed coordinates and connected by thin lines when two skills are deemed “adjacent” in your stack.
- Proficiency bars — a vertical list of animated
<progress>-style bars, each showing a skill name and a percentage fill that animates in on first scroll into view.
Full Skills List
The page currently documents nine skills across frontend, backend, tooling, and systems categories:| Skill | Category | Default Proficiency |
|---|---|---|
| React | Frontend | 92% |
| TypeScript | Frontend | 88% |
| CSS / Tailwind | Frontend | 85% |
| Framer Motion | Frontend | 78% |
| Node.js | Backend | 82% |
| SQL | Backend | 75% |
| Rust | Systems | 65% |
| Git | Tooling | 90% |
| Docker | Tooling | 72% |
Skill Data Structure
Both the constellation map and the proficiency bars are driven by the sameSKILLS array in main.js:
Field Reference
| Field | Type | Purpose |
|---|---|---|
id | string | Unique key for React rendering and SVG element IDs |
name | string | Display label shown on the constellation node and proficiency bar |
category | string | Used to color-code nodes and group bars (frontend / backend / systems / tooling) |
proficiency | number | Integer 0–100 used to set the proficiency bar fill width |
x, y | number | Percentage-based position on the SVG constellation canvas |
Section 1 — Constellation Map
The constellation map renders each skill as an SVG<circle> at coordinates (x%, y%) within the viewBox. Lines between related skills are drawn as SVG <line> elements defined in a separate SKILL_CONNECTIONS array:
category:
| Category | Node color |
|---|---|
frontend | #60a5fa |
backend | #34d399 |
systems | #f87171 |
tooling | #a78bfa |
Section 2 — Proficiency Bars
Each bar animates from0% width to the proficiency value when the element enters the viewport, using Framer Motion’s whileInView:
viewport={{ once: true }}— the animation fires once as the section scrolls into view, not on every re-scroll.delay: index * 0.08— bars animate in a cascading sequence, each 80 ms after the previous.
Adding a New Skill
Add to the SKILLS array
Append a new object to
SKILLS with a unique id, a name, a valid category, a proficiency (0–100), and x/y coordinates (0–100 as percentages).Choose a position on the canvas
Pick
x and y values that don’t overlap existing nodes. A gap of at least 10 units between nodes keeps labels legible.Add connections (optional)
If the new skill relates to an existing one, add a tuple to
SKILL_CONNECTIONS. For example, a new "graphql" skill would logically connect to "nodejs" and "react".Assign a category
Use an existing category (
frontend, backend, systems, tooling) or introduce a new one and add its color to the category color map in the component.Removing a Skill
- Delete the skill’s object from
SKILLS. - Remove any tuples in
SKILL_CONNECTIONSthat reference the deleted skill’sid— leaving a dangling reference will cause a runtime warning.
Customization Tips
The
proficiency values are self-reported and purely visual. There is no validation logic — you can freely adjust any number to better reflect your honest self-assessment.Related Pages
Projects
See which skills appear in each project’s tech stack.
About
The Flight Log career timeline that provides context for how these skills were acquired.