The Projects page adopts the Mission Catalog theme — each project is represented as a glowing planetary orb floating on a dark star-map grid. Visitors can hover over any orb to reveal a tooltip with the project name and a short description, and clicking an orb expands a detail panel. The overall layout evokes a celestial navigation chart where every project is a destination worth exploring.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/projects route renders:
- Star-map grid background — a Canvas 2D layer draws a sparse, static field of stars behind the orb layout.
- Five interactive project orbs — each orb is a
motion.divwith a radial gradient fill and a pulsing glow animation. - Hover tooltip — floating label showing project name and one-line description appears on
onHoverStart. - Click-expand detail panel — clicking an orb opens an overlay card with the full project description.
Project Data Structure
All five projects are defined in a singlePROJECTS array in main.js:
Field Reference
| Field | Type | Purpose |
|---|---|---|
id | string | Unique slug used as the React key and anchor href |
name | string | Display name shown in the tooltip and detail panel |
description | string | One-to-two sentence summary shown in tooltip and expanded panel |
tech | string[] | Technology badges rendered in the detail panel |
color | string | Hex color for the orb’s radial gradient and glow effect |
size | number | Orb diameter in pixels — larger values = more visual prominence |
The Five Projects
Nebula DB
Distributed key-value database in Rust. The largest orb on the map — featured in the Case Studies deep-dive.
Stellar UI
Dark-mode-first React component library with full TypeScript support and Storybook integration.
Orbit Analytics
Real-time analytics dashboard using D3.js and WebSockets for live data streaming.
Void Cache
Rust-powered in-memory cache with Redis-compatible protocol and TTL eviction policies.
Pulsar Chat
End-to-end encrypted real-time chat application with presence indicators, built with Node.js and Socket.io.
Adding a New Project Orb
Add an entry to PROJECTS
Append a new object to the
PROJECTS array following the field reference above.Pick a unique color
Choose a
color hex that contrasts with existing orbs. The star map background is #050510, so mid-saturation colors read well.Set a relative size
Use
size between 55 (small, secondary project) and 95 (flagship project). Avoid making multiple orbs the same size.Position the orb (optional)
If you want precise placement, add
x and y percentage fields to the object and read them in the layout component. Without them, orbs are distributed automatically.Removing a Project
Delete the corresponding object from thePROJECTS array. The star-map layout will redistribute the remaining orbs automatically to fill the space.
Interactive Behaviors
Hover Effect
Each orb listens foronHoverStart and onHoverEnd Framer Motion events. On hover, two things happen simultaneously:
- The orb scales up to
1.12×its resting size with a spring transition. - The glow radius expands and brightens using the project’s
colorvalue.
Click-to-Expand
Clicking an orb sets aselectedProject state variable. The detail overlay fades in via AnimatePresence:
Escape) clears selectedProject and closes the overlay.
Customization Tips
The
size field controls visual hierarchy on the star map. Use larger values for your most significant or technically complex projects so visitor attention naturally gravitates there first.Related Pages
Case Studies
In-depth breakdown of the Nebula DB project architecture and decisions.
Skills
The Star Chart showing the technologies used across all projects.