Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
238 changes: 124 additions & 114 deletions src/content/projects.ts
Original file line number Diff line number Diff line change
@@ -1,115 +1,125 @@
export interface Project {
name: string;
problem: string;
description: string;
techStack: string[];
githubUrl?: string;
websiteUrl?: string;
websiteLabel?: string;
featured?: boolean;
}

export const projects: Project[] = [
{
name: "GraphKeeper",
problem:
"Coding agents lose durable context, and opaque summaries make remembered claims difficult to trust.",
description:
"Built and maintain a Git-native memory layer for coding agents. Evidence-backed claims, explicit provenance, append-only corrections, and repository validation make project knowledge durable, auditable, and safer to reuse across sessions.",
techStack: [
"TypeScript CLI",
"Agent memory",
"Evidence & provenance",
"Git-native storage",
"Codex",
"Claude Code",
],
githubUrl: "https://github.com/anusbutt/Graph_Keeper",
websiteUrl: "https://www.npmjs.com/package/graphkeeper",
websiteLabel: "View npm package",
featured: true,
},
{
name: "TaskMate",
problem:
"Task apps still make users translate intent into manual form and list operations.",
description:
"Built a full-stack AI task manager where authenticated users create, update, complete, and delete tasks through natural language. A Next.js client and FastAPI/PostgreSQL backend orchestrate an AI agent whose MCP tools execute scoped task actions.",
techStack: [
"Next.js",
"TypeScript",
"FastAPI",
"PostgreSQL",
"JWT auth",
"AI agents",
"MCP tools",
],
githubUrl: "https://github.com/anusbutt/taskmate",
websiteUrl: "https://evolution-of-todo-coral.vercel.app/",
},
{
name: "Omniveer Duct Lead Qualifier",
problem:
"Service businesses lose ready-to-book leads when repetitive qualification waits on a human reply.",
description:
"Built an applied AI workflow that responds to inbound duct-cleaning leads, gathers job details, checks fit and availability, and moves qualified conversations toward booking—with human takeover for exceptions.",
techStack: [
"AI agents",
"Python",
"FastAPI",
"Next.js",
"PostgreSQL",
"Workflow automation",
],
websiteUrl: "https://www.omniveer.com/lead-qualification-agent",
websiteLabel: "View case study",
},
{
name: "RAG-Powered Interactive Robotics Textbook",
problem:
"Static learning content cannot answer follow-up questions without losing source context.",
description:
"Built and deployed an interactive textbook with a RAG assistant that embeds and retrieves course content from Qdrant, returns source-grounded answers with lesson citations, and serves the experience through Docusaurus and FastAPI.",
techStack: [
"RAG",
"Cohere embeddings",
"Qdrant",
"FastAPI",
"Docusaurus",
"Source citations",
],
githubUrl:
"https://github.com/anusbutt/Physical-AI-Humanoid-Robotics-Textbook",
websiteUrl:
"https://anusbutt.github.io/Physical-AI-Humanoid-Robotics-Textbook/",
},
{
name: "Agent Replay",
problem:
"AI agent failures are difficult to reproduce, explain, and retest without replaying real-world side effects.",
description:
"Built an agent observability and verification system that records execution, traces failures, and forks runs from the failing step with sandboxed tool calls to test a fix. It spans a Python SDK, FastAPI/PostgreSQL backend, and Next.js debugging dashboard.",
techStack: [
"Python SDK",
"FastAPI",
"PostgreSQL",
"Next.js",
"Agent observability",
"Replay & verification",
],
githubUrl: "https://github.com/anusbutt/agent-replay",
websiteUrl: "https://agent-replay-phi.vercel.app/",
},
];

export const moreProjects: Project[] = [
{
name: "Prospector",
problem:
"AI-assisted research and outreach can fabricate details or act before a human has reviewed the result.",
description:
"An evidence-grounded Python CLI for company research, citation-validated drafting, and approval-gated outreach.",
techStack: ["Python CLI", "AI tool use", "Evidence validation", "Human approval"],
githubUrl: "https://github.com/anusbutt/Prospector",
},
export interface Project {
name: string;
problem: string;
description: string;
techStack: string[];
githubUrl?: string;
websiteUrl?: string;
websiteLabel?: string;
featured?: boolean;
}

export const projects: Project[] = [
{
name: "GraphKeeper",
problem:
"Coding agents lose durable context, and opaque summaries make remembered claims difficult to trust.",
description:
"Built and maintain a Git-native memory layer for coding agents. Evidence-backed claims, explicit provenance, append-only corrections, and repository validation make project knowledge durable, auditable, and safer to reuse across sessions.",
techStack: [
"TypeScript CLI",
"Agent memory",
"Evidence & provenance",
"Git-native storage",
"Codex",
"Claude Code",
],
githubUrl: "https://github.com/anusbutt/Graph_Keeper",
websiteUrl: "https://www.npmjs.com/package/graphkeeper",
websiteLabel: "View npm package",
featured: true,
},
{
name: "Irha Beauty",
problem:
"Beauty brands need an elegant storefront that turns product discovery into effortless checkout.",
description:
"Built and shipped a full-stack e-commerce experience for Irha Beauty with category browsing, product detail pages, cart, wishlist, and account flows, all in a refined nature-inspired design.",
techStack: ["Next.js", "TypeScript", "Tailwind CSS", "E-commerce"],
websiteUrl: "https://www.irhapk.com",
websiteLabel: "View site",
},
{
name: "Omniveer Duct Lead Qualifier",
problem:
"Service businesses lose ready-to-book leads when repetitive qualification waits on a human reply.",
description:
"Built an applied AI workflow that responds to inbound duct-cleaning leads, gathers job details, checks fit and availability, and moves qualified conversations toward booking—with human takeover for exceptions.",
techStack: [
"AI agents",
"Python",
"FastAPI",
"Next.js",
"PostgreSQL",
"Workflow automation",
],
websiteUrl: "https://www.omniveer.com/lead-qualification-agent",
websiteLabel: "View case study",
},
{
name: "RAG-Powered Interactive Robotics Textbook",
problem:
"Static learning content cannot answer follow-up questions without losing source context.",
description:
"Built and deployed an interactive textbook with a RAG assistant that embeds and retrieves course content from Qdrant, returns source-grounded answers with lesson citations, and serves the experience through Docusaurus and FastAPI.",
techStack: [
"RAG",
"Cohere embeddings",
"Qdrant",
"FastAPI",
"Docusaurus",
"Source citations",
],
githubUrl:
"https://github.com/anusbutt/Physical-AI-Humanoid-Robotics-Textbook",
websiteUrl:
"https://anusbutt.github.io/Physical-AI-Humanoid-Robotics-Textbook/",
},
{
name: "Agent Replay",
problem:
"AI agent failures are difficult to reproduce, explain, and retest without replaying real-world side effects.",
description:
"Built an agent observability and verification system that records execution, traces failures, and forks runs from the failing step with sandboxed tool calls to test a fix. It spans a Python SDK, FastAPI/PostgreSQL backend, and Next.js debugging dashboard.",
techStack: [
"Python SDK",
"FastAPI",
"PostgreSQL",
"Next.js",
"Agent observability",
"Replay & verification",
],
githubUrl: "https://github.com/anusbutt/agent-replay",
websiteUrl: "https://agent-replay-phi.vercel.app/",
},
];

export const moreProjects: Project[] = [
{
name: "TaskMate",
problem:
"Task apps still make users translate intent into manual form and list operations.",
description:
"Built a full-stack AI task manager where authenticated users create, update, complete, and delete tasks through natural language. A Next.js client and FastAPI/PostgreSQL backend orchestrate an AI agent whose MCP tools execute scoped task actions.",
techStack: [
"Next.js",
"TypeScript",
"FastAPI",
"PostgreSQL",
"JWT auth",
"AI agents",
"MCP tools",
],
githubUrl: "https://github.com/anusbutt/taskmate",
websiteUrl: "https://evolution-of-todo-coral.vercel.app/",
},
{
name: "Prospector",
problem:
"AI-assisted research and outreach can fabricate details or act before a human has reviewed the result.",
description:
"An evidence-grounded Python CLI for company research, citation-validated drafting, and approval-gated outreach.",
techStack: ["Python CLI", "AI tool use", "Evidence validation", "Human approval"],
githubUrl: "https://github.com/anusbutt/Prospector",
},
];
4 changes: 2 additions & 2 deletions tests/homepage.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ test("homepage positioning and responsive layout", async ({ page }, testInfo) =>
.allTextContents();
expect(projectNames).toEqual([
"GraphKeeper",
"TaskMate",
"Irha Beauty",
"Omniveer Duct Lead Qualifier",
"RAG-Powered Interactive Robotics Textbook",
"Agent Replay",
Expand All @@ -78,7 +78,7 @@ test("homepage positioning and responsive layout", async ({ page }, testInfo) =>
await expect(page.getByText("More projects", { exact: true })).toBeVisible();
await expect(
page.locator('#projects article[data-project-tier="more"] h3'),
).toHaveText("Prospector");
).toHaveText(["TaskMate", "Prospector"]);
await expect(page.getByText("Nestaro Pilot", { exact: true })).toHaveCount(0);
await page.screenshot({ path: testInfo.outputPath("projects.png"), fullPage: true });

Expand Down
Loading