Every atomic assertion extracted from the underlying record, ranked by evidence strength.
supabase-js can interact with Postgres databases.
supabase-js can listen to database changes.
supabase-js can invoke Deno Edge Functions.
supabase-js can build login and user management functionality.
supabase-js can manage large files.
Supabase provides a SQL to REST API translator.
supabase-js can be installed via npm.
supabase-js can be installed via CDN links.
supabase-js can be used in the Deno runtime via JSR.
supabase-js uses the Data API to query and mutate Postgres data.
Data API roles require permissions to access tables and functions.
Supabase allows enabling default privileges for new entities in Data API integrations settings.
Supabase allows using SQL to grant required permissions for Data API access.
The `createClient` function initializes the Supabase client.
The `createClient` function requires a `supabaseUrl` parameter (string).
The `createClient` function requires a `supabaseKey` parameter (string).
The `createClient` function accepts an optional `options` parameter (object).
supabase-js has TypeScript support.
supabase-js TypeScript support includes type inference.
supabase-js TypeScript support includes autocompletion.
supabase-js TypeScript support includes type-safe queries.
supabase-js detects `not null` constraints for TypeScript types.
supabase-js detects generated columns for TypeScript types.
supabase-js types nullable columns as `T | null`.
supabase-js shows a type error when inserting into generated columns.
supabase-js detects relationships between tables for TypeScript types.
supabase-js types one-to-many relationships as `T[]`.
supabase-js types many-to-one relationships as `T | null`.
Supabase CLI can generate TypeScript types.
TypeScript types can be generated from the Supabase dashboard.
Generated TypeScript types are derived from the database schema.
TypeScript type definitions can be supplied to supabase-js.
Supabase provides helper types for Tables and Joins to simplify generated TypeScript types.
Supabase allows overriding generated TypeScript types using `type-fest`.
The `overrideTypes` method can partially override the type of an individual successful response.
The `overrideTypes` method can fully replace the type of an individual successful response.
Generated TypeScript types provide shorthands for accessing tables.
Generated TypeScript types provide shorthands for accessing enums.
Supabase provides `QueryResult` type for complex queries.
Supabase provides `QueryData` type for complex queries.
Supabase provides `QueryError` type for complex queries.
The `select()` method performs a SELECT query.
The `count` with `range()` or `limit()` returns the total number of rows matching filters.
Supabase projects return a maximum of 1,000 rows by default.
The maximum row limit of 1,000 can be changed in Supabase project's API settings.
The `select()` method can be combined with filters.
The `select()` method can be combined with modifiers.
`apikey` is a reserved keyword on the Supabase Platform.
The `select()` method accepts an optional `columns` parameter.
The `select()` method accepts an optional `options` parameter.
The `insert()` method performs an INSERT operation.
The `insert()` method does not return inserted rows by default.
The `insert()` method can return inserted rows by chaining with `select()`.
The `insert()` method accepts a `values` parameter (object or array).
The `insert()` method accepts an `options` parameter (object).
The `update()` method performs an UPDATE operation.
The `update()` method does not return updated rows by default.
The `update()` method can return updated rows by chaining with `select()` after filters.
The `update()` method should always be combined with filters.
supabase-js is an isomorphic JavaScript library.