The Projects page showcases portfolio work as a grid of Win98Window cards. Each card has a cover image, project title, tech-stack badge, and a short description. Clicking a card animates it open into a full maximised Win98Window — using Framer Motion’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/web-surfer/llms.txt
Use this file to discover all available pages before exploring further.
layout prop — where the developer can surface screenshots, a longer write-up, and links to the live site or GitHub repository.
Purpose
This is the primary showcase section of the portfolio. It communicates what the developer has built, the technologies they used, and where visitors can see or use the work. The Win98 window metaphor makes each project feel like an.exe you are about to run — which fits the overall Y2K theming.
Layout and Structure
Cards are arranged in a responsive CSS grid (grid-cols-1 md:grid-cols-2 gap-6) inside a max-w-6xl mx-auto container. The FolderOpen and Code Lucide icons appear in the page heading.
Each project card is a Win98Window component with:
titleset to the project name (e.g."GeoCities Clone")- A cover
<img>styledw-full h-48 object-cover border-2 border-win-gray shadow-bevel-inset - A
font-bold text-lgproject name heading - A
techstring rendered as small badge text - A short
descparagraph
defaultMaximized: true). This detail window shows a "Decompressing files..." animation, a "Technologies Used" section with a bulleted list, and a "Visit Site (External Link)" button styled as win98-button.
The expand/collapse animation is driven by Framer Motion’s
layout prop on the Win98Window wrapper. The window animates from card size to full-screen using a spring transition (bounce: 0, duration: 0.3). Setting defaultMaximized: false on a card resets it to the grid view.Project Data Structure
Each project entry follows this shape:| Title | Description | Tech |
|---|---|---|
| GeoCities Clone | A modern recreation of the classic hosting platform. | React, Tailwind, Nostalgia |
| Winamp Web Player | It really whips the llama’s ass. | Web Audio API, Canvas |
| AIM Web Client | Chat with your buddies like it’s 2002. | WebSockets, Node.js |
| Space Jam Site Revamp | Unnecessary modernization of perfection. | HTML, CSS, Marquee |
How to Customize
Add a new project
Locate the project data array in the source and append a new object with a unique
id, title, desc, img, and tech string. The card renders automatically — no JSX changes needed.Replace cover images
Each project’s
img field points to an Unsplash URL. Replace these with screenshots of your actual work. Store images in the public/ directory and reference them with a root-relative path like "/screenshots/my-project.png".Add GitHub and live-site links
The maximised detail window currently shows one
"Visit Site" button. Extend the project data object with a github field and add a second win98-button inside the detail view for the repository link.