// Hero.jsx — hero with animated dashboard mockup
function Hero({ onBook, onContact }) {
return (
AI automation · BPO · Custom software
The back office, handled.
DuckTask runs the operational layer of your business — HR, inventory, admin,
social, and custom AI agents — so your team can spend the day on the work that grows it.
Book a consultation
Get pricing
No setup fees
Pay-as-you-go
One-week kick-off
);
}
function HeroDashboard() {
// Cycle through which workflow is "running"
const [running, setRunning] = React.useState(2);
const [savedHrs, setSavedHrs] = React.useState(0);
React.useEffect(() => {
const id = setInterval(() => {
setRunning((r) => (r + 1) % 5);
}, 2200);
return () => clearInterval(id);
}, []);
React.useEffect(() => {
// count up hours saved
let v = 0;
const id = setInterval(() => {
v += 4;
if (v >= 184) { v = 184; clearInterval(id); }
setSavedHrs(v);
}, 28);
return () => clearInterval(id);
}, []);
const rows = [
{ ic: "package", name: "Inventory · nightly count", meta: "412 SKUs", state: "done" },
{ ic: "receipt-text", name: "AP · invoices to Xero", meta: "14 synced", state: "done" },
{ ic: "users", name: "HR · payroll cycle", meta: "9 of 9", state: "done" },
{ ic: "megaphone", name: "Social · weekly post", meta: "queued · 09:00", state: "queued" },
{ ic: "bot", name: "Agent · email triage", meta: "running", state: "running" },
];
return (
{/* Floating top-left card */}
Saved this week
across 23 workflows
{savedHrs} hrs
{/* Floating bottom-right card */}
Agent uptime
last 30 days
99.94%
{[8,10,14,12,16,11,18,15,20,17,22,19].map((h, i) => (
))}
{/* Main dashboard card */}
workspaces / lumae-collectives / today
Live
Today, automated
5 workflows running for you · 184h saved this week
Tasks
218
↑ 12% vs last wk
{rows.map((r, i) => (
{r.name}
{i === running ? (
Running · {r.meta}
) : r.state === "queued" ? (
{r.meta}
) : (
Done · {r.meta}
)}
))}
);
}
window.Hero = Hero;