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