// Projects — SaaS-card grid with featured first
const colorMap = {
violet: { bg: "rgba(124, 92, 255, 0.08)", border: "rgba(124, 92, 255, 0.25)", text: "#a18bff" },
cyan: { bg: "rgba(0, 212, 255, 0.08)", border: "rgba(0, 212, 255, 0.25)", text: "#5ee0ff" },
green: { bg: "rgba(74, 222, 128, 0.08)", border: "rgba(74, 222, 128, 0.25)", text: "#7ee8a3" },
amber: { bg: "rgba(251, 191, 36, 0.08)", border: "rgba(251, 191, 36, 0.25)", text: "#fcd34d" },
};
const ProjectCard = ({ p }) => {
const tint = colorMap[p.color] || colorMap.violet;
const [hover, setHover] = React.useState(false);
return (
setHover(true)}
onMouseLeave={() => setHover(false)}
style={{
position: "relative",
gridColumn: "span 1",
background: "var(--bg-card)",
border: "1px solid var(--line)",
borderRadius: 16,
overflow: "hidden",
cursor: "pointer",
transition: "all 0.25s ease",
transform: hover ? "translateY(-2px)" : "none",
boxShadow: hover ? `0 24px 60px -20px ${tint.border}` : "none",
}}>
{/* hover sheen */}
{/* Decorative top — small visual specific to service type */}
{p.name}
{p.nameBn && (
{p.nameBn}
)}
{p.description}
{/* Stack badges */}
{p.stack.map(s => (
{s}
))}
{/* Footer: impact + actions */}
{p.impact.primary}
{p.impact.secondary}
);
};
// Tiny SVG visual per service — gives each card a distinct "product preview"
const ProjectVisual = ({ id, tint, hover }) => {
if (id === "ai-agent-automation") {
return (
);
}
if (id === "scraping-data-pipeline") {
// bar chart
const bars = [40, 64, 52, 78, 92, 70, 110, 95, 130, 118, 142];
return (
);
}
if (id === "web3-blockchain") {
// chain dots
const chains = ["ETH","ARB","OP","BASE","SOL","ZK","POL","BNB","AVAX","CELO","XLM","TRX"];
return (
{chains.map((c, i) => (
{c}
))}
);
}
if (id === "mt5-ea-trading") {
// line chart
return (
);
}
if (id === "web-app-dev") {
// schema → grid morph
return (
);
}
if (id === "infra-devops") {
// chat bubbles
return (
How do I rotate my API key?
Settings → API → Rotate. New key live in <5s.
);
}
return null;
};
const Projects = () => {
const D = PORTFOLIO_DATA;
return (
Six services. One team. All production-grade.>}
sub="From landing pages to AI agent runtimes — we take your idea from spec to live deployment."
/>
);
};
window.Projects = Projects;