Skip to content
Back to projects

Portfolio Website

This site — a Next.js frontend backed by a NestJS API, with every section served from PostgreSQL instead of hard-coded content.

Po

Overview

The portfolio started as a static Next.js site and was rebuilt as a full-stack application. All content — profile, skills, projects, and experience — lives in PostgreSQL and is served through a NestJS REST API, so updating the site means updating data rather than redeploying components. The frontend keeps its original dark glass interface and scroll-triggered motion.

What it does

  • Modern, responsive dark interface with scroll-triggered motion, built with Next.js App Router and Tailwind CSS.
  • NestJS REST API serving profile, skills, projects, and experience content from PostgreSQL via Drizzle ORM.
  • Admin panel behind JWT authentication for managing projects and site content without touching code.
  • Contact form persisted to PostgreSQL with server-side validation, per-route rate limiting, and a honeypot field.
  • Swagger documentation generated from the same Zod schemas that validate incoming requests.
  • Containerized with Docker Compose and served behind an Nginx reverse proxy in production.

Built with

NestJSTypeScriptPostgreSQLDrizzle ORMNext.jsReactTailwind CSSFramer MotionJWTSwaggerDockerNginx