Personal portfolio site built with Next.js 14, TypeScript, and Tailwind CSS.
- Next.js 14 (App Router)
- TypeScript
- Tailwind CSS
- Resend — contact form emails
- Vercel — deployment
# 1. Install dependencies
npm install
# 2. Set up environment variables
cp .env.example .env.local
# → edit .env.local and add your RESEND_API_KEY
# 3. Run the dev server
npm run dev
# → open http://localhost:3000src/
├── app/
│ ├── globals.css # CSS variables, base styles, utilities
│ ├── layout.tsx # Root layout + metadata
│ ├── page.tsx # Home page — assembles all sections
│ └── api/contact/route.ts # Contact form API (Resend)
├── components/
│ ├── Nav.tsx # Sticky nav with mobile menu
│ ├── Footer.tsx
│ ├── ui/
│ │ └── FadeUp.tsx # Scroll-triggered fade animation
│ └── sections/
│ ├── Hero.tsx
│ ├── About.tsx
│ ├── Projects.tsx
│ ├── Testimonials.tsx
│ └── Contact.tsx
└── lib/
└── data.ts # ← ALL content lives here. Edit this file.
Everything you need to update is in src/lib/data.ts:
siteConfig— your name, email, social linksprojects— add/edit/remove projects (updatedemo,github,caseStudylinks)testimonials— swap in real testimonials as you collect themskills— adjust percentages as your skills growaiTools— your current AI tool stackvalues— what you care about
- Create a free account at resend.com
- Get your API key from the Resend dashboard
- Add to
.env.local:RESEND_API_KEY=re_your_key_here CONTACT_EMAIL=emakenemiprosper@gmail.com - On Vercel, add these same env vars in Project Settings → Environment Variables
# Push to GitHub first
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/Emak-star/portfolio.git
git push -u origin mainThen go to vercel.com, import the repo, add your env vars, and click Deploy. Done.
Drop your CV file as public/cv.pdf — the nav and contact section already link to /cv.pdf.