My personal portfolio: a place to explore selected projects, what I worked on, and some of the decisions behind them.
Built with Next.js, React, Tailwind CSS, and Framer Motion.
- Framework: Next.js (App Router)
- Styling: Tailwind CSS
- Animations: Framer Motion
- Smooth scrolling: Lenis
- Deployment: Vercel
- Responsive Design: Optimized for all devices
- Theming: Light and dark, defaulting to light, with the accent colour swapped per theme so it clears WCAG AA in both
- Motion: Scroll-triggered reveals, layout-stable text effects, and a full
prefers-reduced-motionopt-out - Performance: App Router, server components, and optimized assets
This project uses pnpm. A preinstall guard fails other package managers on
purpose: the repo previously carried two lockfiles, and installing with npm
updated the one Vercel doesn't read, which broke production deploys with
ERR_PNPM_OUTDATED_LOCKFILE.
packageManager pins pnpm 9.15.9. pnpm 10+ refuses to run under Node 22.13, and
the v9.0 lockfile it writes is read fine by newer pnpm, so this works on either.
-
Clone the repository:
git clone https://github.com/krowslyare/ptf.git
-
Install dependencies:
pnpm install
-
Run the development server:
pnpm dev
-
Open http://localhost:3000 with your browser.
MIT