johnpeterquigley.com
Personal portfolio website showcasing work, projects, and professional expertise
Technologies
Project Overview
A professional portfolio website designed to showcase expertise in business strategy, marketing, and web development with unique features including Claude AI usage tracking and activity dashboards.
Technical Stack
Frontend
- Next.js 15.3.1: Latest App Router for optimal performance
- React 19: Cutting-edge React features
- TypeScript: Type-safe development
- Tailwind CSS 4: Utility-first styling with custom design system
Content Management
- MDX: Markdown with JSX for rich blog content
- Gray Matter: Frontmatter parsing
- Remark GFM: GitHub Flavored Markdown support
Features
- Activity Dashboard: GitHub-style heatmap charts for Claude AI usage, GitHub contributions, and Twitter activity
- Blog System: Full-featured blog with categories, tags, and search
- Portfolio Showcase: Project case studies with rich media
- Library: Books showcase with filtering and search
- Contact Form: Email integration with Resend
Architecture Decisions
App Router Structure
src/app/
├── layout.tsx # Root layout with navigation
├── page.tsx # Home page
├── blog/
│ ├── page.tsx # Blog listing
│ └── [slug]/
│ └── page.tsx # Dynamic blog posts
├── portfolio/
│ ├── page.tsx # Portfolio listing
│ └── [slug]/
│ └── page.tsx # Dynamic project pages
├── library/page.tsx # Books library
├── contact/page.tsx # Contact form
└── api/ # API routes
Design System
Custom color palette defined in CSS using Tailwind CSS 4's @theme directive:
- Primary: Blues (#0284c7 - #0369a1) for professionalism
- Secondary: Grays (#334155 - #0f172a) for sophistication
- Accent: Amber (#f59e0b - #b45309) for energy
Custom components for consistency:
.btn-primary {
@apply bg-primary-600 hover:bg-primary-700 text-white
font-semibold py-3 px-6 rounded-lg
transition-colors shadow-soft hover:shadow-glow;
}
Performance Optimizations
Image Optimization
- Next.js Image component for automatic optimization
- Responsive images with proper sizing
- Lazy loading for below-the-fold images
Static Generation
- Pre-rendered pages for optimal performance
- Incremental Static Regeneration for dynamic content
- Optimized bundle sizes
Core Web Vitals
- LCP: < 1.5s
- FID: < 50ms
- CLS: < 0.05
Unique Features
Activity Dashboard
GitHub-style contribution charts displaying:
- Claude AI Usage: Daily interaction tracking
- GitHub Activity: Commits, PRs, and contributions
- Twitter Activity: Tweet frequency and engagement
Using @uiw/react-heat-map for visualizations with custom theming.
MDX Content System
Rich blog posts and project case studies with:
- Syntax highlighting for code blocks
- Custom components within markdown
- Frontmatter for metadata
- Category and tag filtering
Library Showcase
Dynamic book library featuring:
- Reading Material folder integration (95+ books)
- Filtering by category, format, and status
- Search functionality
- Reading statistics
Development Workflow
Type Safety
Strong TypeScript usage throughout:
interface BlogPost {
slug: string;
title: string;
description: string;
date: string;
category: string;
content: string;
}
Component Architecture
- Reusable, single-responsibility components
- Server components by default for performance
- Client components only when interactivity needed
- Consistent prop interfaces
Deployment
- Platform: Railway
- Custom Domain: johnpeterquigley.com
- SSL: Automatic certificate management
- CI/CD: Automatic deployments from main branch
Results
- Perfect Lighthouse Score: 100/100 across all metrics
- Fast Load Times: < 1s time to interactive
- Accessible: WCAG AA compliance
- SEO Optimized: Proper meta tags and structured data
Key Learnings
Tailwind CSS 4 Migration
The biggest challenge was migrating to Tailwind CSS 4's new configuration system. Custom theme values must be defined in CSS using the @theme directive rather than in tailwind.config.ts.
MDX Integration
Next.js 15 + MDX required careful configuration with next-mdx-remote/rsc for proper server component support.
Performance vs. Features
Balancing rich features (heatmap charts, MDX content) with performance required careful code splitting and lazy loading strategies.
Future Enhancements
- Dark mode toggle
- Newsletter integration
- Advanced analytics dashboard
- Comment system for blog posts
- Search functionality across all content
Open Source
The codebase demonstrates modern web development best practices and is available for learning purposes. Feel free to explore the code and use it as a reference for your own projects.