# AndrΓ© Kempf β€” Developer Portfolio A fast, privacy-focused, and accessible developer portfolio built with **Next.js 16 (App Router)**, **Tailwind CSS**, and **React 19**, backed by multi-language support (`next-intl`) and a custom analytics setup. [![Deployment Status](https://git.andre-kempf.com/Chneemann/portfolio/badges/workflows/deploy.yml/badge.svg?branch=main)](https://git.andre-kempf.com/Chneemann/portfolio/actions) [![Website Status](https://img.shields.io/badge/website-online-brightgreen?style=flat-square&logo=google-chrome&logoColor=white)](https://andre-kempf.com) ![Next.js](https://img.shields.io/badge/Next.js-16-black?style=flat-square&logo=next.js) ![React](https://img.shields.io/badge/React-19-blue?style=flat-square&logo=react) ![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?style=flat-square&logo=typescript) ![Tailwind CSS](https://img.shields.io/badge/Tailwind-v4-38bdf8?style=flat-square&logo=tailwind-css) --- ## πŸš€ Key Features - **Command Palette (`Cmd + K`):** Interactive utility menu with keyboard shortcuts, quick social navigation, resume downloads, and contextual actions. - **Internationalization (`next-intl`):** Fully integrated multi-language support (English and German) with localized routing (`/en`, `/de`) and dynamic message loading. - **Privacy-First Analytics Engine:** Custom Next.js API backend providing real-time page metric tracking using session-based rate limiting and GDPR-compliant IP hashing. - **Terminal Inspector:** Integrated terminal widget and modal to view live system metrics, device usage ratios, and ping response latency. - **Performance & Accessibility:** Zero layout shifts (CLS), optimized font loading, dynamic SSR/client component boundaries, and high contrast Dark/Slate aesthetic. --- ## πŸ› οΈ Tech Stack & Architecture ### Frontend - **Framework:** [Next.js 16](https://nextjs.org/) (App Router) - **UI & Styling:** [React 19](https://react.dev/), [Tailwind CSS v4](https://tailwindcss.com/) - **Localization:** [next-intl](https://next-intl-docs.vercel.app/) (Routing, Middleware Proxy & Client/Server translation context) - **Icons & Components:** Lucide Icons, Custom UI Components - **State & Events:** Native CustomEvents, React State ### Backend & Analytics - **Runtime:** Node.js / Next.js API Routes (App Router) - **Data Privacy:** One-way IP Hashing (`SHA-256` / daily salt), Session Rate Limiting - **Protocol:** JSON REST API / Server Actions ### Infrastructure & CI/CD - **Hosting:** VPS / Docker Containers - **CI/CD Pipeline:** Self-hosted Forgejo Actions (Automated build & SSH deployment) - **Mirroring:** Automated sync to GitHub --- ## πŸ› οΈ Getting Started ### Prerequisites - **Node.js:** v18.18.0 or higher (v20+ / v26+ recommended) - **Package Manager:** npm / pnpm / yarn ### Local Setup 1. **Clone the repository:** ```bash git clone [https://git.andre-kempf.com/Chneemann/portfolio.git](https://git.andre-kempf.com/Chneemann/portfolio.git) cd portfolio ``` 2. **Install dependencies:** ```bash npm install ``` 3. **Start development server:** ```bash npm run dev ``` Open [http://localhost:3000](http://localhost:3000) in your browser. --- ## πŸ“ Repository Structure ```text β”œβ”€β”€ src/ # Source Code β”‚ β”œβ”€β”€ app/ # Next.js App Router (Pages, Routes & API) β”‚ β”‚ β”œβ”€β”€ [locale]/ # Localized App Routes (en / de) β”‚ β”‚ β”‚ β”œβ”€β”€ layout.tsx # Localized Layout (NextIntlClientProvider & Shell UI) β”‚ β”‚ β”‚ └── page.tsx # Landing Page / Main View β”‚ β”‚ β”œβ”€β”€ api/ # Native Next.js Route Handlers β”‚ β”‚ β”‚ └── analytics/ β”‚ β”‚ β”‚ └── route.ts # Live Metrics & Traffic Handler (JSON-based) β”‚ β”‚ β”œβ”€β”€ imprint/ β”‚ β”‚ β”‚ └── page.tsx # Imprint Page β”‚ β”‚ β”œβ”€β”€ privacy/ β”‚ β”‚ β”‚ └── page.tsx # Privacy Policy Page β”‚ β”‚ β”œβ”€β”€ globals.css # Global Styles & Tailwind Imports β”‚ β”‚ β”‚ β”œβ”€β”€ components/ # Reusable UI & Layout Components β”‚ β”‚ β”œβ”€β”€ About.tsx # About Me & Bio Section β”‚ β”‚ β”œβ”€β”€ AnalyticsModal.tsx # Terminal-Style Analytics Modal β”‚ β”‚ β”œβ”€β”€ AnalyticsWidget.tsx # Footer Performance & Metrics Badge β”‚ β”‚ β”œβ”€β”€ Background.tsx # Dynamic Canvas / Background Effects β”‚ β”‚ β”œβ”€β”€ CommandPalette.tsx # Cmd+K Interactive Command Menu β”‚ β”‚ β”œβ”€β”€ Contact.tsx # Contact Form Section (Formspree Integration) β”‚ β”‚ β”œβ”€β”€ Footer.tsx # Footer with Links & Credits β”‚ β”‚ β”œβ”€β”€ Header.tsx # Navigation Header & Search Trigger β”‚ β”‚ β”œβ”€β”€ Hero.tsx # Hero Section / Intro Banner β”‚ β”‚ β”œβ”€β”€ Portfolio.tsx # Project Showcase & Cards β”‚ β”‚ β”œβ”€β”€ Skills.tsx # Tech Stack & Skill Matrix β”‚ β”‚ └── Social.tsx # Social Media Links & Bar Component β”‚ β”‚ β”‚ β”œβ”€β”€ lib/ # Pure Utility Scripts, Configs & Helpers β”‚ β”‚ β”œβ”€β”€ paletteCommands.ts # Registered Cmd+K Commands & Actions β”‚ β”‚ └── playSudoEasterEgg.ts # Easter-Egg Shell Simulation Logic β”‚ β”‚ β”‚ β”œβ”€β”€ i18n/ # Localization Core & Configurations β”‚ β”‚ β”œβ”€β”€ messages/ # Translation JSON files (en.json, de.json) β”‚ β”‚ β”œβ”€β”€ navigation.ts # Localized navigation utilities (Link, redirect, useRouter) β”‚ β”‚ β”œβ”€β”€ request.ts # Dynamic message loading per request locale β”‚ β”‚ └── routing.ts # Supported locales and default fallback rules β”‚ β”‚ β”‚ └── proxy.ts # Next.js Middleware Proxy for next-intl routing β”‚ β”œβ”€β”€ public/ # Static Assets (Client Access) β”‚ β”œβ”€β”€ robots.txt # Search Engine Directives β”‚ β”œβ”€β”€ sitemap.xml # XML Sitemap β”‚ └── assets/ β”‚ β”œβ”€β”€ downloads/ # Downloadable Files (e.g. CV PDF) β”‚ β”œβ”€β”€ icons/ # SVG Icons & Favicons β”‚ β”œβ”€β”€ images/ # Profile Assets & Screenshots β”‚ └── projects/ # Project Graphics & Previews β”‚ β”œβ”€β”€ Dockerfile # Container Build Instructions β”œβ”€β”€ eslint.config.mjs # ESLint Rules β”œβ”€β”€ next.config.ts # Next.js Configuration β”œβ”€β”€ package.json # Project Dependencies & Scripts β”œβ”€β”€ postcss.config.mjs # PostCSS Setup β”œβ”€β”€ README.md # Project Documentation └── tsconfig.json # TypeScript Compiler Rules ``` --- ## πŸ“œ License & Credits - **Author:** AndrΓ© Kempf ([dev@andre-kempf.com](mailto:dev@andre-kempf.com)) - **Design & Code:** Built from scratch with Next.js, React & Tailwind CSS.