Your JS database is silently returning the wrong rows.

Sync engines and embedded databases re-implement SQL operators in JavaScript. Subtle gaps between those JS implementations and the SQL semantics they're meant to mirror make queries silently drop or over-match rows. No exception. No log. Just wrong data — the worst kind of bug.

8 merged + 1 open across 7 OSS databases in 8 days.
All same shape, all silent. Full audit summary at powersync-ja/discussions/668. Verified track record:
DatabaseClassStatus
PowerSync sync-rules5 separate evaluator bugs (NOT/NULL, LIKE, CAST, div-zero, json_each) + JOIN diagnostic + 3 closed (operator-direction call)5 merged + 1 open + 3 closed
Rocicorp's ZeroRange & comparison evaluation2 merged
InstantDB$like / $ilike newline handling1 merged
ElectricSQLLIKE newline + escaped wildcards1 open
DexieCase-fold silent row drops1 open
RxDB, Convex, TanStack DB, Autumn, ReflyAdjacent fixes & integrationsshipped / replied

Choose the entry point that fits

From self-serve playbook to a full sprint. Every tier is bounded scope, fixed price, no-find-no-charge above the playbook level.

Audit Playbook

$29
14-page PDF with the exact pattern I used at PowerSync, generalized to any JS sync engine. Operator-class signatures, repro template, regression-test skeleton, PR-shape that gets merged.
Get the playbook

Office Hour

$99
60-min live consult on your sync-rules.yaml or query layer. Surface silent-row-loss risks together, recording delivered. Written one-pager + recommended next actions.
Book the hour

Diagnostic Fix

$500
One specific operator I find a divergence on, scoped tightly: reproduction + fix + PR + regression test against your sync engine or embedded DB.
Book a diagnostic

Terms above the playbook tier: I find the bug or I don't charge. Once a divergence is confirmed, I ship the fix within 48 hours. Receipt and Polar-issued invoice automatic. No subscription, no upsell.

What "silent" means here

If a paid tier isn't the right shape yet

The base checker is open-source and runnable today against your DB: