// Dev year-in-review — contribution heatmap + language mix + repos. 1600×1000. import { Cell, Pie, PieChart, ResponsiveContainer, } from "recharts"; import { CodeIcon, FlameIcon, GitBranchIcon, GitCommitIcon, GitPullRequestIcon, MessageSquareIcon, StarIcon, } from "lucide-react"; // ---------- data ---------- // 53 weeks × 7 days contribution heatmap const heat = Array.from({ length: 53 }, (_, w) => Array.from({ length: 7 }, () => { const r = Math.random(); if (r < 0.35) return 0; if (r < 0.55) return 1; if (r < 0.78) return 2; if (r < 0.92) return 3; return 4; }), ); const levelColor = [ "rgba(255,255,255,0.05)", "#0e4429", "#006d32", "#26a641", "#39d353", ]; const langs = [ { name: "TypeScript", value: 48, color: "#3178c6" }, { name: "Python", value: 22, color: "#ffd54f" }, { name: "Rust", value: 14, color: "#ff8a65" }, { name: "Go", value: 9, color: "#00add8" }, { name: "Swift", value: 5, color: "#f05138" }, { name: "Other", value: 2, color: "#6b7280" }, ]; const repos = [ { name: "poster", desc: "tsx → html → png", stars: 1_842, commits: 284, lang: "TypeScript" }, { name: "stage", desc: "agent runtime on Convex", stars: 962, commits: 411, lang: "TypeScript" }, { name: "napkin", desc: "notes from the CLI", stars: 624, commits: 138, lang: "Rust" }, { name: "pi", desc: "personal CLI zoo", stars: 388, commits: 602, lang: "TypeScript" }, ]; const months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; // ---------- poster ---------- export default function DevWrap() { const total = heat.flat().reduce((a, b) => a + (b > 0 ? b * 2 : 0), 0); return (