feat: added finalized projects data shape

This commit is contained in:
2026-05-28 17:44:36 -07:00
parent 796f422db0
commit 880b76eb43
+112 -34
View File
@@ -1,44 +1,122 @@
export const projects = [ export type Screenshot = {
src: string;
alt: string;
};
export type Project = {
/** Route segment — the page lives at /projects/<slug> */
slug: string;
title: string;
year: string;
stack: string[];
/** Short summary shown on cards */
description: string;
/** Live demo URL */
liveUrl: string;
/** Longer write-up for the detail page (one entry per paragraph) */
overview: string[];
screenshots: Screenshot[];
/** What I learned building it */
learned: string[];
/** What I'd do differently next time */
improvements: string[];
};
export const projects: Project[] = [
{ {
title: "Project 1", slug: "orbit",
year: "2023", title: "Orbit",
stack: ["React", "Node.js"], year: "2026",
description: "A web application for managing tasks.", stack: ["Next.js", "TypeScript", "PostgreSQL"],
outcome: "Increased productivity by 20%." description:
"A self-hosted project and ticket management workspace with spaces, pages, and notes.",
liveUrl: "https://demo.angelmankel.com/orbit",
overview: [
"TODO — what Orbit does and why you built it.",
"TODO — the core problem it solves and who it's for.",
],
screenshots: [
{ src: "https://picsum.photos/seed/orbit1/1200/750", alt: "Orbit board view" },
{ src: "https://picsum.photos/seed/orbit2/1200/750", alt: "Orbit ticket detail" },
],
learned: ["TODO — something you learned building this."],
improvements: ["TODO — what you'd do differently next time."],
}, },
{ {
title: "Project 2", slug: "imagelab",
year: "2023", title: "ImageLab",
stack: ["React", "Node.js"], year: "2026",
description: "A web application for managing tasks.", stack: ["Next.js", "TypeScript", "WebAssembly"],
outcome: "Increased productivity by 20%." description:
"A browser-based image processing playground for transforms, filters, and batch edits.",
liveUrl: "https://demo.angelmankel.com/imagelab",
overview: [
"TODO — what ImageLab does and why you built it.",
"TODO — the core problem it solves and who it's for.",
],
screenshots: [
{ src: "https://picsum.photos/seed/imagelab1/1200/750", alt: "ImageLab editor" },
{ src: "https://picsum.photos/seed/imagelab2/1200/750", alt: "ImageLab batch view" },
],
learned: ["TODO — something you learned building this."],
improvements: ["TODO — what you'd do differently next time."],
}, },
{ {
title: "Project 3", slug: "league",
year: "2023", title: "League of Legends Companion",
stack: ["React", "Node.js"], year: "2026",
description: "A web application for managing tasks.", stack: ["React", "TypeScript", "Riot API"],
outcome: "Increased productivity by 20%." description:
"An app I built for a friend who challenged themselves of reaching a higher rank. Surfaces specific matchup insights and personalized tips based on their match history.",
liveUrl: "https://demo.angelmankel.com/league",
overview: [
"TODO — what League of Legends Companion does and why you built it.",
"TODO — the core problem it solves and who it's for.",
],
screenshots: [
{ src: "https://picsum.photos/seed/league1/1200/750", alt: "League of Legends Companion overview" },
{ src: "https://picsum.photos/seed/league2/1200/750", alt: "League of Legends Companion match detail" },
],
learned: ["TODO — something you learned building this."],
improvements: ["TODO — what you'd do differently next time."],
}, },
{ {
title: "Project 4", slug: "study",
year: "2023", title: "Study Time",
stack: ["React", "Node.js"], year: "2026",
description: "A web application for managing tasks.", stack: ["Next.js", "TypeScript", "Tailwind CSS"],
outcome: "Increased productivity by 20%." description:
"A study app I built for those late night study sessions - essentially a free Quizlet",
liveUrl: "https://demo.angelmankel.com/study",
overview: [
"TODO — what Study Time does and why you built it.",
"TODO — the core problem it solves and who it's for.",
],
screenshots: [
{ src: "https://picsum.photos/seed/study1/1200/750", alt: "Study Time dashboard" },
{ src: "https://picsum.photos/seed/study2/1200/750", alt: "Study Time session view" },
],
learned: ["TODO — something you learned building this."],
improvements: ["TODO — what you'd do differently next time."],
}, },
{ {
title: "Project 5", slug: "d2r",
year: "2023", title: "Diablo II: Resurrected Tracker",
stack: ["React", "Node.js"], year: "2026",
description: "A web application for managing tasks.", stack: ["React", "TypeScript", "Node.js"],
outcome: "Increased productivity by 20%." description:
"A loot and event tracker for the game Diablo II: Resurrected.",
liveUrl: "https://demo.angelmankel.com/d2r",
overview: [
"TODO — what Diablo II: Resurrected Tracker does and why you built it.",
"TODO — the core problem it solves and who it's for.",
],
screenshots: [
{ src: "https://picsum.photos/seed/d2r1/1200/750", alt: "D2R Tracker grail view" },
{ src: "https://picsum.photos/seed/d2r2/1200/750", alt: "D2R Tracker item log" },
],
learned: ["TODO — something you learned building this."],
improvements: ["TODO — what you'd do differently next time."],
}, },
{ ];
title: "Project 6",
year: "2023",
stack: ["React", "Node.js"],
description: "A web application for managing tasks.",
outcome: "Increased productivity by 20%."
}
]