diff --git a/.claude/ralph-loop.local.md b/.claude/ralph-loop.local.md
new file mode 100644
index 0000000..42fc15b
--- /dev/null
+++ b/.claude/ralph-loop.local.md
@@ -0,0 +1,89 @@
+---
+active: true
+iteration: 1
+max_iterations: 50
+completion_promise: "PHASE1_COMPLETE"
+started_at: "2026-01-02T11:35:45Z"
+---
+
+
+# SSL-Monitor Phase 1: Foundation
+
+## Kontext
+- Verzeichnis: /home/frontend/ssl-monitor
+- Tech Stack: Next.js 15 (App Router), Tailwind CSS, shadcn/ui, SQLite (better-sqlite3), BullMQ
+- Port: 3009
+- Redis: localhost:6379 (existiert bereits)
+
+## Ziel
+Grundgerüst mit funktionierendem SSL-Check und Dashboard erstellen.
+
+## Aufgaben
+
+### 1. Projekt-Setup
+- [ ] Next.js 15 mit App Router initialisieren (falls nicht vorhanden)
+- [ ] Dependencies installieren: better-sqlite3, bullmq, ioredis, zod, date-fns
+- [ ] Tailwind CSS + shadcn/ui konfigurieren
+- [ ] Projektstruktur gemäß umsetzung.md anlegen
+
+### 2. Datenbank
+- [ ] SQLite Schema erstellen (src/lib/db.ts)
+- [ ] Tabellen: domains, ssl_checks, categories, settings
+- [ ] Initial-Seed: 3 Default-Kategorien (Development, Production, External)
+- [ ] Initial-Seed: 16 Domains aus umsetzung.md
+
+### 3. SSL-Checker
+- [ ] src/lib/ssl-checker.ts: tls.connect() Implementation
+- [ ] Zertifikat-Parsing (Issuer, Subject, Validity, SANs)
+- [ ] Certificate Chain Analyse
+- [ ] OCSP-Status Check (src/lib/ocsp-checker.ts)
+- [ ] Error-Handling mit Kategorisierung (dns, connection, certificate, timeout)
+- [ ] Retry-Logik (Exponential Backoff)
+
+### 4. Queue System
+- [ ] src/lib/queue.ts: BullMQ Queue Setup
+- [ ] worker/ssl-worker.ts: Worker Process
+- [ ] Concurrency: 5 parallele Checks
+- [ ] Job-Options: 3 Attempts, Exponential Backoff
+
+### 5. API Routes
+- [ ] GET/POST /api/domains - Domain CRUD
+- [ ] GET/PUT/DELETE /api/domains/[id]
+- [ ] POST /api/check - Single Domain Check (queued)
+- [ ] POST /api/check/all - Alle Domains checken
+- [ ] GET /api/history/[domainId] - Check History
+
+### 6. Dashboard UI
+- [ ] src/app/page.tsx: Dashboard mit Grid Layout
+- [ ] components/dashboard/DomainCard.tsx: Expandable Card
+- [ ] components/common/StatusBadge.tsx: Ampel (Grün/Gelb/Rot/Grau)
+- [ ] components/dashboard/FilterBar.tsx: Kategorie + Status Filter + Suche
+- [ ] components/domain/CertificateChain.tsx: Chain Visualisierung
+
+## Erfolgskriterien
+- [ ] `pnpm build` erfolgreich
+- [ ] `pnpm lint` ohne Errors
+- [ ] Dashboard zeigt alle 16 Domains
+- [ ] SSL-Check für eine Domain funktioniert (manueller Test)
+- [ ] Queue-Worker startet und verarbeitet Jobs
+- [ ] StatusBadge zeigt korrekte Farben basierend auf daysRemaining
+
+## Selbst-Prüfung nach jeder Iteration
+1. `pnpm lint --fix`
+2. `pnpm build`
+3. Falls Fehler: analysieren, korrigieren, wiederholen
+4. Falls Build erfolgreich: nächste Aufgabe
+
+## Bei Blockade nach 40 Iterationen
+- Dokumentiere in BLOCKERS.md was nicht funktioniert
+- Liste versuchte Ansätze
+- Markiere welche Aufgaben abgeschlossen sind
+
+## Referenz
+Lies /home/frontend/ssl-monitor/umsetzung.md für Details zu:
+- Datenbank-Schema (Abschnitt 2.2)
+- SSLCheckResult Interface (Abschnitt 3.2.1)
+- Domain-Seed Daten (Abschnitt 5.3)
+
+Output PHASE1_COMPLETE wenn alle Aufgaben erledigt.
+
diff --git a/README.md b/README.md
index b84b58d..e215bc4 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,36 @@
-# frontend.porwoll.de
-Frontend for porwoll.de - Next.js with Payload CMS
+This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
+
+## Getting Started
+
+First, run the development server:
+
+```bash
+npm run dev
+# or
+yarn dev
+# or
+pnpm dev
+# or
+bun dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
+
+This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
+
+## Learn More
+
+To learn more about Next.js, take a look at the following resources:
+
+- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
+- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
+
+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
+
+## Deploy on Vercel
+
+The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
+
+Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 05e726d..f135d3d 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -5,13 +5,21 @@ import nextTs from "eslint-config-next/typescript";
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
- // Override default ignores of eslint-config-next.
+ {
+ rules: {
+ "@typescript-eslint/no-unused-vars": ["warn", {
+ argsIgnorePattern: "^_",
+ varsIgnorePattern: "^_",
+ destructuredArrayIgnorePattern: "^_",
+ }],
+ },
+ },
globalIgnores([
- // Default ignores of eslint-config-next:
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
+ "server.js",
]),
]);
diff --git a/src/components/blocks/QuoteBlock.tsx b/src/components/blocks/QuoteBlock.tsx
index 1deb684..ca10c23 100644
--- a/src/components/blocks/QuoteBlock.tsx
+++ b/src/components/blocks/QuoteBlock.tsx
@@ -1,7 +1,6 @@
'use client'
import { motion } from 'framer-motion'
-import { cn } from '@/lib/utils'
interface QuoteBlockProps {
block: Record