A search engine that refuses to stay on the server
Orama packs full-text, vector, and RAG search into a TypeScript library that runs in browsers, servers, and edge workers without a separate backend.

What it does
Orama is an in-process search engine that indexes and queries data through full-text, vector, and hybrid modes from inside a JavaScript runtime. It recently added an AnswerSession class for RAG-style chat over indexed documents, turning the same library into a lightweight retrieval backend for generative UI. You declare a schema up front—vector dimensions included—and then insert, filter, and search through a straightforward API.
The interesting bit
Rather than bolting vector search onto a traditional text engine, Orama treats embeddings as a first-class column type and offers plugins that generate them at insert-time via TensorFlow.js or securely proxy OpenAI from the client. That means you can evolve from keyword search to a ChatGPT-like RAG experience without swapping out your index or adding a new service.
Key highlights
- Toggle between full-text, vector, and hybrid search with a single
modeparameter on thesearchmethod - Schema supports 10 data types, including
geopointand fixed-sizevector[<size>]arrays - Plugin ecosystem covers embeddings, secure client-side OpenAI proxy, analytics, and framework integrations for Vitepress, Docusaurus, Astro, and Nextra
- Built-in typo tolerance, exact match, field boosting, facets, and stemming across 30 languages
- Runs in browsers, servers, and edge workers under an Apache 2.0 license
Caveats
- Vector and hybrid search require supplying your own embeddings at query time unless you add the TensorFlow.js-backed embeddings plugin
- The RAG chat features rely on OpenAI APIs; the README recommends a secure-proxy plugin to handle those client-side
- Vector dimensions must be declared in the schema at initialization, so you need to know your embedding model’s size upfront
Verdict
A solid bet if you want modern search and retrieval inside a single deployable unit without managing a dedicated daemon. Look elsewhere if you need a distributed, multi-node search cluster or strictly offline LLM inference.
Frequently asked
- What is oramasearch/orama?
- Orama packs full-text, vector, and RAG search into a TypeScript library that runs in browsers, servers, and edge workers without a separate backend.
- Is orama open source?
- Yes — oramasearch/orama is an open-source project tracked on heatdrop.
- What language is orama written in?
- oramasearch/orama is primarily written in TypeScript.
- How popular is orama?
- oramasearch/orama has 10.5k stars on GitHub.
- Where can I find orama?
- oramasearch/orama is on GitHub at https://github.com/oramasearch/orama.