> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.outpost.pub/llms.txt
> Use this file to discover all available pages before exploring further.

# Algolia Integration (Deprecated)

> Full-text search index of your Ghost posts, powered by Algolia. This integration is deprecated — new publications should use Typesense.

export const PlanStatus = ({tier, status, beta, deprecated}) => {
  const variants = {
    luna: {
      bg: "#8340B9",
      color: "#ffffff",
      border: "1px solid #8340B9"
    },
    voyager: {
      bg: "#6B2FA0",
      color: "#ffffff",
      border: "1px solid #6B2FA0"
    },
    "space-station": {
      bg: "transparent",
      color: "#8340B9",
      border: "1px solid #8340B9"
    },
    "all-plans": {
      bg: "transparent",
      color: "#525252",
      border: "1px solid #a3a3a3"
    },
    labs: {
      bg: "transparent",
      color: "#a16207",
      border: "1px solid #a16207"
    },
    beta: {
      bg: "transparent",
      color: "#a16207",
      border: "1px solid #a16207"
    },
    "invite-only": {
      bg: "transparent",
      color: "#525252",
      border: "1px solid #a3a3a3"
    },
    bespoke: {
      bg: "transparent",
      color: "#525252",
      border: "1px solid #a3a3a3"
    },
    "outpost-hosted": {
      bg: "transparent",
      color: "#525252",
      border: "1px solid #a3a3a3"
    },
    deprecated: {
      bg: "transparent",
      color: "#b91c1c",
      border: "1px solid #b91c1c"
    }
  };
  const chip = (variant, label) => {
    const s = variants[variant] || variants["all-plans"];
    return <span key={variant + ":" + label} style={{
      display: "inline-flex",
      alignItems: "center",
      padding: "0.15rem 0.55rem",
      fontSize: "0.7rem",
      fontWeight: 700,
      letterSpacing: "0.05em",
      textTransform: "uppercase",
      borderRadius: "3px",
      lineHeight: 1.4,
      whiteSpace: "nowrap",
      backgroundColor: s.bg,
      color: s.color,
      border: s.border
    }}>
        {label}
      </span>;
  };
  const tierLabel = {
    "luna": "Luna",
    "voyager+": "Voyager+",
    "voyager-luna": "Voyager + Luna",
    "space-station+": "Space Station+",
    "all-plans": "All plans"
  };
  const tierVariant = {
    "luna": "luna",
    "voyager+": "voyager",
    "voyager-luna": "voyager",
    "space-station+": "space-station",
    "all-plans": "all-plans"
  };
  const statusLabel = {
    "labs": "Labs",
    "invite-only": "Invite-only",
    "bespoke": "Bespoke",
    "deprecated": "Deprecated",
    "outpost-hosted": "Outpost Hosted"
  };
  return <span style={{
    display: "inline-flex",
    gap: "0.4rem",
    flexWrap: "wrap",
    alignItems: "center",
    margin: "0 0 1.25rem 0"
  }}>
      {tier && chip(tierVariant[tier], tierLabel[tier])}
      {status && chip(status, statusLabel[status])}
      {beta && chip("beta", "Beta")}
      {deprecated && chip("deprecated", "Deprecated")}
    </span>;
};

<PlanStatus status="deprecated" />

<Warning>
  The Algolia integration is no longer available for new publications. Existing Algolia users can continue using it, but new publications should use [Typesense](/integrations/typesense) instead, which is hosted and managed by Outpost.
</Warning>

Outpost's Algolia integration automatically indexes your Ghost posts in [Algolia](https://algolia.com), enabling fast, typo-tolerant full-text search for your publication.

## What gets indexed

When a Ghost post is published or updated, Outpost adds it to your Algolia search index. Each entry includes:

* Post title
* Post excerpt
* Post slug and URL
* Tags
* Author
* Publication date
* Tier access level (free vs. paid)

## Setup

1. In Algolia, create an application and note your **Application ID**
2. In the Algolia dashboard, create a search index (e.g., `ghost_posts`)
3. Create an API key with read and write permissions for your index
4. In Outpost, go to **Settings → Integrations → Algolia** and enter:
   * Application ID
   * API key
   * Index name

## When indexing happens

Outpost automatically updates your Algolia index when:

* A post is published — adds it to the index
* A post is updated — updates the existing entry
* A post is unpublished or deleted — removes it from the index

## Search on your Ghost site

To add search to your Ghost theme, use Algolia's InstantSearch.js library with your Application ID and a separate search-only API key (different from the write key you gave Outpost).

Outpost does not modify your Ghost theme — you add the search UI to your theme independently.

## Searchable attributes

Configure which fields Algolia ranks by going to **Algolia Dashboard → \[Index] → Configuration → Searchable Attributes**. Recommended order:

1. Title
2. Tags
3. Excerpt
4. Content (if you index full content)
