A UX‑first, prototype‑driven portfolio built with React, TypeScript, Tailwind, and shadcn/ui.
This site showcases my work across UX engineering, cultural UX systems, async‑fit workflows, and high‑order prototyping. Projects include Echotrip (work‑abroad planner), Vespera (cultural etiquette explorer), and enhanced academic rebuilds.
This portfolio is built with:
- React + TypeScript
- Vite (fast dev environment)
- Tailwind CSS (utility‑first styling)
- shadcn/ui (accessible, theme‑friendly components)
- Framer Motion (micro‑interactions & scroll animations)
src/
components/ → Reusable UI + layout components
pages/ → Route-level pages (Home, Projects, About, Contact)
data/ → Project metadata + content
hooks/ → Scroll animations, utilities
assets/ → Images, icons, profile photo
The site is intentionally modular and easy to extend — adding a new project is as simple as updating projectsData.ts.
Clone the repo and install dependencies:
npm install
npm run devBuild for production:
npm run buildPreview the production build locally:
npm run previewLint the codebase:
npm run lintThis project is deployed through Lovable, which handles build + hosting.
To publish updates:
- Push changes to the repo
- Open the project in Lovable
- Go to Share → Publish
Custom domains can be configured in:
Project → Settings → Domains
This site reflects my approach to UX engineering:
- Problem‑first design
- Less‑is‑more curation
- Non‑linear navigation
- Semantic systems
- Async‑fit workflows
- Cultural UX & emotional readability
Each project page includes:
- UX problem framing
- Research insights
- Decision rationale
- Outcomes & learnings
- Journey notes
If you’d like to collaborate, discuss UX engineering, or explore prototyping work:
- Email: wgreaney0405@gmail.com
- LinkedIn: https://www.linkedin.com/in/william-greaney-57a7a2276/
- Portfolio: https://william-greaney-portfolio-project.netlify.app/
This portfolio is open for inspiration, but please do not copy or redistribute the design, content, or project descriptions without permission.