IntegrationsRemix

Add Search Bar to Remix

Integrate Inkeep's search bar into your Remix application for powerful content discovery.

What is Remix

Remix is a modern web framework for building web applications based on React.

Get an API key

Follow these steps to create an API key for your web integration.

Copy and add the apiKey to your environment variables:

.env
INKEEP_API_KEY="INKEEP_API_KEY"

Get the environment variables

Use loader/action to access your environment variables:

root.tsx
// ...
export const loader = async () => {
  return json({
    ENV: {
      API_KEY: process.env.INKEEP_API_KEY!,
      INTEGRATION_ID: process.env.INKEEP_INTEGRATION_ID!,
      ORGANIZATION_ID: process.env.INKEEP_ORGANIZATION_ID!
    }
  });
};

Install the component library

npm install @inkeep/cxkit-react
yarn add @inkeep/cxkit-react

Customize your settings

Define your Inkeep settings.

const baseSettings = {
  apiKey,
  primaryBrandColor: "#26D6FF", // your brand color, widget color scheme is derived from this
  organizationDisplayName: "Inkeep",
  // ...optional settings
};
 
const modalSettings = {
  // optional settings
};
 
const searchSettings = {
  // optional settings
};
 
const aiChatSettings = {
  // optional settings
  aiAssistantAvatar: "/img/logo.svg", // use your own AI assistant avatar
  exampleQuestions: [
    "Example question 1?",
    "Example question 2?",
    "Example question 3?",
  ],
};
import type {
  InkeepAIChatSettings,
  InkeepSearchSettings,
  InkeepBaseSettings,
  InkeepModalSettings,
} from "@inkeep/cxkit-react";
 
const baseSettings: InkeepBaseSettings = {
  apiKey,
  primaryBrandColor: "#26D6FF", // your brand color, widget color scheme is derived from this
  organizationDisplayName: "Inkeep",
  // ...optional settings
};
 
const modalSettings: InkeepModalSettings = {
  // optional settings
};
 
const searchSettings: InkeepSearchSettings = {
  // optional settings
};
 
const aiChatSettings: InkeepAIChatSettings = {
  // optional settings
  aiAssistantAvatar: "/img/logo.svg", // use your own AI assistant avatar
  exampleQuestions: [
    "Example question 1?",
    "Example question 2?",
    "Example question 3?",
  ],
};

Define the component

Next, create an InkeepSearchBar.tsx file for the Search Bar component.

import React, { useEffect, useState } from "react";
 
export default function InkeepSearchBar() {
  const [SearchBar, setSearchBar] = useState(null);
 
  //...
 
  // load the library asynchronously
  useEffect(() => {
    const loadSearchBar = async () => {
      try {
        const { InkeepSearchBar } = await import("@inkeep/cxkit-react");
        setSearchBar(() => InkeepSearchBar);
      } catch (error) {
        console.error("Failed to load SearchBar:", error);
      }
    };
 
    loadSearchBar();
  }, []);
 
  const searchBarProps = {
    baseSettings,
    aiChatSettings,
    searchSettings,
    modalSettings,
  };
 
  return SearchBar && <SearchBar {...searchBarProps} />;
}
import React, { useEffect, useState } from "react";
import type { InkeepSearchBarProps } from "@inkeep/cxkit-react";
 
export default function InkeepSearchBar() {
  const [SearchBar, setSearchBar] =
    useState<(e: InkeepSearchBarProps) => JSX.Element>();
 
  //...
 
  // load the library asynchronously
  useEffect(() => {
    const loadSearchBar = async () => {
      try {
        const { InkeepSearchBar } = await import("@inkeep/cxkit-react");
        setSearchBar(() => InkeepSearchBar);
      } catch (error) {
        console.error("Failed to load SearchBar:", error);
      }
    };
 
    loadSearchBar();
  }, []);
 
  const searchBarProps: InkeepSearchBarProps = {
    baseSettings,
    aiChatSettings,
    searchSettings,
    modalSettings,
  };
 
  return SearchBar && <SearchBar {...searchBarProps} />;
}

For a full list of customizations, check out the Search Bar documentation.

On this page