Personal portfolio built with React + Vite + Framer Motion. Minimal, dark, fast — inspired by bkhmsi.github.io.
Live → youssefosama.dev
├── .github/
│ └── workflows/
│ └── deploy.yml ← Auto-deploy on push to main
├── public/
│ └── cv.pdf ← Your CV (replace this file)
├── src/
│ ├── main.tsx ← Entry point
│ ├── App.tsx ← Router + page transitions + ⌘K
│ ├── styles/
│ │ └── theme.css ← CSS variables, fonts, badges
│ ├── data/
│ │ └── portfolio.ts ← ✏️ ALL your content lives here
│ ├── components/
│ │ ├── Navbar.tsx ← Tab navigation + mobile menu
│ │ ├── Sidebar.tsx ← Sticky left sidebar (Home)
│ │ ├── CommandPalette.tsx← ⌘K command palette
│ │ ├── ScrollProgress.tsx← Golden top progress bar
│ │ └── PageReveal.tsx ← Scroll-triggered animations
│ └── pages/
│ ├── Home.tsx ← Bio + featured cards
│ ├── Projects.tsx ← All projects + filter
│ ├── Writing.tsx ← Articles + filter
│ └── About.tsx ← Timeline, skills, stats, contact
├── index.html
├── package.json
├── vite.config.ts
└── tailwind.config.js
All content is in one file: src/data/portfolio.ts
| Object | What to edit |
|---|---|
profile |
Name, bio, location, links, available status |
projects |
Your projects — title, stack, description, URLs |
articles |
Your articles — title, date, platform, language |
timeline |
Career milestones |
skills |
Your skills + level |
stats |
Numbers on the About page |
# Install dependencies
npm install
# Start dev server
npm run dev
# → opens at http://localhost:5173
# Build for production
npm run build
# Preview production build locally
npm run preview
On Android (Codespaces / Termux)? Open this repo in GitHub Codespaces —
npm run devworks out of the box. Codespaces forwards port 5173 automatically.
Every git push to main triggers GitHub Actions, which:
npm run builddist/ to the gh-pages branchOne-time setup:
mainThat’s it. Every future push auto-deploys.
npm run build
# Upload contents of dist/ to your hosting
cname: in .github/workflows/deploy.ymlCNAME file in public/ with your domain:
youssefosama.dev
A @ 185.199.108.153
A @ 185.199.109.153
A @ 185.199.110.153
A @ 185.199.111.153
CNAME www youssefosama.github.io
| Framework | React 18 + TypeScript |
| Build tool | Vite 5 |
| Animations | Framer Motion |
| Routing | React Router v6 |
| Styling | Tailwind CSS + CSS variables |
| Fonts | IBM Plex Mono · Newsreader · Cairo |
| Deploy | GitHub Actions → GitHub Pages |
MIT — feel free to fork and use as a template. If you do, a GitHub star is appreciated ⭐