# GEMINI.md - Portfolio Project Guide ## Project Overview Personal portfolio for Dennis Konkol (dk0.dev). A modern, high-performance Next.js 15 application featuring a "liquid" design system, integrated with Directus CMS and n8n for real-time status and content management. ## Tech Stack & Architecture - **Framework**: Next.js 15 (App Router), TypeScript, React 19. - **UI/UX**: Tailwind CSS 3.4, Framer Motion 12, Three.js (Background). - **Backend/Data**: PostgreSQL (Prisma), Redis (Caching), Directus (CMS), n8n (Automation). - **i18n**: next-intl (German/English). ## Core Principles for Gemini - **Safe Failovers**: Always implement fallbacks for external APIs (Directus, n8n). The site must remain functional even if all external services are down. - **Liquid Design**: Use custom `liquid-*` color tokens for consistency. - **Performance**: Favor Server Components where possible; use `use client` only for interactivity. - **Code Style**: clean, modular, and well-typed. Use functional components and hooks. - **i18n first**: Never hardcode user-facing strings; always use `messages/*.json`. ## Common Workflows ### API Route Pattern API routes should include: - Rate limiting (via `lib/auth.ts`) - Timeout protection - Proper error handling with logging in development - Type-safe responses ### Component Pattern - Use Framer Motion for entrance animations. - Use `next/image` for all images to ensure optimization. - Follow the `glassmorphism` aesthetic: `backdrop-blur-sm`, subtle borders, and gradient backgrounds. ## Development Commands - `npm run dev`: Full development environment. - `npm run lint`: Run ESLint checks. - `npm run test`: Run unit tests. - `npm run test:e2e`: Run Playwright E2E tests. ## Environment Variables (Key) - `DIRECTUS_URL` & `DIRECTUS_STATIC_TOKEN`: CMS connectivity. - `N8N_WEBHOOK_URL` & `N8N_SECRET_TOKEN`: Automation connectivity. - `DATABASE_URL`: Prisma connection string. ## Git Workflow - Work on the `dev` branch. - Use conventional commits: `feat:`, `fix:`, `chore:`, `docs:`, `refactor:`. - Push to both GitHub and Gitea remotes.