kynetradb
One Rust binary: BM25 search + vector + KV + document + auth + files + realtime + agentic admin.
vs
Supabase
Open-source Firebase alternative built on Postgres with auth, storage, realtime, and edge functions.
Feature comparison
| Dimension | kynetradb | Supabase |
|---|---|---|
| Full-text search | BM25 — reference catalogue | trigram |
| Vector search | Brute-force cosine evaluationSupabase uses HNSW which scales better past ~100k vectors | HNSW |
| Auth | Preview scope | Built-in |
| Row-Level Security | Preview scope | Postgres RLS |
| File storage | Preview scope | Built-in |
| Realtime | Preview scope | WebSocket |
| Edge Functions | Preview scope | Yes |
| TypeScript SDK | Preview scope | Yes |
| KV lookups | Preview scope | No |
| Document filter | Preview scope | Yes |
| LLM runtime | Preview scope | No |
| Outbound DB sync | Preview scope | No |
| Self-host | Preview scope | Yes |
| Single binary | Preview scope | No |
| License | Preview terms — request a scoped evaluation | Apache-2.0 |
| Deploy targets | 19 target profiles | 4 listed target profiles |
| Free tier | Preview access by request | yes — 500 MB database, 1 GB storage |
When to pick Supabase
Supabase is the benchmark for open-source BaaS developer experience, with deeper ecosystem adoption, SQL joins via Postgres, and mature fuzzy search. If your team is SQL-native or already invested in Supabase's ecosystem, Supabase is the established choice.
- Your team is SQL-native and needs relational joins.
- Your team is already invested in Supabase's SDK and ecosystem.
When to pick kynetradb
- You want a comparison-led conversation about BM25 full-text, vector evaluation, and data-plane trade-offs.
- You need a product-specific implementation scope rather than a generic migration claim.
- You want to assess 19 hosting target profiles, including 5 Indian providers.
- You want a scoped preview conversation about the data, deployment, and operating boundary.
- You want a single binary with no runtime dependencies — no container fleet to operate.
Reference API shape — both APIs side by side
Compatibility is scoped per preview; public parity is not claimed.. These are documentation-accurate shapes, not runnable end-to-end examples.
kynetradb
// KynetraDB reference API shape — illustrative, not a migration guarantee
import { createClient } from '@kynetra/client'
const kdb = createClient('https://api.myapp.com', PUBLISHABLE_KEY)
// Example query shape retained from the original research catalogue
const { data, error } = await kdb
.from('posts')
.select('id, title, author(name)')
.eq('published', true)
.order('created_at', { ascending: false })
.range(0, 19)
await kdb.auth.signInWithPassword({ email, password })
kdb.channel('live')
.on('postgres_changes', { event: 'INSERT', table: 'messages' }, payload => {
console.log(payload.new)
})
.subscribe()Supabase
// Supabase — @supabase/supabase-js
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('https://xxxx.supabase.co', ANON_KEY)
const { data, error } = await supabase
.from('posts')
.select('id, title, author(name)')
.eq('published', true)
.order('created_at', { ascending: false })
.range(0, 19)
await supabase.auth.signInWithPassword({ email, password })
supabase.channel('live')
.on('postgres_changes', { event: 'INSERT', table: 'messages' }, payload => {
console.log(payload.new)
})
.subscribe()