Personal Project

Portfolio + Personal Blog

Portfolio + Personal Blog
  • Next.js 13
  • React 18
  • CSS Modules
  • Markdown
  • GitHub Actions

Description

This is the website you are currently viewing—a professional portfolio combined with a personal blog. It is built with Next.js 13 using the Pages Router and leverages full static generation to ensure fast and efficient deployment.

Key Features

  • Fully featured blog powered by Markdown files with frontmatter support
  • Projects section designed to showcase work to recruiters and collaborators
  • Syntax highlighting implemented with react-syntax-highlighter
  • Modern and professional design with a dark theme
  • Automated deployment via GitHub Actions
  • Fully static architecture — no database and no API calls at build time
  • Responsive design — optimized for mobile, tablet, and desktop
  • SEO optimized using Next.js Head and meta tags

Tech Stack

  • Frontend: React 18 with Next.js 13 (Pages Router)
  • Styling: CSS Modules with CSS variables
  • Content Management: Markdown with gray-matter for frontmatter parsing
  • Typography: Oswald (headings), Roboto (body), Source Code Pro (code)
  • Deployment: GitHub Actions → Vercel or custom hosting

Key Learnings

Maintaining a clear separation between the data layer (lib/projects-util.js and lib/posts-util.js) and presentation components significantly improves code maintainability and testability.

Using CSS Modules instead of a CSS framework ensures proper style scoping and prevents conflicts across components.

Additionally, implementing a well-structured dark theme with clearly defined CSS tokens enables consistent and efficient feature development.