10 billion logs. 92 search + analytics queries. Same machine. @ClickHouseDB : 48 of 92 finished.
@serenedata : 92 of 92, median 173 ms. Every config public, and it beat us on 8 -- Andrey's write-up
says where and why: https://t.co/SDEFfakCss
Andrey and I have known each other 17 years. We've gone a long journey together. Why we left to build a database ourselves and why today we open it
to everyone, see → Alexander's post: https://t.co/wcohXMkw0j
Don't trust us, run it yourself. SearchBench: 92 queries over 100M, 1B and 10B records against
Elasticsearch, OpenSearch, ClickHouse, ParadeDB, TigerData and Postgres. Every config, every
raw result, live board. Think a config is unfair? Send a PR: https://t.co/obQVVAVURo
We're live on Product Hunt. Open source, Apache 2.0, Postgres-compatible, and fast enough that a
coding agent can build a real app on it in an afternoon. If you think the database layer deserves
better, we'd be grateful for your support:
https://t.co/iEpfKwXq8g
"Just put a text index on @ClickHouseDB ."
So we measured. 92 queries over 10B OpenTelemetry logs on one box, finished inside 60s:
SereneDB 92
ClickHouse sorted 60
ClickHouse 48
https://t.co/2RevneFJfD
"Why build another search engine at all?"
So we measured. 92 queries, 1B logs, median latency:
@serenedata 32.5 ms
@elastic 98.4 ms
@OpenSearchProj 195.2 ms
@cratedb 543.5 ms
https://t.co/1cqaCqsxqV
"Why not just install a Postgres extension?"
So we measured. 92 queries, 1B logs, median latency:
@serenedata 35.5 ms
@paradedb 413 ms
@TimescaleDB > 60 s
@PostgreSQL > 60 s
https://t.co/DVMZpPBVM2
𝗧𝗵𝗲 𝗜𝗻𝘁𝗲𝗿𝗻𝗮𝘁𝗶𝗼𝗻𝗮𝗹 𝟮𝟬𝟮𝟲 is live in Shanghai. 16 teams, one Aegis, millions on the line.
This week SereneDB ships the "𝑊ℎ𝑦 𝑌𝑜𝑢 𝐿𝑜𝑠𝑡" tool to support the event.
Paste a match ID from your history. It reads the replay and gives you the a̲u̲t̲o̲p̲s̲y̲: 𝘷𝘦𝘳𝘥𝘪𝘤𝘵, 𝘥𝘳𝘢𝘧𝘵, 𝘪𝘵𝘦𝘮𝘪𝘻𝘢𝘵𝘪𝘰𝘯, 𝘴𝘵𝘢𝘵𝘴 and the exact fights that cost a player the game.
While the pros are drafting for the Grand Finals, you can find out why 𝘺𝘰𝘶𝘳 draft didn't work.
How it works: a replay is just an 𝘦𝘷𝘦𝘯𝘵 𝘴𝘵𝘳𝘦𝘢𝘮 that is positions, health, gold, item timings, sampled second by second. We check every decision against cohorts of comparable matches: same hero, same role, current patch.
Run your own match → https://t.co/LKPEir0oMH
If you're watching TI this weekend, go find out why your last ranked game didn't go your way. 🏆
If you find this useful, a s̲t̲a̲r̲ ̲o̲n̲ ̲G̲i̲t̲H̲u̲b̲ means more than you'd think.
#Dota2 #TI2026 #TheInternational
When we started SereneDB, we had to pick a query language. Although a custom DSL was tempting we dropped that idea fast.
When building something new a DSL is very appealing but users don't like custom query languages when SQL is already there.
So we decided we'd go with SQL and every day we got more and more certain that this was the right decision.
Most analytical data already lives in Iceberg, Delta and Parquet. Optimizers, BI tools, dbt pipelines. All of it already speaks SQL. We didn't have to invent the relational half. JOINs, GROUP BY, window functions and CTEs are simply there.
SQL also has a clean predicate slot for search to drop into (Postgres's @@ operator). We didn't invent a syntax for hybrid search either. We made the right-hand side of @@ a first-class expression language, and the engine treats search as a peer operator.
For our users it means that BM25 scores and vector distances become columns. They live in the same query plan as your joins and aggregations.
One language. One engine. No glue code.
Six-slide breakdown in the images.
Full write-up: https://t.co/O3n2BTaRR9
🙈 Pure semantic search isn't always ideal for it has a quiet failure mode.
A query for "Compaction in LLM" can return papers about garbage collection, for example. Vectors don't know the user meant context compaction because "compaction" semantically lives near words about reclaiming space.
The fix is well-known: combine semantic ranking with a keyword filter. Combining them is where things get ugly. Text index on one side, vector index on the other, planner doing post-hoc rerank. Filters can't push into the vector traversal because the traversal doesn't know they exist.
So in SereneDB, BM25 over text and HNSW over embedding live in the same inverted index. Filter and ANN run in one pass. Only documents matching the filter reach the ranker.
Demo trilogy: https://t.co/YA6PBSY3ZM
Repo: https://t.co/Jb24MtMlZv
🙅♀️ Stop moving your data to the search engine.
Back in 2012 everyone accepted the same setup: take your data from Postgres, push it into Elasticsearch, build a pipeline, and then spend years fighting with drift and managing another cluster. Most teams are still doing exactly that.
Now the data is spread across many places i.e. Parquet files on S3, Iceberg tables, CSVs in buckets, datasets on Hugging Face. When you have an agent, every question can need a different combination of sources. It’s simply not possible to copy everything in advance.
SereneDB works differently. The index doesn’t copy the rows, it only references them. You can point it at a URL, keep the files locally or load the data into a native table. In all cases you use the same SQL, there’s no ETL and you can run search and analytics in one query.
Three modes, one language, no extra pipelines.
Your data doesn’t live in one place anymore. The search engine shouldn’t either.
Full walkthrough and demos in the first comment 👇
#SereneDB #Search #DataLake #SQL #Analytics
You use 20% of your Postgres client. Every single day.
The rest is built for workflows you rarely touch: schema management, backups, migrations, performance tuning. Powerful, but not for you.
If 80% of your time is spent querying and analyzing data, you want an interface built for that.
Fast. Minimal. Keyboard-first.
Serene UI is an open-source Postgres client and the default UI for SereneDB inspired by VS Code. We wanted something that feels like a workspace, not a cockpit.
We are not trying to compete with feature-complete database tools. There are good ones already. We just wanted something lighter.
What is inside:
* Command palette
* Split panes and movable tabs
* Persistent workspace state
* Schema-aware autocompletion
* Built-in visualization
* Searchable query history
We are also working on AI integration. Not as a flashy extra, but as a practical layer: smart templates, query suggestions, complex UI actions replaced with simple prompts. The plan is to let you use AI subscriptions and API keys you already have, not force you into one specific provider. We think that is the only honest way to do it.
Try it and tell us what you think. Especially the AI part, we are still figuring that out and real opinions would help.
🔗 https://t.co/cgexBVEXdd