// the take
An immutable, in-memory Datalog database written to live inside a browser tab (or a JVM) — you create one on page load, throw app state into it, query it like Datomic-lite, and let it get garbage collected when the tab closes. It's aimed at frontend developers building stateful ClojureScript (or vanilla JS) apps who want a real query engine instead of hand-rolled filtering over nested data structures.
Full Datalog implementation (joins, rules including recursive ones, aggregates, negation, disjunction) running purely as in-memory index lookups, not an abstraction over a real DB. EAVT/AEVT/AVET indexes plus a Pull API give you Datomic-style ergonomics without running Datomic. Constant-space operation by design — it doesn't retain history like Datomic, so long-lived browser sessions don't leak memory just from normal usage. Usable from plain JS/npm with no CLJS toolchain required, which is a real integration path, not an afterthought.
No schema migrations and no full-text search means it stops being a fit the moment your 'client-side app state' problem turns into 'I actually need a query layer with constraints and search.' Project status is explicitly 'stable, no docs at the moment' — the maintainer is relying on Datomic's docs plus examples to fill the gap, which is a real onboarding tax for anyone not already familiar with Datalog or Datomic. It's single-process and in-memory only: there's no built-in persistence or sync story, so you're on your own (or reaching for third-party libs like datascript-storage-sql or DatSync) the moment you need durability or multi-client state sharing. The JS interop layer is a thin bridge (EDN strings for queries, string-keyed db/id) rather than a first-class JS API, so non-Clojure teams are writing EDN by hand to use it.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →