Back to Overview

Portfolio

Tags:Front-EndBack-EndFull-StackWebsite
Technologies:NextJSTypeScriptTaildwind CSSshadcn/uiPostgreSQL

You're looking at it right now! This portfolio is a full-stack site built completely from scratch - no CMS, no template, just a space to showcase my work and experiment with the stack I actually enjoy using.

The Stack

  • Framework: Next.js with the React Compiler enabled for automatic memoization.
  • Language: TypeScript, strict mode throughout.
  • Styling: Tailwind CSS paired with Shadcn UI and Radix primitives for accessible, consistent components.
  • Database: PostgreSQL, queried through Prisma ORM.
  • Package Manager: Bun, for fast installs and script execution.
  • Email: Resend + React Email for the contact form.
  • Animations: Framer Motion for subtle scroll-reveal and page transitions.

Auth & Admin

Authentication runs on a custom Discord OAuth2 implementation - no third-party auth library, just handled callbacks, token refresh, and session management written by hand. Logged-in admins and writers get access to a protected dashboard where they can:

  • Write and publish blog posts (Markdown-powered, with syntax highlighting and nested comments)
  • Manage projects - like this one!
  • Manage user roles and permissions

Theming

Light, dark, system, and two Catppuccin variants (Latte and Macchiato), because a portfolio should feel like home.

Why Build It Myself?

Every "boring" feature - auth, comments, theming, forms - became a small excuse to dig into an edge case I hadn't hit before. This site is as much a learning log as it is a portfolio.