Skip to content

Add search using Typesense#116

Open
rafaeluphold wants to merge 1 commit intomasterfrom
enhancement/search-typesense
Open

Add search using Typesense#116
rafaeluphold wants to merge 1 commit intomasterfrom
enhancement/search-typesense

Conversation

@rafaeluphold
Copy link
Copy Markdown
Contributor

@rafaeluphold rafaeluphold commented Apr 1, 2026

Description

Added search to the documentation using Typesense.

How it works: The search bar is registered as a Docusaurus theme and appears automatically in the navigation bar. A scraper crawls the built website and indexes the content into Typesense. On every master deploy, the CI rebuilds and re-indexes automatically.

Requirements: A Typesense instance needs to be provisioned and the following three secrets added to the repository.

TYPESENSE_HOST
TYPESENSE_API_KEY - admin key, used by the scraper
TYPESENSE_SEARCH_API_KEY - read-only key, used by the browser

Hosting options: A decision needs to be made regarding the hosting of this service.

  • Typesense Cloud - managed, free tier is 720 hours/10GB one-time, then ~$25/month;

  • Self-hosted - deploy Typesense into an existing Uphold server, which requires Docker and an open port.

Related Issues

SWY-482

Screenshots

Screen.Recording.2026-04-01.at.17.20.57.mov

@rafaeluphold rafaeluphold self-assigned this Apr 1, 2026
@rafaeluphold rafaeluphold requested a review from a team as a code owner April 1, 2026 17:03
@rafaeluphold rafaeluphold added the enhancement New feature or request label Apr 1, 2026
Copilot AI review requested due to automatic review settings April 1, 2026 17:03
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Typesense-powered search to the Topper docs site by integrating the Docusaurus Typesense theme and wiring CI to re-index content after deployments.

Changes:

  • Add Typesense DocSearch configuration and local env sample.
  • Integrate docusaurus-theme-search-typesense and Typesense config into Docusaurus.
  • Extend the deploy workflow to run the Typesense scraper on master.

Reviewed changes

Copilot reviewed 6 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
typesense-docsearch-config.json Adds the Typesense DocSearch scraper configuration (index name, sitemap/start URLs, selectors).
package.json Updates Docusaurus versions, adds the Typesense theme dependency, and introduces scripts for running Typesense + indexing via the scraper container.
docusaurus.config.js Configures the Typesense search theme and reads Typesense connection details from env vars.
.github/workflows/deploy.docusaurus.yml Runs indexing on master after deploying to Cloudflare Pages and injects env vars for build/index.
.env.typesense.sample Documents expected Typesense env vars for local/Typesense Cloud usage.
.gitignore Ignores local Typesense env file and Typesense data directory.
README.md Minor wording/capitalization updates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@rafaeluphold rafaeluphold force-pushed the enhancement/search-typesense branch from f6eaaca to ce10da4 Compare April 1, 2026 18:01
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 1, 2026

🚀 Preview has been deployed.

Name Link
🔨 Commit SHA 50e9acc
🔍 Deploy Log https://github.com/uphold/topper-docs/actions/runs/23898945478
🚀 Preview URL https://9a7017d7.topper-docs.pages.dev

@uphold uphold deleted a comment from cycode-readonly-pr bot Apr 2, 2026
@rafaeluphold rafaeluphold force-pushed the enhancement/search-typesense branch from ce10da4 to 5fefc5f Compare April 2, 2026 11:47
@rafaeluphold rafaeluphold force-pushed the enhancement/search-typesense branch from 5fefc5f to f3b0d8d Compare April 2, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants