Your visitors find what they mean.

Semantic search for your site, running entirely in the visitor's browser: no server, no subscription, no per-query fees.

Live demo: Turkish Wikipedia, astronomy
The demo searches Turkish content. Click a sample query above. The index does not download until you type.
score: semantic similarity, 0 to 1
3.24 MBthe entire model, one download
7.9 KBwhat a non-searching visitor pays
0.49 msper query, M4 Pro
$0per query, forever

Keyword search cannot find these.

Visitors do not know your page titles; they type their own words. lightembed matches meaning instead of words, so the right page comes up even with zero overlap.

how do I get a tax refund->Income tax return filing process
my package still has not arrived->Order tracking and delivery
how do I close my account->Account deletion steps

In all three, the query and the page title share no words. Left: what the visitor typed. Right: the page that should be found.

No server. Really.

Indexing runs once on your machine and produces static files. The only thing that runs for a visitor is a small search engine in their browser.

your contentmd, html
lightembed indexyour machine
static filesany hosting
browservisitor's device

Setup is three commands.

No server to run, no API key to manage, no pipeline to tune.

1. Get the content

Skip this step if you already have a content folder. Crawl only when the live site is all you have.

# download the live site, obeys robots.txt
npx lightembed crawl https://siteniz.com/dokumanlar/ --out ./icerik

2. Index

Splits pages into chunks, turns them into meaning vectors, writes a static bundle.

# index
npx lightembed index ./icerik --model ./model-tr.bin \
  --out ./public/lightembed --base-url https://siteniz.com

3. Add to your page

One script tag and one element. The bundle works on any static hosting.

<!-- on your page -->
<script type="module" src="/lightembed/widget.mjs"></script>
<lightembed-search src="/lightembed"></lightembed-search>

What are you buying?

A file, its tools, and updates. No subscription, no usage meter.

$79one time, per site

Turkish model

The 3.24 MB model-tr.bin. Licensed to your site, fingerprinted to you. This file is what the money buys.

Toolkit

Site crawler, indexer and search widget. All of the code is open source; read it before you buy.

Updates

Every improvement within the same major version. A major version change means a new index and a separate licence.

The visitor's bill, byte by byte.

Every number is measured, not calculated: a test generates this table, nobody types it. A visitor who never searches pays only the first row.

itemrawgzip
everything at page load20.9 KB7.9 KB
search engine, wasm103.3 KB48.1 KB
Turkish model3.24 MB2.58 MB
index, 5,000 chunks2.88 MB1.39 MB
total on first search8.4 MB4.41 MB
7.9 KB

The entire page load. Heavy files wait until the visitor shows search intent; you can watch this happen in the demo above.

45 s

To index 5,000 chunks. On your machine, at build time, once. Visitors never wait for any of it.

Measurements

We will state our limits ourselves.

A better free model exists and it is 36 times larger. If you want the quality ceiling, use it; if shipping 118 MB to every visitor is unacceptable, lightembed exists for that.

ModelQuality, STS22Ships to browserQuality per MB
lightembed-tr0.4853.24 MB0.150
potion-multilingual-128M0.504128 MB0.0039
emrecan bert-base-turkish0.563110 MB0.0051
multilingual-e5-small0.673118 MB0.0057

The table comes from our own test rig; commands and raw results are in the repo. Per compressed megabyte, the gap in our favour is 26x.

Every result can be audited.

Search uses both meaning and keywords. An inspection tool ships with every index: where each result came from, each side's contribution to the score, and what changes when you adjust the weight.

Search inspection tool: each result's rank in the semantic and keyword orderings, each side's contribution to the score, and what fusion changed.

On your own data, the lightembed explain command prints the same output.

Short answers.

Will anything run on my server?

No. The output is plain static files; GitHub Pages, Netlify or your own hosting, it makes no difference. Nothing ever phones home.

What happens when my content changes?

Run the same indexing command again. Unchanged pages come from cache; only new and edited pages are processed.

Why Turkish only?

General models do not understand Turkish suffixes. This model is trained for Turkish; focusing on one language is also why it can be this small.

Is the quality enough for me?

The demo above is the real product, not a polished mock. Try your own questions; if it does not convince you, do not buy it.

Type three words before you decide.

285 Turkish Wikipedia articles, in your browser. Ask something where the words do not match.