Personal portfolio website showcasing creative technology work, generative art, and interactive visual experiences.
π Live Site: hunterbeezley.github.io
- π¨ Clean, Modern Design - Minimalist aesthetic with animated background video
- π± Progressive Web App - Installable with offline support
- βΏ Accessible - WCAG AA compliant with keyboard navigation and reduced motion support
- π Performance Optimized - Fast loading with optimized assets
- π― SEO Ready - Meta tags, Open Graph, sitemap, and structured data
- π¬ Seamless Contact Form - Serverless contact form that creates GitHub issues without user authentication
- π Admin Workspace - Password-protected admin dashboard for site management
- Frontend: Pure HTML5, CSS3, JavaScript (ES6+)
- Backend: Vercel Serverless Functions (TypeScript)
- Graphics: p5.js for animated contact button
- Icons & Assets: Custom-generated from logo using ImageMagick
- Hosting: Vercel (static site + serverless functions)
- Issue Tracking: GitHub Issues API
- Version Control: Git + GitHub
- Deployment: Automatic via Vercel on push to main
.
βββ api/
β βββ contact.ts # Serverless function for contact form
βββ index.html # Homepage
βββ resume.html # Resume page
βββ admin.html # Admin workspace (password-protected)
βββ contact.html # Contact page
βββ 404.html # Custom 404 error page
βββ visuals_1/ # Visual projects showcase
βββ icons/ # PWA icons and favicons
βββ manifest.json # PWA manifest
βββ sw.js # Service worker
βββ pwa-register.js # Service worker registration
βββ sitemap.xml # SEO sitemap
βββ robots.txt # Search engine directives
βββ package.json # Node dependencies
βββ vercel.json # Vercel configuration
βββ .env.example # Environment variable template
βββ CONTRIBUTING.md # Development workflow guide
Static Assets:
βββ logo.png # Site logo
βββ favicon.ico # Browser favicon
βββ apple-touch-icon.png # iOS home screen icon
βββ og-image.jpg # Open Graph preview image
βββ background-animation.mp4 # Background video
- Git
- Node.js 18+ and npm
- Modern web browser
- Vercel CLI (for deployment)
- GitHub CLI (optional, for issue management)
- ImageMagick (optional, for generating icons)
-
Clone the repository
git clone https://github.com/hunterbeezley/hunterbeezley.github.io.git cd hunterbeezley.github.io -
Serve locally
# Using Python 3 python3 -m http.server 8000 # Or using Node.js http-server npx http-server -p 8000
-
Open in browser
http://localhost:8000
Follow the GitHub Issues workflow documented in CONTRIBUTING.md:
- Create an issue for your work
- Make your changes
- Commit with issue reference:
git commit -m "Description (#issue-number)" - Push to main branch
- Changes deploy automatically via GitHub Pages
The admin workspace (/admin.html) is password-protected. Default password: admin
--primary: #00d9ff /* Cyan - Interactive elements */
--secondary: #ff006e /* Pink - Accents */
--accent: #ffbe0b /* Yellow - Tags and special elements */
--bg: #0a0a0a /* Near-black background */
--text: #ffffff /* White text */
--text-dim: #a0a0a0 /* Dimmed text */- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- iOS Safari 14+
- Android Chrome 90+
- β Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
- β First Contentful Paint: < 1.5s
- β Time to Interactive: < 3.0s
- β Cumulative Layout Shift: < 0.1
- β WCAG 2.1 AA compliant
- β Keyboard navigation throughout
- β Screen reader compatible
- β Respects prefers-reduced-motion
- β High contrast ratios (4.5:1 minimum)
- β Semantic HTML5
This is a personal portfolio site, but feedback and suggestions are welcome!
- π¬ Use the feedback button on the site
- π Report bugs via GitHub Issues
- π Read the full Contributing Guide
The site is deployed on Vercel with serverless functions for the contact form.
-
Install dependencies
npm install
-
Create GitHub Personal Access Token
- Go to https://github.com/settings/tokens
- Create a token with
reposcope (needed to create issues) - Save the token securely
-
Configure environment variables locally
cp .env.example .env.local
Edit
.env.localwith your values:GITHUB_TOKEN=your_github_personal_access_token GITHUB_OWNER=hunterbeezley GITHUB_REPO=hunterbeezley.github.io -
Deploy to Vercel
# Install Vercel CLI if you haven't npm i -g vercel # Deploy vercel # Or deploy to production vercel --prod
-
Set environment variables in Vercel
Via Vercel Dashboard:
- Go to your project settings
- Navigate to Environment Variables
- Add:
GITHUB_TOKEN,GITHUB_OWNER,GITHUB_REPO
Or via CLI:
vercel env add GITHUB_TOKEN vercel env add GITHUB_OWNER vercel env add GITHUB_REPO
Once set up, the site deploys automatically when you push to the main branch:
- Push to main:
git push origin main - Vercel builds and deploys automatically
- Changes live in ~30 seconds
The contact form (/api/contact) is a serverless function that:
- Validates and sanitizes user input
- Implements rate limiting (5 submissions/hour per IP)
- Creates GitHub issues automatically
- Sends you email notifications via GitHub
No user authentication required - fully seamless experience!
Β© 2026 Hunter Beezley. All rights reserved.
The code structure and techniques are available for learning purposes. Please don't copy the content, design, or personal information.
- π Website: hunterbeezley.github.io
- π§ Email: contact@hunterbeezley.com
- πΌ LinkedIn: linkedin.com/in/hunterbeezley
- π» GitHub: @hunterbeezley
Built with β€οΈ and code by Hunter Beezley