Observatory is a static React SPA — there is no server to configure, no environment variables to set, and no cloud services to provision. Getting from a fresh clone to a running dev server takes under five minutes.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/observatory/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Node.js 18 or later — Observatory uses Vite 4+, which requires Node 18+. Check your version with
node --version. - npm (bundled with Node.js) or pnpm — either package manager works.
- A terminal and a code editor.
Setup
Clone the repository
Clone Observatory from GitHub to your local machine:This gives you the full source including
components/aurora/, assets/, pages/, and index.html.Install dependencies
Install all project dependencies. Observatory uses React, React Router, Framer Motion, Tailwind, and Lucide React — all declared in
package.json.Start the development server
Launch the Vite dev server:Vite will print the local URL once it starts:
Open the app in your browser
Navigate to http://localhost:5173. You should see the Observatory home page — the animated Starfield, AuroraRibbon gradient, and the headline “Building systems at high altitude.”All nine routes are immediately navigable via the top navigation bar.
Personalize your content
Observatory stores all portfolio content — project entries, skills data, work history, testimonials, articles, and contact info — directly inside the Aurora component source files. Open the relevant file in
components/aurora/ and edit the hardcoded data arrays to replace the placeholder content with your own.Common files to edit first:| File | What to change |
|---|---|
components/aurora/ConstellationLayout.js | Your project entries (name, tech, description, links) |
components/aurora/SpectrumAnalyzer.js | Your skill domains and proficiency levels |
components/aurora/OrbitalPath.js | Your work history (company, role, dates, responsibilities) |
components/aurora/PolaroidTestimonials.js | Colleague testimonial quotes and attribution |
components/aurora/StarMapIndex.js | Article titles, topics, and links |
components/aurora/RadioDial.js | Your contact email or preferred communication method |
Project Structure
Here is the directory layout of Observatory as it exists in the repository:pages/ directory contains static HTML stubs that each load the same assets/main.js entry point. This allows direct URL access to routes like /about or /projects when hosted on GitHub Pages, which doesn’t support SPA-style 404 fallbacks natively.
Navigation Reference
The navigation bar in Observatory uses astronomy-themed labels instead of conventional route names. All nine items are defined in theMo array inside Navigation.js:
| Route | Full Label | Short Label (nav bar) |
|---|---|---|
/ | Tonight’s Forecast | Home |
/about | The Observer | About |
/projects | Logged Sightings | Projects |
/skills | Instruments | Skills |
/work | Expeditions | Work |
/case-studies | Field Reports | Cases |
/articles | Notebook | Notes |
/testimonials | Peer Reports | Peers |
/contact | Send a Signal | Contact |
layoutId="nav-indicator") powered by Framer Motion’s shared layout animation with type: "spring", stiffness: 300, damping: 30.
Building for Production
When you’re ready to deploy, build the production bundle:dist/ directory. The output is a fully static site with no server-side requirements — the entire build can be deployed to any static host (GitHub Pages, Netlify, Vercel, Cloudflare Pages, an S3 bucket, etc.).
To preview the production build locally before deploying:
dist/ folder with Vite’s preview server at http://localhost:4173.