PersonalLive
mrashidi.me
A terminal-flavoured portfolio for a software engineer in Berlin.
- Role
- Design and engineering
- Year
- 2025

Overview
Mahdi Rashidi's personal site and the home of 18 project write-ups. It opens on an interactive terminal, keeps a filterable project catalogue with a details drawer, and pulls in a live GitHub contribution graph and posts from Medium.
The catalogue is the model for the section you are reading now.
Highlights
- An interactive terminal with command history
- A project catalogue with regex search, stack facets and filters kept in the URL
- Last-commit info for each open source project, pulled from GitHub
- CV requests over email, protected by reCAPTCHA and rate limiting
- Installable as a PWA, with per-page OG images and JSON-LD
How it's built
- Next.js 16 and React 19 on Vercel
- The projects feature is a self-contained module split into domain, application, infrastructure and UI layers
- Upstash rate limiting and a strict content security policy
- Vitest and Playwright, with axe accessibility checks
- Automated semantic-version releases
Stack · 6
- TypeScript
- Next.js
- React
- Tailwind
- Vercel
- Sentry
Gallery

