Skip to main content
Oare Arene
← Back to Projects

PRD complete, development not started

Tessari

A product and system design for self-hosted search across internal company knowledge.

Role
Creator: product direction, system design, retrieval research, and UX
Timeframe
2025 to present

Problem

Knowledge needed for day-to-day work is often scattered across tools, making it difficult for teams to find trustworthy answers without interrupting colleagues or manually searching several systems.

Solution

Tessari is designed as an open-source, self-hosted retrieval engine. It would combine keyword and semantic search, preserve permissions from each source, and optionally use an LLM to produce answers with citations. Search remains useful when the AI layer is disabled or unavailable.

MVP design

  • One query across Notion, Confluence, Google Drive, and Slack
  • BM25 keyword search and vector search combined with Reciprocal Rank Fusion
  • Document-level permission filtering based on access rules from each source
  • A connector contract for fetching, normalizing, syncing, and testing new data sources
  • An optional AI layer with citations, provider choice, cost tracking, and retrieval-only fallback
  • Self-hosted deployment with an admin dashboard, REST API, and Slack bot

Proposed stack

  • Python
  • FastAPI
  • PostgreSQL
  • Typesense
  • Qdrant
  • Docker Compose
  • RRF
  • RAG

Proposed architecture

  • Connectors normalize documents and carry source permissions into the indexing pipeline
  • The pipeline stores metadata in PostgreSQL, full text in Typesense, and embeddings in Qdrant
  • Queries run through both search engines, apply server-side permission filters, and merge rankings with RRF
  • The synthesis layer receives only retrieved results and can use Claude, OpenAI, or a local OpenAI-compatible model
  • Keyword search remains available if the vector service fails, and retrieval results remain available if the AI provider fails
  • Major components are intended to be replaceable through configuration rather than hard-coded vendor dependencies

Design progress

  • Completed a detailed PRD covering product scope, connector contracts, permissions, indexing, retrieval, deployment, and operations.
  • Defined retrieval quality, source permissions, self-hosting, and an optional LLM as the core product constraints.
  • Separated MVP requirements from later work such as incremental sync, SSO, Kubernetes packaging, and managed cloud hosting.

Next steps

  • Build the project scaffold, connector contract, and first Notion integration.
  • Prototype indexing and hybrid retrieval before committing to the full MVP stack.
  • Validate permission filtering and retrieval quality with representative company knowledge.
← Back to Projects