Personal portfolio of Arman Danesh, Front-End Developer.
Built with Next.js 15 (App Router), TypeScript, Tailwind CSS, Framer Motion, and react-icons.
Live: arman-danesh.github.io/my-resume
| Feature | Detail |
|---|---|
| Bilingual | English / Persian with RTL and smooth crossfade |
| Sections | About, Info, Education, Focus areas, Contact, Skills, Experience, Services, Projects, Live links |
| Motion | Welcome intro, skill bars, circular progress, scroll-in cards |
| PWA-ready | manifest.webmanifest + SVG logo/favicon |
| Static export | output: "export" → deploy out/ to GitHub Pages |
next/font)my-resume/
├── app/
│ ├── layout.tsx # Root layout, fonts, SEO, PWA metadata
│ ├── page.tsx # Home: welcome + sidebar + main
│ └── globals.css # Tokens, scrollbar, selection
├── components/
│ ├── Sidebar.tsx # Profile, about, info, education, contact
│ ├── MainContent.tsx # Skills, experience, services, projects
│ ├── SkillBar.tsx # Horizontal skill progress
│ ├── CircularProgress.tsx# Focus-area rings
│ ├── ServiceCard.tsx # “What I offer” card
│ └── WelcomeAnimation.tsx# Intro overlay
├── lib/
│ ├── data.ts # All EN/FA content (edit here)
│ ├── types.ts # Shared TypeScript interfaces
│ └── LanguageContext.tsx # Locale state + toggle
├── public/
│ ├── logo.svg # Brand mark (PWA + welcome)
│ ├── favicon.svg
│ ├── manifest.webmanifest
│ ├── bg_image.svg # Page background
│ └── profile-image.jpg # Sidebar photo
├── next.config.ts # Static export settings
├── tailwind.config.ts
└── package.json
git clone https://github.com/arman-danesh/my-resume.git
cd my-resume
git checkout dev
npm install
npm run dev
Open http://localhost:3000.
npm run build
# Output: out/
Deploy the contents of out/ to GitHub Pages (or any static host).
| Command | Description |
|---|---|
npm run dev |
Local development server |
npm run build |
Static export to out/ |
npm run start |
Serve production build (if not using pure static host) |
npm run lint |
Next.js ESLint |
All copy lives in lib/data.ts:
en / fa objects mirror each otherlib/types.tsAfter editing, the UI updates automatically (no other files required for text).
| Token | Value |
|---|---|
| Gold | #DBA507 |
| Gold light / dark | #F0C14B / #B8860B |
| Surface | rgba(33, 33, 40, 0.75) |
| Background | #0B0B0D |
Defined in tailwind.config.ts and app/globals.css.
LanguageContext.toggleLanguage runs a short fade (isSwitching).locale flips; page.tsx sets document.documentElement.lang and dir.t from useLanguage() and re-render.npm run buildout/ to the gh-pages branch (or use Actions).basePath in next.config.ts if the site is not at the domain root.Current live URL assumes: https://arman-danesh.github.io/my-resume/
MIT © Arman Danesh