/* ============================================================================ Projects — portfolio gallery ========================================================================== */ function ProjectCard({ p }) { return (

{p.title}

{p.tagline}

{p.lang} ★ {p.stars} {p.year}
); } function ProjectsGallery({ go }) { return (
Projects

Things I've built

{`open source · ${PROJECTS.length} shipped`}

Small, sharp tools — most of them arguments about how software should treat your attention, made concrete enough to run.

{PROJECTS.map((p) => )}
); } Object.assign(window, { ProjectCard, ProjectsGallery });