diff --git a/apps/web/components/integrations-view.tsx b/apps/web/components/integrations-view.tsx index a812cce70..8b5f042b9 100644 --- a/apps/web/components/integrations-view.tsx +++ b/apps/web/components/integrations-view.tsx @@ -30,7 +30,7 @@ import { Zap, } from "lucide-react" import { formatRelativeTime } from "@/components/settings/sync-utils" -import { CHROME_EXTENSION_URL } from "@lib/constants" +import { CHROME_EXTENSION_URL, POKE_RECIPE_URL } from "@lib/constants" import { analytics } from "@/lib/analytics" import Image from "next/image" import { useViewMode } from "@/lib/view-mode-context" @@ -278,6 +278,7 @@ interface BaseItem { kind: ItemKind simpleTitle?: string dev?: boolean + isNew?: boolean } interface PluginItem extends BaseItem { @@ -415,6 +416,26 @@ const SECTIONS: Array<{ icon: , action: { type: "external", href: CHROME_EXTENSION_URL }, }, + { + kind: "client", + id: "poke", + name: "Poke", + tagline: "Recall and save memories from Poke over text", + simpleTitle: "Text Poke to recall and save your memories", + isNew: true, + icon: ( +
+ Poke +
+ ), + action: { type: "external", href: POKE_RECIPE_URL }, + }, { kind: "client", id: "shortcuts", @@ -484,6 +505,19 @@ function ProChip() { ) } +function NewChip() { + return ( + + New + + ) +} + function IconBox({ children }: { children: ReactNode }) { return (
{name} + {isNew && } {pro && }

- {pick.name} ·{" "} - {pick.support} + + {pick.emoji ? `${pick.emoji} ` : ""} + {pick.name} + {" "} + · {pick.support}

@@ -1318,6 +1359,36 @@ export function IntegrationsView() { !isAutumnLoading && !hasProProduct && !isFreeTierPlugin("claude_code") const featuredPicks: FeaturedPick[] = [ + { + id: "feat-poke", + name: "Poke", + emoji: "🌴", + headline: "Your memory, one text away.", + support: "recall and save anything by texting Poke", + tagline: "Connect Poke to recall and save memories over text.", + icon: ( + Poke + ), + backdrop: ( + + ), + ctaLabel: "Connect", + onCta: () => { + window.open(POKE_RECIPE_URL, "_blank", "noopener,noreferrer") + }, + }, { id: "feat-mcp", name: "Supermemory MCP", @@ -1563,9 +1634,11 @@ export function IntegrationsView() { "_blank", "noopener,noreferrer", ) - analytics.onboardingChromeExtensionClicked({ - source: "integrations", - }) + if (item.id === "chrome") { + analytics.onboardingChromeExtensionClicked({ + source: "integrations", + }) + } }} > Connect @@ -1618,6 +1691,7 @@ export function IntegrationsView() { name={item.name} tagline={item.tagline} pro={item.pro} + isNew={item.isNew} docsUrl={item.docsUrl} leftIndicator={renderLeftIndicator(item)} rightSlot={renderRight(item)} diff --git a/apps/web/public/images/poke.png b/apps/web/public/images/poke.png new file mode 100644 index 000000000..0d07751f7 Binary files /dev/null and b/apps/web/public/images/poke.png differ diff --git a/packages/lib/constants.ts b/packages/lib/constants.ts index f980a2e14..ab721b399 100644 --- a/packages/lib/constants.ts +++ b/packages/lib/constants.ts @@ -7,6 +7,7 @@ const ADD_MEMORY_SHORTCUT_URL = const RAYCAST_EXTENSION_URL = "https://www.raycast.com/supermemory/supermemory" const CHROME_EXTENSION_URL = "https://chromewebstore.google.com/detail/supermemory/afpgkkipfdpeaflnpoaffkcankadgjfc" +const POKE_RECIPE_URL = "https://poke.com/r/5tHPbS8gZvA" export { BIG_DIMENSIONS_NEW, @@ -15,4 +16,5 @@ export { ADD_MEMORY_SHORTCUT_URL, RAYCAST_EXTENSION_URL, CHROME_EXTENSION_URL, + POKE_RECIPE_URL, }