One query, four powers
Vector similarity, JSONB metadata filters, full-text search, and per-user row-level security resolve together in a single Postgres query, instead of four round trips you reconcile by hand.
Store documents, search by meaning, and stream changes in real time. It all lives behind one Postgres-backed API, scoped to your users with the auth provider you already use.
// One query: vector similarity + JSONB filter + your user's access scope.
const { data } = await gresiq
.collection("memories")
.where({ lang: "fa" }) // JSONB metadata filter
.nearest(embedding, { limit: 10 }) // pgvector ANN search
.run(); // row-level security applied automaticallyPinecone bolts metadata filtering on after the fact and leaves auth to you. GresIQ pushes all four into one query plan, so results come back already filtered, ranked, and scoped to the end user.
// One query: vector similarity + JSONB filter + your user's access scope.
const { data } = await gresiq
.collection("memories")
.where({ lang: "fa" }) // JSONB metadata filter
.nearest(embedding, { limit: 10 }) // pgvector ANN search
.run(); // row-level security applied automatically.collection("memories")Documents. A schemaless JSONB collection. Adding a field takes no migration.
.where({ lang: "fa" })Metadata filter. Filter on any JSONB key. Indexed, not bolted on after the fact.
.nearest(embedding, { limit: 10 })Vector search. pgvector approximate-nearest-neighbour, ranked by meaning.
.run()Row-level security. The end user's token scopes every row, so you never post-filter in your app.
Five capabilities that usually mean five vendors. Here they're one service, built on a database you already trust.
Vector similarity, JSONB metadata filters, full-text search, and per-user row-level security resolve together in a single Postgres query, instead of four round trips you reconcile by hand.
GresIQ verifies JWTs from Auth0, Clerk, Firebase, Cognito, or smbCloud Auth via JWKS. You keep your users and you keep your identity vendor.
A schemaless JSONB store, change subscriptions, and vector search behind one endpoint and one bill, instead of three services to integrate and keep in sync.
Bring your own embeddings and keep full control of your model and your cost. Or opt into edge-computed embeddings when you'd rather not run them yourself.
Real transactions, a SQL escape hatch when you need it, and no proprietary data format. Your data stays portable.
GresIQ verifies the user's JWT against your provider's JWKS, then row-level security scopes every row to that user. You don't migrate users, and you never get locked into one identity vendor.
// Use the identity provider you already have: Auth0, Clerk, Firebase,
// or smbCloud Auth. GresIQ verifies the JWT via JWKS; RLS scopes the data.
const gresiq = createClient("https://api.gresiq.com", { token: userJwt });curl https://api.gresiq.com/gresiq/v1/collections/memories \
-H "Authorization: Bearer $USER_JWT" \
-H "X-Gresiq-Api-Key: $GRESIQ_KEY"Declare a JSONB collection and its vector dimensions. No schema to design up front.
// 1. Create a collection
await gresiq.collections.create("memories", {
vector: { dimensions: 1536 },
});Insert documents with any shape, plus an embedding. Add fields whenever you want, with no migration to run.
// 2. Write documents (schemaless JSONB + an embedding)
await gresiq.collection("memories").insert({
text: "Rumi on the reed flute",
lang: "fa",
embedding,
});Pass the end user's token. GresIQ applies row-level security and returns only their data.
// 3. Query, scoped to your end user's token
const gresiq = createClient(API_URL, { token: userJwt });
const { data } = await gresiq
.collection("memories")
.nearest(embedding, { limit: 5 })
.run();Postgres underneath · no lock-in
ACID transactions
Real consistency, not eventual hand-waving.
SQL escape hatch
Drop to raw SQL the moment you need it.
No proprietary format
Standard Postgres. Your data stays portable.
Battle-tested
Decades of tooling, backups, and operators.
The DIY stack (a document store, a vector database, and an auth provider) is a great way to ship. GresIQ gives you the same capabilities with fewer moving parts to integrate, bill, and reconcile.
| Capability | GresIQ | DIY: Supabase + Pinecone + Auth0 |
|---|---|---|
| Services to integrate | One API | Three (store + vectors + auth) |
| Hybrid query (vector + filter + RLS) | Single query | Stitched across services |
| Billing | One bill | Three invoices |
| Identity provider | Bring your own (JWKS) | Per-service wiring |
| Data store | Postgres + JSONB | Postgres + a separate vector DB |
| Vendor lock-in | Standard Postgres, SQL escape hatch | Proprietary vector format |
Comparison reflects GresIQ's intended feature set. Some capabilities are rolling out. See the roadmap below.
The document store is the live foundation. The rest is rolling out, and we'd rather show you the real status than fake general availability.
Document API
Schemaless JSONB collections over HTTP. Create, write, and read documents today.
Realtime subscriptions
Stream inserts and updates to your clients as they happen.
Row-level security
Per-user data scoping enforced in the database from the end user's token.
Vector search
pgvector ANN search and hybrid queries that fuse vectors, filters, and RLS.
Client SDKs
First-class JavaScript / TypeScript and Swift clients.
Join the waitlist for early access. We'll reach out as realtime, RLS, and vector search land.
Part of smbCloud Platform