Skip to content

Repository files navigation

Amir Akbarpour — Portfolio

The production portfolio for Amir Mohammad Akbarpour, a software engineer working across full-stack product systems, applied machine learning, computer vision, and developer tooling.

Live site: akbarpour.dev

Experience

  • Editorial, portrait-led interface with responsive GSAP motion
  • Lenis smooth scrolling synchronized through the GSAP ticker
  • Custom cursor, magnetic interactions, and single-rAF project previews
  • Dual-curtain project transitions and scroll restoration
  • Static case studies for Abniran, BSEZ, Hojir, and Flect
  • Environment-driven Telegram contact delivery
  • Reduced-motion and keyboard-accessible fallbacks

Local development

Requires Node.js 20.9 or newer.

git clone https://github.com/aakbarpour/portfolio.git
cd portfolio
npm install
cp .env.example .env.local
npm run dev

The contact form sends a formatted private message through Telegram. Create a bot with @BotFather, send the bot a message (or add it to the destination group), and set these server-only variables in .env.local:

TELEGRAM_BOT_TOKEN=123456:replace-with-your-token
TELEGRAM_CHAT_ID=replace-with-your-user-or-group-id

Never prefix either value with NEXT_PUBLIC_; both secrets must remain server-side.

Portrait asset

The supplied transparent portrait is stored at:

  • public/me/amir-portrait.png

Next.js generates responsive AVIF/WebP variants for the hero and About compositions.

Deploying to Vercel

Vercel detects the Next.js app automatically, so no custom build adapter is required. Import the repository, keep the default build command (npm run build), and add TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID under Project Settings → Environment Variables for Production and Preview. Redeploy after adding or changing either secret.

Validation

npm run lint
npx tsc --noEmit
npm run build

Scripts

Command Purpose
npm run dev Start the local development server
npm run build Create a production build
npm run start Serve the production build
npm run lint Run ESLint

Attribution and license

Based on the open-source portfolio by Aitezaz Sikandar and customized under its MIT license. The upstream copyright and license notice remain in LICENSE.

About

Personal portfolio of Amir Mohammad Akbarpour — full-stack systems, applied machine learning, and developer tooling.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages