Digital Alchemy is a fully static, client-rendered Single Page Application. There is no backend server, no database, and no API — the entire site ships as pre-built HTML, CSS, and JavaScript files served directly from GitHub Pages.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/digital-alchemy/llms.txt
Use this file to discover all available pages before exploring further.
Core dependencies
| Package | Version | Purpose |
|---|---|---|
react | 18.x | UI component framework |
react-dom | 18.x | DOM renderer for React 18 |
react-router-dom | 6.x | Client-side routing via HashRouter |
framer-motion | latest | Animation engine — page transitions, component entrances, interactive effects |
tailwindcss | 3.x | Utility-first CSS framework for layout and design tokens |
lucide-react | 0.522.0 | SVG icon library providing navigation and UI icons |
vite | latest | Build tool and dev server with native ESM support |
Why each technology was chosen
React 18
React 18 is the industry standard for component-driven UIs. Its concurrent rendering capabilities and stable hooks API make it the natural foundation for a portfolio that showcases frontend craftsmanship. React 18’s automatic batching also reduces unnecessary re-renders in animation-heavy views.
Framer Motion
Framer Motion provides a declarative, JSX-native animation API that integrates seamlessly with React’s render lifecycle.
AnimatePresence enables the site-wide blur-fade page transitions, while layoutId powers the nav indicator sliding between routes without any manual coordinate tracking.Tailwind CSS 3
Tailwind eliminates the need for separate stylesheet files for most component styling. Custom color tokens (
ink, parchment, turquoise, midnight, amber, teal) are compiled into assets/main.css as utility classes available across the entire codebase, keeping the design system consistent.React Router v6
React Router v6’s
<Routes> / <Route> API is clean and minimal. The HashRouter variant is used specifically for GitHub Pages compatibility — hash-based URLs require no server-side rewrite rules.Lucide React
Lucide provides a comprehensive, consistently styled icon set as tree-shakable React components. The build artifact (
assets/createLucideIcon.js) identifies version 0.522.0, whose icon shapes are tightly integrated into the navigation and layout design.Vite
Vite’s native ESM dev server starts in milliseconds and uses esbuild for blazing-fast HMR. For production it bundles with Rollup, producing optimised chunks. The output is a purely static
dist/ directory ready for GitHub Pages deployment with no build-time environment variable injection needed.Development vs production
| Aspect | Development (npm run dev) | Production (npm run build) |
|---|---|---|
| Server | Vite dev server (localhost:5173) | None — static files only |
| Bundler | Native ESM + esbuild | Rollup via Vite |
| Output | In-memory, no dist/ | dist/ directory |
| Source maps | Included | Excluded |
| CSS | Injected via JS | Extracted to assets/main.css |
Digital Alchemy is built as a fully static site — there is no backend server, no database, and no API. All data (projects, skills, work history, testimonials) is hardcoded directly in the React view components. No
.env file or environment variables are required at build or deploy time.