All of Sorcerer’s portfolio content — the owner’s name and tagline, every project card, skill node, work history entry, blog post, case study, and testimonial — lives as plain JavaScriptDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/sorcerer/llms.txt
Use this file to discover all available pages before exploring further.
const arrays and inline string literals in the source code. There are no external CMS calls, no JSON config files, and no environment variables to wire up. To make the portfolio your own, you edit these arrays in the source, run the build, and deploy the output.
Personal Details
The portfolio owner’s name, tagline, and hero quote are hardcoded as string literals inside theHomePage component. Locate that component in the source and update the three values:
name string is split character-by-character at render time to drive the blur-reveal letter stagger animation, so any length of name will work — each letter receives its own motion.span with a delay of index * 0.15 seconds. The tagline is rendered with the .text-glow class applied, so it automatically picks up the turquoise glow effect.
Projects
The four project cards on the/projects page are rendered from the gt array (exported from the compiled bundle as projects in the source). Each object requires an id, display numeral, title, description, tech stack array, and link URL. The numeral field (Roman numerals I–IV) appears on the front face of the flip card.
title, description, tech, and link with your own project details. The link field is rendered as an anchor tag on the back face of the flip card (“Inspect Spell →”); set it to your live URL or repository link.
Skills
The Skills constellation is driven by two arrays:B (node positions and labels) and bt (edges connecting nodes by their id strings). Node x and y values are percentages of the container’s width and height, so { x: 20, y: 30 } places a node 20% from the left and 30% from the top of the constellation canvas.
skillNodes with a unique id, a display label, and an x/y position that avoids overlapping existing nodes. Then add any desired edge pairs to skillEdges referencing that new id. Each edge is drawn as a <motion.line> that animates its pathLength from 0 to 1 when the constellation scrolls into view.
Work History
The three timeline entries on the/work page are rendered from the wt array. Each entry has a numeric id, a role (displayed as a heading in turquoise-light), a coven (the company name, rendered in italic moonlight-silver), a years range, and a details array of bullet-point strings.
height: 0 to height: auto, and each bullet item fades in from the left with a cascading delay. Adding more than three entries will extend the scroll-driven timeline line proportionally.
Blog Posts
The three posts on the/blog page are rendered from the qt array. Each post has an id, a title, a display date string, and an excerpt that is shown with line-clamp-4 (four visible lines).
filter: url(#ripple). The card shape is achieved with border-radius: 100px (outer) and border-radius: 90px (inner border). There is currently no routing to individual post pages — the “Peer closer →” call-to-action can be wired to an internal route or external URL by wrapping the card in a <Link> or <a> element.
Testimonials
The three testimonials on the/testimonials page are stored in the C array. They rotate automatically every 6 seconds using a setInterval. Each entry has an id, a quote string, an author name, and a title (job title / role).
key prop on the motion.div inside AnimatePresence. Changing the key triggers the blur-scale exit/enter transition. Manual navigation is available via the dot indicators rendered below the crystal-ball SVG frame.
Case Studies
The two deep-dive case studies on the/case-studies page are stored in the Ct array. Each entry has an id, a title, a subtitle, an ingredients array of technology strings, a ritual narrative paragraph, and a result paragraph displayed in a highlighted block with a left turquoise border.
whileInView fade-and-slide animation. The ingredients list uses velvet-purple bullet dots, and each entry is separated by space-y-32 to create deliberate vertical breathing room between studies. A smoke particle background effect (.smoke-particle CSS class with the @keyframes drift animation) renders in a fixed overlay behind all case studies.
Quick Reference
Projects Page
Edit the
gt array to update the four flip-card project entries, their tech stacks, and external links.Skills Page
Edit the
B nodes array and bt edges array to rearrange the constellation layout and skill connections.Work History Page
Edit the
wt array to replace role names, company names, year ranges, and bullet-point achievements.Blog Page
Edit the
qt array to replace post titles, dates, and excerpt text shown on the oval blog cards.