Skene
Product
Pricing
Docs
Blog
About
Log InSign up
ProductPricingDocsBlogAbout
Log InSign up
Skene subpage background texture
Documentation

Supported libraries

Skene reads the writes your code makes into Supabase. For each one it records the target table, the columns it sets, and where in the control flow the write sits. That index, checked against your schema, is what every PR gets compared to.

Supabase client writes

supabase.from('events').insert({ ... })
supabase.from('events').upsert({ ... })
supabase.rpc('record_event', { ... })

Both the browser and server supabase-js clients are covered. Skene resolves the table name, the columns in the payload, and the conditions the call sits behind.

Server-side inserts

Writes that run on the server, in route handlers, edge functions, or background jobs, are read the same way. Skene follows the call to the table it targets.

Postgres functions and triggers

Events recorded through a Postgres function or a database trigger are matched to the table they write into, so an event that fires inside the database is checked against the schema like any other write.

How it maps to your schema

Skene reads your Supabase schema read-only and lines each write up against the table it lands in: the columns exist, the types match, the event still fires under the same conditions. A renamed column or a payload the table cannot store shows up on the PR.

What is next

  • Install Skene: pick a surface
  • What Skene catches: the five failure modes
  • Configuration: allowlist, ignore patterns
Skene

Product

How it worksFeaturesSupabaseArchitectureIntegrationsSecurityPricing

Resources

DocumentationGlossaryPlaybooksBlog

Company

AboutOpen sourceContactPrivacyTerms
© 2026 Skene. All rights reserved.
Privacy PolicyTerms of Service
Skene