A modern, responsive portfolio website built with Next.js 14, featuring a 3D animated hero, smooth scroll animations, and a dark theme.
Live Site: rayancheca.vercel.app (deploy to Vercel to go live)
# Clone the repo
git clone https://github.com/rayancheca/rayancheca.github.io.git
cd rayancheca.github.io
# Install dependencies
npm install
# Start development server
npm run dev
# Open http://localhost:3000
rayancheca/rayancheca.github.ionpm install -g vercel
vercel login
vercel --prod
from_name — sender’s namefrom_email — sender’s emailmessage — the message content.env.local.example to .env.localNEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id
NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=your_public_key
The form works in demo mode without credentials — it simulates success.
Edit src/lib/projects.ts to add, remove, or modify projects.
{
id: 'project-id',
name: 'Project Name',
description: 'Short description',
longDescription: 'Detailed description (optional)',
tech: ['Go', 'React', 'Docker'],
category: 'systems', // systems | security | ios | web
github: 'https://github.com/rayancheca/project-name',
live: 'https://live-demo-url.com', // optional
featured: true, // shows "Featured" badge
}
Edit src/components/About.tsx to update bio, interests, or education.
Edit src/components/Skills.tsx to update skill categories and levels.
Edit src/components/Experience.tsx to add work experience or education entries.
src/
├── app/
│ ├── layout.tsx # Root layout, fonts, metadata
│ ├── page.tsx # Home page
│ └── globals.css # Global styles
├── components/
│ ├── Hero.tsx # Hero section with 3D background
│ ├── About.tsx # Bio, education, interests
│ ├── Skills.tsx # Skills with progress bars
│ ├── Projects.tsx # Project filter + grid
│ ├── ProjectCard.tsx # Individual project card
│ ├── Experience.tsx # Timeline
│ ├── Contact.tsx # Contact form
│ └── ...
├── hooks/
│ ├── useTypewriter.ts # Typewriter animation
│ └── useGitHubStats.ts # Fetch repo stats
├── lib/
│ ├── projects.ts # Project data
│ └── emailjs.ts # EmailJS config
└── types/
└── index.ts # TypeScript types
# Start dev server
npm run dev
# Type check
npm run lint
# Build for production
npm run build
# Start production server
npm start
MIT
Built by Rayan Karim Checa with Claude Code