modsetter--surfsense
6ede33ccdb
Build and Push Docker Images / create_manifest (web, surfsense-web, , cpu) (push) Has been cancelled
Build and Push Docker Images / finalize_release (push) Has been cancelled
Obsidian Plugin Lint / lint (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / compute_version (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / verify_digests (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, , cpu) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda, cuda) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda126, cuda126) (push) Has been cancelled
82 行
2.6 KiB
TypeScript
82 行
2.6 KiB
TypeScript
import { Reveal } from "@/components/connectors-marketing/reveal";
|
|
import { MarketingSection } from "@/components/marketing/section";
|
|
|
|
const ROWS = [
|
|
{
|
|
feature: "Who does the work",
|
|
suites: "Analysts read human dashboards",
|
|
scrapers: "You build everything on raw data",
|
|
surfsense: "Your AI agents gather, analyze, and alert",
|
|
},
|
|
{
|
|
feature: "Intelligence layer",
|
|
suites: "Curated but slow, human-in-the-loop",
|
|
scrapers: "None; data only",
|
|
surfsense: "Agent harness turns live data into briefs",
|
|
},
|
|
{
|
|
feature: "Pricing",
|
|
suites: "Enterprise contracts, annual quotes",
|
|
scrapers: "Usage-priced infrastructure",
|
|
surfsense: "Self-serve, pay per item, free tier",
|
|
},
|
|
{
|
|
feature: "Developer surface",
|
|
suites: "No agent surface",
|
|
scrapers: "APIs, but no MCP or harness",
|
|
surfsense: "REST API with your API key, plus an MCP server for agents",
|
|
},
|
|
{
|
|
feature: "Open source",
|
|
suites: "No",
|
|
scrapers: "No",
|
|
surfsense: "Yes, self-hostable",
|
|
},
|
|
];
|
|
|
|
export function CompareTable() {
|
|
return (
|
|
<MarketingSection>
|
|
<Reveal>
|
|
<h2 className="text-2xl font-bold tracking-tight sm:text-3xl">How SurfSense compares</h2>
|
|
<p className="mt-3 max-w-2xl text-muted-foreground leading-relaxed">
|
|
CI suites sell dashboards to analysts. Scraper APIs sell raw data to engineers. SurfSense
|
|
gives AI agents the data and the harness in one open-source platform.
|
|
</p>
|
|
</Reveal>
|
|
<Reveal>
|
|
<div className="mt-8 overflow-x-auto rounded-xl border bg-card">
|
|
<table className="w-full min-w-2xl text-sm">
|
|
<thead>
|
|
<tr className="border-b bg-muted/40 text-left">
|
|
<th className="p-4 font-medium">Feature</th>
|
|
<th className="p-4 font-medium text-muted-foreground">
|
|
CI suites
|
|
<span className="block text-xs font-normal">Crayon, Klue</span>
|
|
</th>
|
|
<th className="p-4 font-medium text-muted-foreground">
|
|
Scraper APIs
|
|
<span className="block text-xs font-normal">Bright Data, Apify</span>
|
|
</th>
|
|
<th className="p-4 font-medium text-brand">SurfSense</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{ROWS.map((row) => (
|
|
<tr key={row.feature} className="border-b last:border-b-0">
|
|
<th scope="row" className="p-4 text-left font-medium">
|
|
{row.feature}
|
|
</th>
|
|
<td className="p-4 text-muted-foreground">{row.suites}</td>
|
|
<td className="p-4 text-muted-foreground">{row.scrapers}</td>
|
|
<td className="bg-brand/5 p-4 text-foreground">{row.surfsense}</td>
|
|
</tr>
|
|
))}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</Reveal>
|
|
</MarketingSection>
|
|
);
|
|
}
|