The Case Studies page — labeled “CASE STUDIES” in the top navigation — is for detailed technical narratives that go far beyond a project card. Titled “Mission Dossier” in the UI, it presents a single scrollable case study with four structured sections, a fixed right-hand scroll-progress bar, and outcome metrics displayed as large stat tiles.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/telemetry/llms.txt
Use this file to discover all available pages before exploring further.
Route
main.js, registered as the case-studies child route under /.
Static Shell
The filepages/CaseStudies.html is the standalone entry point:
Projects vs. Case Studies
Projects Page
What it is: A broad showcase of your portfolio. Each entry gets a name, one-sentence description, tech stack, and links. Designed for quick scanning — visitors read a project card in under 10 seconds.
Case Studies Page
What it is: A long-form narrative for one (or a few) significant projects. Covers the problem, your process, the obstacles you hit, and measurable outcomes. Visitors spend minutes here, not seconds.
Scroll Progress Indicator
A fixed vertical progress bar sits atright: 2rem, top: 50% (visible only at lg: breakpoints). It contains:
- A
motion.divthat scales fromorigin-topasscrollYProgressincreases (driven byuseSpringwithstiffness: 100, damping: 30) - A small white dot that tracks the current scroll position
Page Structure: The Four Sections
The case study content lives insidemax-w-4xl mx-auto pt-12 pb-32 with space-y-32 between sections. Each section follows the same visual pattern: a circular icon badge on the left + section heading.
1 — Mission Brief
Uses theTarget icon in text-aurora-teal. This section answers: What was the problem?
The default content describes refactoring a legacy frontend monolith — replace it with your actual problem statement. Keep it vivid and concrete: quantify the pain (e.g. “8-second load times”, “3 support tickets per day”).
2 — Flight Plan
Uses theRoute icon in text-aurora-violet. This section answers: How did you approach it?
Renders as a 3-column card grid. Each card has a step number (large ghost text), a step title, and an animated progress bar that fills on scroll into view (whileInView).
The default steps are:
- Audit & Mapping
- Component Isolation
- Warp Drive Integration (Next.js)
The steps above are example defaults. Replace them with your actual implementation phases by editing the Flight Plan section of the Case Studies page component.
3 — Course Corrections
Uses theTriangleAlert icon in text-sunset-orange. This section answers: What went wrong, and how did you fix it?
Two sub-sections separated by a left orange border:
| Label | Color | Content |
|---|---|---|
ANOMALY DETECTED | text-sunset-orange | Describe the obstacle or bug |
RESOLUTION APPLIED | text-aurora-teal | Describe your fix or pivot |
4 — Re-entry & Results
Uses theCircleCheckBig icon in text-aurora-cyan. This section answers: What were the outcomes?
Four metric tiles in a 2×4 grid. Each tile has a large colored value and a small uppercase label:
The metrics above are example placeholder values. Replace them with real numbers from your project’s monitoring, Lighthouse reports, or bundle analysis tools.
Structuring Your Own Case Study
Define the problem clearly
In the Mission Brief section, describe the situation before you arrived. Use numbers where you have them: response times, error rates, team frustrations. A sharp problem statement makes the resolution feel earned.
Document your phases
In the Flight Plan section, list the major phases of your work. Three phases is ideal for the 3-column grid, but you can add more — the grid wraps automatically with
grid-cols-1 md:grid-cols-3.Be honest about obstacles
In Course Corrections, describe at least one real thing that didn’t go as planned. Interviewers and clients trust engineers who acknowledge complexity more than those who claim everything went smoothly.
Multiple Case Studies
The current layout supports a single case study. To support multiple, consider one of two approaches:Approach 1: Create sub-routes
Approach 1: Create sub-routes
Add child routes under
case-studies in the React Router config, e.g. case-studies/redesign-core and case-studies/api-migration. Each renders its own case study component. Update the Case Studies index page to link to each sub-route.Approach 2: Tab or accordion selector
Approach 2: Tab or accordion selector
Add a
useState selector at the top of the Case Studies page component to switch between multiple case study data objects. The four-section structure renders the selected study’s data dynamically.