'use client' import { motion } from 'framer-motion' import { ArrowUpRight, ExternalLink } from 'lucide-react' import { Button } from '@/components/ui/button' import Link from 'next/link' const projects = [ { title: 'Hacker News Daily AI Reports', slug: 'hackernews', description: 'KI Tools werten zweimal täglich die Hacker News aus und beurteilen deren Relevanz in Bezug auf KI.', tech: ['Python', 'FastAPI', 'Openrouter', 'deepseek-reasoner', 'qwen3-max'], status: 'Aktiv', url: 'https://jamulix.de/hackernews/', featured: true, }, { title: 'Sorting Visualizer', slug: 'sorting', description: 'Interaktive Visualisierung verschiedener Sortieralgorithmen. Didaktisches Werkzeug für Algorithmen-Verständnis.', tech: ['Rust', 'WASM', 'Canvas'], status: 'Aktiv', url: 'https://jamulix.de/sorting', featured: true, }, { title: 'Projekt in Arbeit', slug: 'upcoming-1', description: 'KI-gestütztes Werkzeug für Code-Analyse und Dokumentation. Details folgen.', tech: ['Python', 'LLM', 'AST'], status: 'In Entwicklung', url: null, featured: false, }, { title: 'Geplant', slug: 'upcoming-2', description: 'Self-hosted Infrastruktur-Monitoring. Lightweight, ohne Cloud-Abhängigkeiten.', tech: ['Rust', 'Linux', 'SQLite'], status: 'Geplant', url: null, featured: false, }, ] function ProjectCard({ project, index }: { project: typeof projects[0]; index: number }) { const isClickable = project.url !== null return (
{/* Status badge */}
{project.status} {isClickable && ( )}
{/* Title */}

{project.title}

{/* Description */}

{project.description}

{/* Tech stack */}
{project.tech.map((tech) => ( {tech} ))}
{/* Link */} {isClickable && ( )}
) } export function ProjectsSection() { return (
{/* Section Header */} Experimente

Ausgewählte Projekte

Technische Experimente und Werkzeuge. Weniger Portfolio, mehr Labor für Ideen.

{/* Projects Grid */}
{projects.map((project, index) => ( ))}
) }