diff --git a/surfsense_web/components/homepage/integrations.tsx b/surfsense_web/components/homepage/integrations.tsx
index d8361d721..fc250e65b 100644
--- a/surfsense_web/components/homepage/integrations.tsx
+++ b/surfsense_web/components/homepage/integrations.tsx
@@ -1,6 +1,7 @@
"use client";
import type React from "react";
+import Image from "next/image";
interface Integration {
name: string;
@@ -44,15 +45,24 @@ const INTEGRATIONS: Integration[] = [
// Media
{ name: "YouTube", icon: "/connectors/youtube.svg" },
+
+ // Search
+ { name: "Linkup", icon: "/connectors/linkup.svg" },
+
+ // Meetings
+ { name: "Circleback", icon: "/connectors/circleback.svg" },
+
+ // AI
+ { name: "MCP", icon: "/connectors/modelcontextprotocol.svg" },
];
-// 5 vertical columns — 21 icons spread across categories
+// 5 vertical columns — 23 icons spread across categories
const COLUMNS: number[][] = [
- [2, 5, 10, 0, 11],
+ [2, 5, 10, 0, 21, 11],
[1, 7, 20, 17],
- [13, 6, 4, 16],
+ [13, 6, 23, 4, 16],
[12, 8, 15, 18],
- [3, 9, 14, 19],
+ [3, 9, 14, 22, 19],
];
// Different scroll speeds per column for organic feel (seconds)
@@ -61,7 +71,7 @@ const SCROLL_DURATIONS = [26, 32, 22, 30, 28];
function IntegrationCard({ integration }: { integration: Integration }) {
return (
-

+
);
}
diff --git a/surfsense_web/contracts/enums/connectorIcons.tsx b/surfsense_web/contracts/enums/connectorIcons.tsx
index 18a872d94..e29e5be6e 100644
--- a/surfsense_web/contracts/enums/connectorIcons.tsx
+++ b/surfsense_web/contracts/enums/connectorIcons.tsx
@@ -1,4 +1,4 @@
-import { IconLinkPlus, IconUsersGroup } from "@tabler/icons-react";
+import { IconUsersGroup } from "@tabler/icons-react";
import {
BookOpen,
File,
@@ -15,11 +15,11 @@ import { EnumConnectorName } from "./connector";
export const getConnectorIcon = (connectorType: EnumConnectorName | string, className?: string) => {
const iconProps = { className: className || "h-4 w-4" };
- const imgProps = { className: className || "h-5 w-5", width: 20, height: 20 };
+ const imgProps = { className: `${className || "h-5 w-5"} select-none pointer-events-none`, width: 20, height: 20, draggable: false as const };
switch (connectorType) {
- case EnumConnectorName.LINKUP_API:
- return ;
+ case EnumConnectorName.LINKUP_API:
+ return ;
case EnumConnectorName.LINEAR_CONNECTOR:
return ;
case EnumConnectorName.GITHUB_CONNECTOR:
@@ -63,7 +63,7 @@ export const getConnectorIcon = (connectorType: EnumConnectorName | string, clas
case EnumConnectorName.YOUTUBE_CONNECTOR:
return ;
case EnumConnectorName.CIRCLEBACK_CONNECTOR:
- return ;
+ return ;
case EnumConnectorName.MCP_CONNECTOR:
return ;
case EnumConnectorName.OBSIDIAN_CONNECTOR:
diff --git a/surfsense_web/public/connectors/circleback.svg b/surfsense_web/public/connectors/circleback.svg
new file mode 100644
index 000000000..76bdcddd8
--- /dev/null
+++ b/surfsense_web/public/connectors/circleback.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/surfsense_web/public/connectors/linkup.svg b/surfsense_web/public/connectors/linkup.svg
new file mode 100644
index 000000000..8b0ffb071
--- /dev/null
+++ b/surfsense_web/public/connectors/linkup.svg
@@ -0,0 +1,50 @@
+
+
+