Skip to content

iFixit/typesense-explorer

Repository files navigation

Typesense Explorer

A web UI for exploring, searching, and inspecting documents in Typesense collections. Supports prefix/infix/exact search modes, faceted filtering, schema inspection, and a structured document detail panel.

Collections

Search Results - Dark Mode

Features

  • Collection browser with document counts
  • Search with configurable field selection and mode (prefix, infix, exact)
  • Facet panels auto-generated from collection schema
  • Filter builder with type-aware operators
  • Document detail panel with field grouping (identity, content, dates, attributes)
  • Schema viewer
  • Dark/light theme
  • Command palette (Cmd+K)
  • Search history
  • Pagination with configurable page size and sorting
  • Embedding/vector field auto-hiding

Light Mode

Document Detail Panel

Tech Stack

  • Runtime: Bun
  • Backend: Hono
  • Frontend: React + Vite
  • UI: shadcn/ui + Tailwind
  • State: Zustand
  • Container: Docker (oven/bun image)

Quick Start

Using Docker Compose (Recommended)

git clone <your-repo-url>
cd typesense-explorer

# Start everything with Docker Compose
docker-compose up -d

# Access the UI at http://localhost:3000

Local Development

  1. Install Bun (if not already installed):
curl -fsSL https://bun.sh/install | bash
  1. Install dependencies:
bun install
  1. Set up environment variables:
cp .env.example .env
# Edit .env with your Typesense connection details
  1. Run the development server:
bun run dev
  1. Access the UI at http://localhost:5173

Production Build

bun run build
bun run start

Environment Variables

Create a .env file in the root directory:

TYPESENSE_HOST=localhost
TYPESENSE_PORT=8108
TYPESENSE_PROTOCOL=http
TYPESENSE_API_KEY=xyz
PORT=3000

Architecture

┌─────────────────────────────────────────────────────┐
│                   Docker Container                  │
│  ┌───────────────────────────────────────────────┐  │
│  │              Bun + Hono Server                │  │
│  │  ┌─────────────────┐  ┌────────────────────┐  │  │
│  │  │  Static Assets  │  │   /api/* proxy     │  │  │
│  │  │  (React SPA)    │  │   to Typesense     │  │  │
│  │  └─────────────────┘  └────────────────────┘  │  │
│  └───────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────┘
                          │
                          ▼
                 ┌─────────────────┐
                 │   Typesense     │
                 │   (external)    │
                 └─────────────────┘

Collection Configuration

Per-collection field ordering and display settings can be configured in src/server/config/collections.json. When no custom config exists for a collection, fields display in their natural order as returned by Typesense.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

About

A web UI for exploring, searching, and inspecting documents in Typesense collections.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages