Portfolio Website

June 28, 2026 ยท View on GitHub

The public portfolio frontend for the platform.

React Version Next.js Tailwind CSS

Overview

The portfolio website acts as the public-facing presentation layer for the platform. It interfaces securely with the gateway API via a long-lived API key to fetch dynamic profiles, experiences, projects, and technologies from the headless CMS (manager service).

Architecture

This section explains the technologies and physical layout of the portfolio website.

  • Framework: Built with React 19 and Next.js 16 (App Router)
  • Package manager: Managed and executed using bun
  • Styling: Styled with Tailwind CSS v4 and lucide-react icons
  • State: Uses Next.js Server Components and aggressive server-side caching for data fetching. Uses @tanstack/react-form-nextjs for complex form handling.
  • Routing: Server-side and client-side navigation handled natively by Next.js App Router

Project structure

  • app/: Next.js App Router pages, layouts, and global styles
  • components/: Reusable React components for UI elements
  • data/: Server-side data fetching and integration logic
  • lib/: Utility functions and Zod schemas
  • public/: Static assets

Features

This section outlines the capabilities of the portfolio website.

  • Performance: Built on Next.js 16 with React Compiler and view transitions enabled.
  • Design: Fully responsive, mobile-first design using Tailwind CSS.
  • Installable app: Supports Progressive Web App (PWA) standards for native-like installation.
  • Type-safe validation: Server API responses and contact forms validate strictly using zod.
  • Search Engine Optimization: Optimized for search engines with server-side rendering and automatic metadata.

Platform routing

The portfolio maps to the public-facing routes:

  • /: The home page featuring the profile, work timeline, and core technologies
  • /projects: The dedicated showcase of featured applications and services
  • /contact: A secure contact form protected by Cloudflare Turnstile

Getting started

This section explains how to run the portfolio website locally.

Prerequisites

  • Bun to manage dependencies and run scripts

Configuration

Export these variables directly in your .env file:

VariableDescriptionRequired
MANAGER_BACKEND_URLBase URL of the API Gateway / manager serviceYes
API_KEYLong-lived API key to authenticate with the API GatewayYes
NEXT_PUBLIC_TURNSTILE_SITE_KEYCloudflare Turnstile public keyYes
TURNSTILE_SECRET_KEYCloudflare Turnstile secret keyYes
MAIL_HOSTSMTP server hostYes
MAIL_USERSMTP server userYes
MAIL_PASSSMTP server passwordYes
MAIL_FROMEmail address to send contact form submissions fromYes
MAIL_TOEmail address to receive contact form submissionsYes
ARCHITECTURE_URLURL to fetch the dynamic architecture READMENo
CLARITY_KEYMicrosoft Clarity analytics IDYes
G_TAGGoogle Analytics tag IDYes
ENVSpecifies the current environment modeNo

Running locally

Install dependencies and start the development server:

bun install
bun run dev

Open http://localhost:3000 in your browser.

Build for production

Compile the application into static HTML, CSS, and JS assets for deployment:

bun run build
bun start