diff --git a/src/components/BentoTile.astro b/src/components/BentoTile.astro index d53a6c0..a2a3c2c 100644 --- a/src/components/BentoTile.astro +++ b/src/components/BentoTile.astro @@ -3,7 +3,7 @@ import { Image } from 'astro:assets'; import type { CollectionEntry } from 'astro:content'; interface Props { project: CollectionEntry<'projects'> } const { project } = Astro.props; -const { title, tile, image, span, domain, years, summary } = project.data; +const { title, tileTitle, tile, image, span, domain, summary } = project.data; --- {tile === 'image' && image && ( @@ -13,8 +13,8 @@ const { title, tile, image, span, domain, years, summary } = project.data;
)}
-

{title}

-

{domain} · {years}

+

{tileTitle ?? title}

+

{domain}

{span !== 'sm' &&

{summary}

}
diff --git a/src/content.config.ts b/src/content.config.ts index 75aa54e..4b6bf04 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -18,9 +18,12 @@ const projects = defineCollection({ z .object({ title: z.string(), + // Optional display title for the bento tiles on the home and /projects + // pages (e.g. "AI agent builder hub" for WaySpace); the project page + // itself always uses `title`. + tileTitle: z.string().optional(), role: z.string(), org: z.string(), - years: z.string(), domain: z.string(), summary: z.string(), tile: z.enum(['image', 'logo', 'text']), diff --git a/src/content/projects/placeholder-3.md b/src/content/projects/placeholder-3.md index 95ec1e2..cd14563 100644 --- a/src/content/projects/placeholder-3.md +++ b/src/content/projects/placeholder-3.md @@ -2,7 +2,6 @@ title: "PLACEHOLDER — Third project" role: "Role goes here" org: "Organisation" -years: "2021–2023" domain: "Blockchain" summary: "One-line summary of the project and its outcome." tile: logo diff --git a/src/content/projects/placeholder-4.md b/src/content/projects/placeholder-4.md index 3f05509..cecd2bd 100644 --- a/src/content/projects/placeholder-4.md +++ b/src/content/projects/placeholder-4.md @@ -2,7 +2,6 @@ title: "PLACEHOLDER — Fourth project" role: "Role goes here" org: "Organisation" -years: "2020" domain: "Research" summary: "One-line summary of the project and its outcome." tile: text diff --git a/src/content/projects/placeholder-5.md b/src/content/projects/placeholder-5.md index 57b4b68..a7e1677 100644 --- a/src/content/projects/placeholder-5.md +++ b/src/content/projects/placeholder-5.md @@ -2,7 +2,6 @@ title: "PLACEHOLDER — Fifth project" role: "Role goes here" org: "Organisation" -years: "2019" domain: "Fintech" summary: "One-line summary of the project and its outcome." tile: text diff --git a/src/content/projects/placeholder-6.md b/src/content/projects/placeholder-6.md index 4aa27f1..afa9226 100644 --- a/src/content/projects/placeholder-6.md +++ b/src/content/projects/placeholder-6.md @@ -2,7 +2,6 @@ title: "PLACEHOLDER — Sixth project" role: "Role goes here" org: "Organisation" -years: "2014" domain: "Media" summary: "One-line summary of the project and its outcome." tile: logo diff --git a/src/content/projects/wayid.md b/src/content/projects/wayid.md index f8fa77d..fef4888 100644 --- a/src/content/projects/wayid.md +++ b/src/content/projects/wayid.md @@ -2,7 +2,6 @@ title: "WayID" role: "Co-Founder" org: "Lineage Labs" -years: "2026 – present" domain: "Digital identity" summary: "Provenance certificates for AI agents — WayID binds each agent's cryptographic identity to a verified human that anyone can check in one lookup." tile: image diff --git a/src/content/projects/wayspace.md b/src/content/projects/wayspace.md index 722b0e6..3fcac41 100644 --- a/src/content/projects/wayspace.md +++ b/src/content/projects/wayspace.md @@ -1,8 +1,8 @@ --- -title: "AI agent builder hub" +title: "WaySpace" +tileTitle: "AI agent builder hub" role: "Co-Founder" org: "Lineage Labs" -years: "2026 – present" domain: "AI agent ecosystem" summary: "The anti-slop catalogue for AI agent builders: every tool human-reviewed before it's listed, scored on signals that can't be bought, and discussed only by verified builders and their agents." tile: image diff --git a/src/pages/cv.txt.ts b/src/pages/cv.txt.ts index a5283c9..86fcc48 100644 --- a/src/pages/cv.txt.ts +++ b/src/pages/cv.txt.ts @@ -55,7 +55,7 @@ export async function GET(context: APIContext) { if (projects.length > 0) { lines.push(...rule('Selected projects')); for (const p of projects) { - lines.push(`${p.data.title} — ${p.data.role}, ${p.data.org} (${p.data.years})`); + lines.push(`${p.data.title} — ${p.data.role}, ${p.data.org}`); lines.push(` ${p.data.summary}`); lines.push(` ${projectUrl(site, p)}`); lines.push(''); diff --git a/src/pages/llms-full.txt.ts b/src/pages/llms-full.txt.ts index a1ca2ac..b4a6f4a 100644 --- a/src/pages/llms-full.txt.ts +++ b/src/pages/llms-full.txt.ts @@ -78,7 +78,7 @@ export async function GET(context: APIContext) { lines.push( `### ${d.title}`, '', - `- Role: ${d.role}, ${d.org} (${d.years})`, + `- Role: ${d.role}, ${d.org}`, `- Domain: ${d.domain}`, `- URL: ${projectUrl(site, project)}`, ...(d.links ?? []).map((l) => `- ${l.label}: ${l.url}`), diff --git a/src/pages/projects/[slug].astro b/src/pages/projects/[slug].astro index 8c253bf..60e46fb 100644 --- a/src/pages/projects/[slug].astro +++ b/src/pages/projects/[slug].astro @@ -15,7 +15,7 @@ const d = project.data;
-

{d.domain} · {d.years}

+

{d.domain}

{d.title}

{d.role}, {d.org}