TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/sys-witch/llms.txt
Use this file to discover all available pages before exploring further.
caseStudies.js data file exports the content rendered on the Case Studies page under the heading Ritual Reports — deep-dive write-ups that walk through the technical and design decisions behind a featured project. Each case study is a structured array of sections rather than a single prose blob, which lets the component layer handle consistent visual formatting (headings, spacing, sigil icons) while you focus only on the written content.
Location: data/caseStudies.js
Data Shape
A case study is composed of two nested interfaces:Field Reference — CaseStudy
A URL-safe slug that uniquely identifies the case study, e.g.
"nexus-rebuild". Used as a React list key and must be unique across the array. Lowercase, hyphen-separated convention matches projects.js.The display heading for the case study. By convention, titles follow the pattern
"RITUAL REPORT: [PROJECT NAME IN CAPS]" to reinforce the theme’s aesthetic. The component renders this in the display font.A key referencing one of the named sigils in
data/sigils.js. The named page sigils — "home", "about", "projects", "skills", "writing", "case-studies", "contact" — are the conventional choices here, as case studies typically correspond to a page or project. The component looks up this key to render the decorative SVG icon in the case study header.An ordered array of section objects. Sections are rendered in array order, so place the most important narrative context first. There is no enforced minimum or maximum number of sections.
Field Reference — Section
The section sub-heading, e.g.
"Problem" or "Dev Decisions". Rendered in a styled heading element above the section content.The full paragraph text for the section. Write in plain prose — no Markdown formatting is applied inside the component. Aim for one to four sentences that are focused and specific.
Standard Section Headings
The following headings represent the canonical structure used in the existing case studies. Sections can be presented in any order and any subset may be omitted when not applicable to the project being described:| Heading | Purpose |
|---|---|
| Problem | What was broken, slow, or missing before the work began |
| Goal | The measurable or qualitative target the work aimed to hit |
| Process | How the problem was investigated and approached |
| Design Decisions | Visual and UX choices made and the reasoning behind them |
| Dev Decisions | Technical implementation choices and trade-offs |
| Testing & Debugging | Specific bugs encountered and how they were resolved |
| Result | Concrete outcome — metrics, scores, or observable improvements |
| Skills Demonstrated | A comma-separated list of skills exercised during the work |
Current Case Studies
Two case studies are currently defined indata/caseStudies.js:
RITUAL REPORT: NEXUS DASHBOARD REBUILD
id:
nexus-rebuild · sigilId: case-studiesSections: Problem, Goal, Process, Design Decisions, Dev Decisions, Testing & Debugging, Result, Skills DemonstratedRITUAL REPORT: ACCESSIBLE ALCHEMY UI
id:
accessible-alchemy · sigilId: projectsSections: Problem, Goal, Process, Dev Decisions, ResultComplete Example Structure
The following is the full structure of a new case study object, ready to be appended to the array:Adding a Case Study
Append a new object conforming to the shape above to the exported array indata/caseStudies.js. There are no component changes required.
The
sigilId for a case study does not need to correspond to the same project referenced by id. It is purely a decorative icon lookup. Use whichever named sigil best fits the visual context — the "case-studies" sigil is a safe default.