@vitibase/client
v0.2.0
Published
JavaScript client for Vitibase — Postgres hosted in India, with an instant REST API, auth, storage and realtime.
Maintainers
Readme
@vitibase/client
The JavaScript client for Vitibase — Postgres hosted in India, with an instant REST API, authentication, file storage and realtime.
npm install @vitibase/clientimport { createClient } from '@vitibase/client'
const db = createClient(process.env.VITIBASE_PROJECT_REF!, process.env.VITIBASE_ANON_KEY!)
const { data } = await db.from('orders').select('id, total, created_at').eq('status', 'paid')A project ref, or a URL
createClient takes either. A ref is the twenty-letter identifier on your project's Connect
panel, and the URL is built for you:
createClient('abcdefghijklmnopqrst', anonKey) // https://abcdefghijklmnopqrst.vitibase.in
createClient('https://db.example.com', anonKey) // used exactly as givenprojectUrl(ref) is exported separately, for the places that need the address rather than a
client — a plain fetch against the REST endpoint, a storage URL in an <img>, a health check
in a deploy script.
What this package is
A thin layer over @supabase/supabase-js, which it
re-exports in full. Vitibase serves the same data-plane API, so writing a second client would
mean maintaining a worse one and owning every bug in it. Two things are added: a project ref
becomes a URL, and an application's source does not have to name another vendor for a database
that is not theirs.
An existing codebase changes one import line and nothing else:
-import { createClient } from '@supabase/supabase-js'
-const db = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_ANON_KEY)
+import { createClient } from '@vitibase/client'
+const db = createClient(process.env.VITIBASE_PROJECT_REF, process.env.VITIBASE_ANON_KEY)Every other export — the auth and storage types, the realtime constants — is the upstream one,
unchanged. The client class is exported as VitibaseClient as well as under its original
name; they are the same class, so instanceof and type annotations agree whichever you write.
import type { VitibaseClient } from '@vitibase/client'
function seed(db: VitibaseClient) {
/* … */
}ES modules
This package ships ESM only. Node 22 and every current bundler handle that; on older CommonJS
setups, await import('@vitibase/client') works.
Licence and attribution
Apache-2.0. It depends on @supabase/supabase-js, which is Apache-2.0 licensed and copyright
Supabase, Inc. Postgres is a registered trademark of the PostgreSQL Community Association of
Canada. Supabase is a trademark of Supabase, Inc., which does not endorse Vitibase.
