The entire page load. Heavy files wait until the visitor shows search intent; you can watch this happen in the demo above.
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.
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.
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.
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.
npx lightembed crawl https://siteniz.com/dokumanlar/ --out ./icerik
2. Index
Splits pages into chunks, turns them into meaning vectors, writes a static bundle.
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.
<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.
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.
| Model | Quality, STS22 | Ships to browser | Quality per MB |
|---|---|---|---|
| lightembed-tr | 0.485 | 3.24 MB | 0.150 |
| potion-multilingual-128M | 0.504 | 128 MB | 0.0039 |
| emrecan bert-base-turkish | 0.563 | 110 MB | 0.0051 |
| multilingual-e5-small | 0.673 | 118 MB | 0.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.
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.