This document highlights the journey of recreating my portfolio website. I found creating a portfolio website very frustrating and time-consuming. Even after building one, you constantly need to update the code and add new projects and certificationsโwhich makes it even more time-consuming. So the initial thought was to make something that lasts forever and doesn't require manually changing the code every time I want to add a new project or achievement.
I've worked on several modern web development frameworks, but this time I wanted to explore something new.
| Category | Technology | Purpose |
|---|---|---|
| Frontend Framework | Next.js (React) | Building the user interface with high performance and SEO. |
| UI & Styling | Tailwind CSS | Rapid, responsive, utility-first styling. |
| UI Components | Shadcn/ui | Accessible, beautifully designed, and composable components. |
| Animations | Framer Motion | Adding fluid and professional animations. |
| Backend Logic | Next.js API Routes | Server-side logic, data fetching, and API integrations. |
| Database ORM | Prisma | Interacting with the database in a type-safe way. |
| Database | PostgreSQL (hosted on Supabase/Neon) | Storing structured data (projects, posts, etc.). |
| Image & Asset Mgmt | Cloudinary | Storing, optimizing, and delivering certificate images. |
| Deployment | Vercel | Hosting, CI/CD, and serverless functions. |
| Language | TypeScript | Adding static typing for robustness and scalability. |
The traditional method is to update it manually, but that's not what I'm going to do.
I want to show my current progress at all times to anyone who visits. I see only one way to do thisโusing a GitHub Personal Access Token (PAT). All my work eventually ends up on GitHub, so I need to extract the information from there. But how?
GitHub PATs are designed to access GitHub resources on your behalf. A token has the same capabilities to access resources and perform actions that you do, limited only by the scopes or permissions granted to it. After discovering this, I realized I could keep my website updated automatically. I no longer need to manually specify which languages I'm working with or what frameworks I've usedโit will all be clearly visible on my website.
To use this token more effectively, why not also display my GitHub commit graph and add links to popular pull requests and resolved issues.
The portfolio website is organized into the following sections, each implemented as a separate component. This structure may evolve as the project develops.
Hero Section [Landing page with professional introduction]

Services Section [Services and expertise offered]

Project Section [Featured projects and work samples]
