Skip to content

zachlagden/zachlagden.uk

Repository files navigation

Zach Lagden Portfolio

Next.js Version React Version TypeScript Tailwind CSS License

A modern, responsive portfolio website for Zach Lagden built with Next.js, React, TypeScript, Framer Motion, and Tailwind CSS.

Portfolio Preview

πŸš€ Features

  • Modern Stack: Built with Next.js 15, React 19, and TypeScript
  • Dynamic Content: Content management through centralized JSON data
  • Responsive Design: Mobile-first approach that looks great on all devices
  • Smooth Animations: Engaging UI animations using Framer Motion
  • Accessibility: WCAG compliant with keyboard navigation and screen reader support
  • Performance Optimized: Fast load times with optimized assets
  • SEO Ready: Comprehensive metadata, OpenGraph, and structured data
  • Error Tracking: Integrated Sentry for monitoring and error reporting
  • Analytics: Google Analytics integration for visitor insights

πŸ“‹ Prerequisites

  • Node.js 18.x or later
  • pnpm (recommended package manager for this project)

πŸ› οΈ Installation

  1. Clone the repository:
git clone https://github.com/zachlagden/zachlagden.uk.git
cd zachlagden.uk
  1. Install dependencies:
npm install
# or
yarn install
# or
pnpm install
# or
bun install
  1. Create a .env file in the root directory with your Sentry DSN (optional):
NEXT_PUBLIC_SENTRY_DSN=your_sentry_dsn

πŸ’» Development

Start the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

For faster refresh with Turbopack:

npm run devturbo
# or
yarn devturbo
# or
pnpm devturbo
# or
bun devturbo

Open http://localhost:3000 to view the app in your browser.

πŸ—οΈ Building for Production

Generate a production build:

npm run build
# or
yarn build
# or
pnpm build
# or
bun build

Start the production server:

npm run start
# or
yarn start
# or
pnpm start
# or
bun start

πŸ§ͺ Linting

npm run lint
# or
yarn lint
# or
pnpm lint
# or
bun lint

πŸ“ Project Structure

β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ content.json      # Centralized content data
β”‚   └── ...               # Static assets
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/              # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ HomeClient.tsx # Client-side main component
β”‚   β”‚   β”œβ”€β”€ layout.tsx    # Root layout
β”‚   β”‚   β”œβ”€β”€ page.tsx      # Home page
β”‚   β”‚   β”œβ”€β”€ globals.css   # Global styles
β”‚   β”‚   └── ...           # Other files and routes
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ layout/       # Header, Footer, Navigation
β”‚   β”‚   β”œβ”€β”€ sections/     # Main content sections
β”‚   β”‚   β”œβ”€β”€ ui/           # Reusable UI components
β”‚   β”‚   └── providers/    # Context providers
β”‚   β”œβ”€β”€ hooks/            # Custom React hooks
β”‚   β”œβ”€β”€ types/            # TypeScript type definitions
β”‚   β”œβ”€β”€ utils/            # Utility functions
β”‚   └── instrumentation.ts # Sentry instrumentation
β”œβ”€β”€ sentry.*.config.ts    # Sentry configuration files
β”œβ”€β”€ next.config.ts        # Next.js configuration
β”œβ”€β”€ package.json          # Project dependencies and scripts
β”œβ”€β”€ postcss.config.mjs    # PostCSS configuration
└── tailwind.config.js    # Tailwind CSS configuration

🧩 Key Components

The main components in the portfolio include:

  • HomeClient: Main client-side component handling content loading and state
  • Header: Introduction section with animated elements
  • About: Brief professional summary and values
  • Experience: Work history with detailed descriptions
  • Education: Academic background and achievements
  • Skills: Technical and professional competencies with visual/list views
  • Certifications: Professional certifications with links
  • Navigation: Smooth scrolling navigation with active section tracking

πŸ“± Responsive Design

The portfolio is fully responsive with dedicated layouts for:

  • Mobile devices
  • Tablets
  • Desktops
  • Large screens

πŸ”„ Deployment

The project can be deployed to various hosting platforms that support Next.js applications. Follow the deployment instructions in the deployment section below for more details.

πŸ“Š Analytics & Monitoring

  • Google Analytics: Track user behavior and site metrics
  • Sentry: Monitor application performance and capture errors in production

πŸ›‘οΈ Environment Variables

The project uses Sentry for error tracking which is configured directly in the Sentry configuration files rather than through environment variables. No specific environment variables are required to run the application.

πŸ”§ Customization

To customize this portfolio for your own use:

  1. Update content in public/content.json with your personal information
  2. Replace images in the public directory
  3. Modify metadata in src/app/layout.tsx if needed
  4. Adjust colors and styling in src/app/globals.css
  5. Update TypeScript interfaces in src/types/content.ts if adding new data fields

🌐 Deployment

The simplest way to deploy this portfolio is using Vercel, the platform created by the makers of Next.js:

Deploy with Vercel

Alternatively, you can deploy to any platform that supports Next.js:

  • Netlify
  • AWS Amplify
  • Self-hosted (Node.js server)

πŸ“ License

This project is licensed under the Zachariah Michael Lagden Public License (ZML-PL) - see the LICENCE file for details.

πŸ™ Acknowledgements

πŸ“ž Contact

Zach Lagden - [email protected]

Project Link: https://zachlagden.uk


Designed & developed with ❀️ by Zach Lagden

About

Zach Lagden - as a website!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •