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
114 changes: 99 additions & 15 deletions apps/web/src/constants/portfolioData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ export const PORTFOLIO_PROJECTS: PortfolioProject[] = [
expertise: "Storytelling, Child Development, Education",
projects: ["Interactive Adventures", "Family Playtime", "Group Sessions"],
skills: ["Storytelling", "Children", "Interactive", "Education"],
relatedProjects: ["phoenixrooivalk", "cognitivemesh"],
relatedProjects: ["nexamesh", "cognitivemesh"],
product: "https://mystira.app",
focusArea: "ai-ml",
},
Expand All @@ -179,32 +179,32 @@ export const PORTFOLIO_PROJECTS: PortfolioProject[] = [
"Zero-Trust Architecture",
],
skills: ["Multi-Agent", "Enterprise", "Security", "Governance"],
relatedProjects: ["mystira", "phoenixrooivalk"],
relatedProjects: ["mystira", "nexamesh"],
product: "https://github.com/JustAGhosT/cognitive-mesh",
focusArea: "ai-ml",
},

// Defense & Security Focus Area
{
id: "phoenixrooivalk",
name: "Phoenix Rooivalk",
initials: "PR",
position: "Counter-Drone Platform",
id: "nexamesh",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the Rooivalk detail link resolvable

Changing this canonical id breaks an existing route from the portfolio grid: /portfolio still uses its local projects array in apps/web/src/features/portfolio/index.tsx, where the card id remains phoenixrooivalk and handleCardClick navigates to /portfolio/${projectId}, while ProjectDetail now only finds nexamesh in PORTFOLIO_PROJECTS. In that flow, clicking the existing Phoenix Rooivalk card now lands on the Project Not Found state; update the list data or add a legacy alias/redirect.

Useful? React with 👍 / 👎.

name: "Nexamesh",
initials: "NX",
position: "Counter-UAS Platform",
mass: 200,
color: "#c0392b", // Darker red variant - Defense & Security focus area
image: "/themes/rooivalk-icon.svg",
fullName: "Phoenix Rooivalk",
image: "/themes/rooivalk-icon.svg", // TODO: replace with nexamesh-branded icon
fullName: "Nexamesh",
speed: 0.00002,
title: "AI-Powered Counter-Drone Platform (Pre-Alpha)",
title: "AI-Powered Counter-UAS Defense Platform (Pre-Alpha)",
status: "pre-alpha",
bio: "Phoenix Rooivalk is a sophisticated counter-drone platform leveraging advanced AI for real-time drone detection, classification, and neutralization. Named after the South African Rooivalk attack helicopter.",
bio: "Nexamesh (formerly Phoenix Rooivalk) is a sophisticated counter-UAS defense platform leveraging advanced AI for real-time drone detection, classification, and neutralization.",
department: "Defense",
experience: 0,
expertise: "AI, Machine Learning, Defense Systems",
projects: ["Drone Detection", "Threat Assessment", "Airspace Protection"],
skills: ["Counter-Drone", "AI", "Defense", "Security"],
skills: ["Counter-UAS", "AI", "Defense", "Security"],
relatedProjects: ["mystira", "cognitivemesh"],
product: "https://phoenixrooivalk.com",
product: "https://github.com/Nexamesh/nexamesh-core",
focusArea: "defense-security",
},
{
Expand All @@ -225,7 +225,7 @@ export const PORTFOLIO_PROJECTS: PortfolioProject[] = [
expertise: "Access Control, IoT, Mobile Security",
projects: ["Keyless Entry", "Smart Access"],
skills: ["Access Control", "Security", "IoT", "Mobile"],
relatedProjects: ["phoenixrooivalk", "hop", "chaufher"],
relatedProjects: ["nexamesh", "hop", "chaufher"],
product: "",
focusArea: "defense-security",
},
Expand Down Expand Up @@ -319,12 +319,96 @@ export const PORTFOLIO_PROJECTS: PortfolioProject[] = [
expertise: "AI, Automation, GitHub, DevOps",
projects: ["PR Analysis", "Issue Management", "Multi-Agent Collaboration"],
skills: ["AI", "Automation", "GitHub", "DevOps", "Python"],
relatedProjects: ["cognitivemesh", "mystira"],
product: "https://autopr.io",
relatedProjects: ["cognitivemesh", "mystira", "sluice"],
product: "https://github.com/phoenixvc/codeflow-engine",
focusArea: "ai-ml",
},
{
id: "sluice",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add new projects to the portfolio grid

These new records are only added to PORTFOLIO_PROJECTS, but the /portfolio route renders cards and filters from a separate local projects array in apps/web/src/features/portfolio/index.tsx, which still ends at VeritasVault. As a result, Sluice, Docket, ConvoLens, and OmniPost are not discoverable from the portfolio page even though this commit adds them; wire that page to the centralized data or mirror the new entries there.

Useful? React with 👍 / 👎.

name: "Sluice",
initials: "SL",
position: "AI Gateway",
mass: 120,
color: "#2980b9", // Darker blue variant - AI & ML focus area
fullName: "Sluice",
speed: 0.00002,
title: "OpenAI-Compatible AI Gateway (Pre-Alpha)",
status: "pre-alpha",
bio: "Sluice is an OpenAI-compatible AI gateway running on Azure Container Apps. Built on LiteLLM, it gives teams a single endpoint with model routing, provider abstraction, and cost controls across multiple LLM backends.",
department: "Developer Tools",
experience: 0,
expertise: "AI Infrastructure, LLM Routing, Azure",
projects: ["Model Routing", "Cost Controls", "Provider Abstraction"],
skills: ["AI", "Gateway", "LiteLLM", "Azure", "Infrastructure"],
relatedProjects: ["docket", "autopr", "cognitivemesh"],
product: "https://github.com/phoenixvc/sluice",
focusArea: "ai-ml",
},
{
id: "docket",
name: "Docket",
initials: "DK",
position: "LLM Cost Ops",
mass: 110,
color: "#5499c7", // Blue variant - AI & ML focus area
fullName: "Docket",
speed: 0.000019,
title: "LLM Cost Operations Platform (Pre-Alpha)",
status: "pre-alpha",
bio: "Docket is an AI cost-operations platform that tracks LLM spend, usage analytics, and cost optimisation across teams and providers, turning opaque token bills into actionable, per-project insight.",
department: "Developer Tools",
experience: 0,
expertise: "AI Cost Ops, Analytics, FinOps",
projects: ["Spend Tracking", "Usage Analytics", "Cost Optimisation"],
skills: ["AI", "Cost Ops", "Analytics", "FinOps"],
relatedProjects: ["sluice", "autopr", "cognitivemesh"],
product: "",
focusArea: "ai-ml",
},
{
id: "convolens",
name: "ConvoLens",
initials: "CL",
position: "Conversation AI",
mass: 120,
color: "#6c5ce7", // Purple-blue variant - AI & ML focus area
fullName: "ConvoLens",
speed: 0.000018,
title: "AI Conversation Analyzer (Pre-Alpha)",
status: "pre-alpha",
bio: "ConvoLens is an AI-powered conversation analyzer for WhatsApp. Upload a chat export to get summaries, sentiment, and insight into group and one-on-one conversations.",
department: "AI Products",
experience: 0,
expertise: "NLP, Conversation Analytics, Summarization",
projects: ["Chat Summaries", "Sentiment Analysis", "Conversation Insight"],
skills: ["AI", "NLP", "Analytics", "Summarization"],
relatedProjects: ["mystira", "cognitivemesh"],
product: "https://v0-whatsapp-conversation-summarizer.vercel.app",
focusArea: "ai-ml",
},

// Infrastructure (Supporting Projects)
{
id: "omnipost",
name: "OmniPost",
initials: "OP",
position: "Content Distribution",
mass: 100,
color: "#6b7280",
fullName: "OmniPost",
speed: 0.000017,
title: "Multi-Channel Content Distribution (Pre-Alpha)",
status: "pre-alpha",
bio: "OmniPost is a multi-channel content distribution tool for publishing and syndicating content across social and web channels from a single source.",
department: "Infrastructure",
experience: 0,
expertise: "Content Distribution, Syndication, Automation",
projects: ["Multi-Channel Publishing", "Content Syndication"],
skills: ["Content", "Distribution", "Automation"],
relatedProjects: ["phoenixvc-website", "design-system"],
product: "https://github.com/neuralliquid/omnipost",
focusArea: "infrastructure",
},
{
id: "phoenixvc-website",
name: "PhoenixVC Website",
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/features/portfolio/ProjectDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import styles from "./ProjectDetail.module.css";
// Icon mapping for projects - includes all projects
const projectIcons: Record<string, React.ReactNode> = {
mystira: <BookOpen size={48} />,
phoenixrooivalk: <Shield size={48} />,
nexamesh: <Shield size={48} />,
cognitivemesh: <Network size={48} />,
airkey: <Key size={48} />,
hop: <Car size={48} />,
Expand Down
14 changes: 6 additions & 8 deletions apps/web/src/features/portfolio/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -80,17 +80,15 @@ const projects: Project[] = [
focusArea: "ai-ml",
},
{
id: "phoenixrooivalk",
name: "Phoenix Rooivalk",
description: "AI-powered counter-drone defense platform",
id: "nexamesh",
name: "Nexamesh",
description: "AI-powered counter-UAS defense platform",
longDescription:
"Phoenix Rooivalk is a sophisticated counter-drone platform that leverages advanced AI and machine learning for real-time drone detection, classification, and neutralization. Named after the South African Rooivalk attack helicopter, it provides comprehensive airspace protection with automated threat assessment and response capabilities.",
"Nexamesh (formerly Phoenix Rooivalk) is a sophisticated counter-UAS defense platform that leverages advanced AI and machine learning for real-time drone detection, classification, and neutralization, providing comprehensive airspace protection with automated threat assessment and response capabilities.",
icon: <Shield size={32} />,
website: "https://phoenixrooivalk.com/",
docs: "https://docs.phoenixrooivalk.com/",
github: "https://github.com/JustAGhosT/PhoenixRooivalk",
github: "https://github.com/Nexamesh/nexamesh-core",
status: "pre-alpha",
tags: ["Counter-Drone", "AI", "Defense", "Security"],
tags: ["Counter-UAS", "AI", "Defense", "Security"],
focusArea: "defense-security",
},
{
Expand Down
Loading