/* global React */
// "How it works" — 3-card row + big quote + nav
function HowItWorks() {
const cards = [
{
k: 'one',
t: 'Pick a niche, not a keyword.',
d: 'Each niche is a curated product: sources, allowed domains, refresh cadence. We crawl once across subscribers, then personalize your rerank for cents.',
icon: ,
},
{
k: 'two',
t: 'Ask like an agent, not a feed reader.',
d: 'Say "show me robotic demos" or paste a rubric. The output includes scores, reasons, confidence, source metadata, and cost.',
icon: ,
},
{
k: 'three',
t: 'Drop the URL anywhere.',
d: 'Private RSS, JSON, email, or webhook. Works in Feedly, Reeder, NetNewsWire, your CI, your inbox. Bring your own reader.',
icon: ,
},
];
return (
Ranked RSS in three steps. No feed sludge.
how it works
{cards.map(c => (
{c.icon}
{c.k}
{c.t}
{c.d}
))}
);
}
function IconNiche() {
return (
);
}
function IconChat() {
return (
);
}
function IconRSS() {
return (
);
}
// CLI demo wrapper section
function CLISection() {
return (
CLI · agent-consumable
Made for other agents to chain into.
JSON-out by default, RSS on request. Time-window flags, natural-language ranking prompts,
and signed receipts you can pipe to jq.
Agents can ask for the top ten matches to a rubric; humans can read the same result in Reeder.