From 1108cdd9a74752b80785eba515d455fb10934c9a Mon Sep 17 00:00:00 2001 From: Ben Senescu <44480372+bensenescu@users.noreply.github.com> Date: Thu, 23 Apr 2026 18:02:24 -0400 Subject: [PATCH] feat: gate llm mentions in self hosted product (#134) --- .../features/access-gate/AccessGate.tsx | 83 ++++++++++ .../features/access-gate/useAccessGate.ts | 46 ++++++ .../features/ai-search/BrandLookupPage.tsx | 44 +++-- .../features/ai-search/PromptExplorerPage.tsx | 45 +++-- .../components/AiSearchSetupGate.tsx | 50 ++++++ .../features/ai-search/useAiSearchAccess.ts | 10 ++ .../features/backlinks/BacklinksPage.tsx | 27 +-- .../backlinks/BacklinksPageContent.tsx | 37 ++--- .../backlinks/BacklinksPageStates.tsx | 127 ++++----------- .../features/backlinks/backlinksPageTypes.ts | 4 - .../backlinks/useBacklinksPageData.ts | 42 ++--- .../features/billing/HostedPlanGate.tsx | 50 ++++++ src/client/lib/error-messages.ts | 4 + .../ai-search/services/brandLookup.ts | 23 +-- .../ai-search/services/promptExplorer.ts | 12 +- .../backlinks/backlinksAccess.test.ts | 39 ----- .../features/backlinks/backlinksAccess.ts | 130 --------------- .../dataforseoAccessClassification.test.ts | 71 ++++++++ .../lib/dataforseoAccessClassification.ts | 66 ++++++++ src/server/lib/dataforseoAccountState.ts | 83 ++++++++++ src/server/lib/dataforseoBacklinks.test.ts | 42 ++--- src/server/lib/dataforseoBacklinks.ts | 12 +- src/server/lib/dataforseoBacklinksAccount.ts | 154 ------------------ src/server/lib/dataforseoBacklinksSupport.ts | 92 ++--------- src/server/lib/dataforseoLlm.ts | 34 +++- src/server/lib/runtime-env.ts | 9 - src/serverFunctions/aiSearchAccess.ts | 34 ++++ src/serverFunctions/backlinks.ts | 93 ++++------- src/serverFunctions/backlinksAccess.ts | 86 +++------- src/shared/error-codes.ts | 2 + src/types/schemas/ai-search.ts | 8 + 31 files changed, 748 insertions(+), 811 deletions(-) create mode 100644 src/client/features/access-gate/AccessGate.tsx create mode 100644 src/client/features/access-gate/useAccessGate.ts create mode 100644 src/client/features/ai-search/components/AiSearchSetupGate.tsx create mode 100644 src/client/features/ai-search/useAiSearchAccess.ts create mode 100644 src/client/features/billing/HostedPlanGate.tsx delete mode 100644 src/server/features/backlinks/backlinksAccess.test.ts delete mode 100644 src/server/features/backlinks/backlinksAccess.ts create mode 100644 src/server/lib/dataforseoAccessClassification.test.ts create mode 100644 src/server/lib/dataforseoAccessClassification.ts create mode 100644 src/server/lib/dataforseoAccountState.ts delete mode 100644 src/server/lib/dataforseoBacklinksAccount.ts create mode 100644 src/serverFunctions/aiSearchAccess.ts diff --git a/src/client/features/access-gate/AccessGate.tsx b/src/client/features/access-gate/AccessGate.tsx new file mode 100644 index 0000000..4d3c479 --- /dev/null +++ b/src/client/features/access-gate/AccessGate.tsx @@ -0,0 +1,83 @@ +import type { ReactNode } from "react"; +import { ShieldAlert, Wrench } from "lucide-react"; + +export function AccessGateLoadingState() { + return ( +
- Backlinks is not enabled for your DataForSEO account yet. Turn it - on in DataForSEO, then test access here. -
-
- DataForSEO offers a free 14-day trial for Backlinks. Then, it's
- $100/month. We're gauging interest in building out a lower-cost
- alternative,