A modern, high-performance CV/Portfolio website with a retro 80s synthwave aesthetic. Built with Next.js 16 and deployed on Cloudflare Workers for global edge performance.
Live Site: https://hiyahya.dev
- Retro 80s Synthwave Theme - Neon colors, gradient effects, and nostalgic vibes
- Smooth Animations - Motion (Framer Motion v12) powered interactions
- Native Smooth Scrolling - CSS-based smooth scroll (no JavaScript required)
- Parallax Effects - Sunset sun with scroll-based animations
- Responsive Design - Mobile-first, works perfectly on all devices
- Dark Mode - Synthwave dark theme with neon accents
- Edge Deployment - Cloudflare Workers with global CDN
- Static Generation - Pre-rendered pages for instant loads
- Image Optimization - Next.js Image component with Cloudflare Images support
- Lightweight - Minimal dependencies, maximum performance
- Single Config File - Update everything in
src/data/resume-data.tsx - TypeScript - Full type safety throughout
- Git Hooks - Automated code quality checks with Lefthook
- Auto Deploy - Push to
mainbranch triggers automatic deployment - Hot Reload - Fast local development with Next.js Turbopack
- Next.js 16 - React framework with App Router
- React 19 - UI library
- TypeScript 5.9 - Type safety
- Tailwind CSS 3.4 - Utility-first CSS
- Radix UI - Headless UI components
- Custom Synthwave Theme - Neon colors, gradients, and animations
- Motion (Framer Motion v12) - Declarative animations
- Native CSS - Smooth scrolling and transitions
- Scroll-based animations - Parallax effects with Motion hooks
- @opennextjs/cloudflare - OpenNext adapter for Cloudflare
- Cloudflare Workers - Edge computing platform
- Wrangler - Cloudflare CLI
- Lucide React - Minimal, tree-shakeable icon library
- Radix UI Primitives - Accessible UI components (Dialog, Slot)
- Lefthook - Fast Git hooks manager
- ESLint - Code linting
- Prettier - Code formatting
- TypeScript - Type checking
# Clone the repository
git clone https://github.com/yahyafakhroji/cv.git
cd cv
# Install dependencies
bun install# Start development server
bun dev
# Open http://localhost:3000This project uses Lefthook for automated code quality checks. Hooks are automatically installed on bun install.
Pre-commit checks:
- ESLint with auto-fix
- TypeScript type checking
- No
console.login source files
Pre-push checks:
- Full build validation
Commit message validation:
- Enforces Conventional Commits format
See docs/LEFTHOOK.md for detailed documentation.
# Build for production
npm run pages:build
# Preview locally
bun run pages:dev# Deploy to production
bun run pages:deployPush to main branch to automatically trigger deployment via Cloudflare Workers integration with GitHub.
Edit src/data/resume-data.tsx to customize:
- Personal information
- Work experience
- Projects
- Skills
- Education
- Contact details
Update wrangler.toml to add your custom domain:
[[routes]]
pattern = "yourdomain.com"
custom_domain = trueModify colors and styles in:
src/app/globals.css- CSS variables and themetailwind.config.js- Tailwind configuration
cv/
βββ src/
β βββ app/ # Next.js App Router
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Home page
β β βββ globals.css # Global styles & theme
β βββ components/
β β βββ sections/ # Page sections
β β β βββ hero.tsx
β β β βββ about.tsx
β β β βββ experience.tsx
β β β βββ projects.tsx
β β β βββ skills.tsx
β β βββ ui/ # Reusable UI components
β β βββ animations/ # Animation components
β β βββ providers/ # React context providers
β βββ data/
β β βββ resume-data.tsx # π Edit this file!
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions
βββ open-next.config.ts # OpenNext configuration
βββ wrangler.toml # Cloudflare Workers config
βββ package.json # Dependencies & scripts
The portfolio includes these sections:
- Hero - Introduction with animated text
- About - Personal summary
- Experience - Work history timeline
- Projects - Portfolio showcase
- Skills - Technical skills grid
- Contact - Get in touch section
- Footer - Social links
# Development
bun dev # Start dev server
bun run build # Build Next.js app
# Cloudflare Deployment
bun run pages:build # Build with OpenNext
bun run pages:dev # Preview locally
bun run pages:deploy # Deploy to Cloudflare
# Code Quality
bun run lint # Run ESLint- Developed with: Claude Code - AI-powered coding assistant
- Logo/Favicon: Generated with Google Gemini Nano
- Deployed with: OpenNext Cloudflare
- Hosting: Cloudflare Workers
Yahya Fakhroji
- Website: hiyahya.dev
- GitHub: @yahyafakhroji
- LinkedIn: yahya-fakhroji
Built with β€οΈ using Next.js and Claude Code