Skene
Product
Pricing
Docs
Blog
Events
About
Log InStart free
ProductPricingDocsBlogEventsAbout
Log InStart free
Dithered Skene hero background

Trust your product data. Live in one click.

Product analytics in your own Supabase, working with any dashboard you use. Skene runs as a GitHub Action on every pull request: it adds the events you're missing and catches a broken one in a PR comment, before the merge and while the data's still recoverable.

Start free

The problem

You can't get today's data back tomorrow.

Early on, analytics is handled, for now. You ship features, your agent rewrites the code that writes the events, and one checkout insert quietly gets renamed in a green PR. Nothing errors. The Supabase table just stops filling, and no one notices for weeks.

Then it bites. You're three slides into a board deck defending an activation number you can't personally verify, and the funnel has gone flat. An engineer burns a sprint and finds the break. You can patch the code tomorrow. You can't get back the weeks of data it was broken. That cohort is gone for good, and the decision already went out the door.

Skene catches that break on the pull request, in the same place you already review code, while it's still a comment and the data is still recoverable. The gate sits outside the agent that wrote the code, reads your schema read-only, and your data stays in your own Supabase. Setup takes under ten minutes.

Analytics in your own Supabase icon

Analytics live in your own Supabase.

Connect once. Skene adds the tracking you're missing, right into the database you already own.

  • Connect your repo and Supabase, read-only
  • Adds the events you're missing, indexed against your schema, and checks each one fits a table
  • Your data stays in your Supabase, never moved or copied
  • Checks each PR against its preview branch, via Supabase branching
Start free
×
Starting journey analysis…

This may take a few minutes. Stay on this page to see live pipeline updates.

Analyzing Schema
Events from codebase
Generating Journey
Discovery
From sign up to account creation
SIGNALTYPEFOUND ATSTATUS
Account CreatedSupabasepublic.accountsCan be tracked (DB)
Signup Page ViewedGitHubapp/admin/(auth)/login/page.tsxRecommended
Signup Form SubmittedGitHubapp/admin/(auth)/login/page.tsxRecommended
Auth User CreatedSupabaseauth.usersCan be tracked (DB)
auth.users.insertGitHub–Can be tracked (DB)
user creates an account recordGitHub–Can be tracked (DB)
refactor: consolidate checkout flow tracking
Open
feat/checkout-v2→main
skenebotcommented now

Analytics diff detected

Missing callcheckout_started: not found in new state
Renamed eventpurchase_complete → order_confirmed
Payload shape changecart_viewed: field "items" removed
Conditional no longer firesupsell_shown: condition block unreachable
Caught on review. Not on a dashboard that's been wrong for weeks.
Tracking drift detection icon

Tracking that doesn't quietly break.

Every way a code change can quietly drop an event. Caught on the pull request that caused it.

  • Tracking your code stopped recording, or renamed so it no longer lands
  • Data shaped wrong, so your database silently drops it
  • Tracking that used to fire but stopped, for some users or some flows
  • Flagged as a PR comment, not weeks later
Start free
Works with any dashboard icon

Works with any dashboard. Tells you what pays.

Skene feeds the dashboard you already use, and answers the questions that move revenue.

  • Point any dashboard or BI tool at your own Supabase
  • Or ask the questions that move revenue from inside your coding agent, over MCP. No new dashboard to build
  • Skene gives the answer, not another chart to babysit
  • Turnkey dollar-revenue viewRoadmap
Start free
Analytics events
checkout_started
purchase_complete
cart_viewed
public·events
event_nametext
order_idint4
cart_itemsmissing
created_attimestamptz
Skene checking events against schema…
feat: add purchase_complete tracking
Open
feat/purchase-events→main
skenebotcommented now

Schema mismatch detected

purchase_complete→public.events
Type mismatchpayload.purchase_id · text → column is int4
Missing columnpayload.cart_items · column does not exist

Numbers you can defend. Checked on every pull request.

One GitHub Action adds the tracking you're missing, then guards it on every pull request. It reads your Supabase schema read-only, so when an agent's refactor breaks a checkout insert, you hear about it in the PR comment, not three weeks later when the funnel goes flat. Then ask your coding agent for the paths and cohorts that pay.

Start free
1. SKENE ADDS THE EVENTS YOU'RE MISSING, INDEXED AGAINST YOUR SUPABASE SCHEMA. ONE ACTION, LIVE IN MINUTES.
2. AN AGENT RENAMES A TRACKING CALL? SKENE CATCHES IT ON YOUR PR. MISS IT, AND THAT DATA IS GONE FOR GOOD.
3. EVERY EVENT IN YOUR FUNNEL STILL FIRES AND LANDS IN THE RIGHT TABLE. THE NUMBER HOLDS.

Four ways to plug Skene in.

Ask questions from your coding agent (MCP server). Run it on every pull request (GitHub Action). Call it from your own scripts (Cloud API). Or start with a one-time check of your repo.

Same engine behind each.

Start freeRead more
MCP server
Cursor · Claude Code
GitHub Action
Runs on every PR
Cloud API
Any script, any time
Repo audit
One-time · no commitment
MCP server
Skene runs before the agent commits. Catches analytics issues in the agent loop, not after the PR lands.
skene mcp --cursor

Separation of duties

The agent writes the tracking. It should not grade its own work.

An agent checking the tracking it just wrote is the conflict of interest the check exists to remove. Skene runs alongside Cursor, Claude Code, and Codex, not inside them. The gate sits outside the tool that made the change: it reads the diff against your Supabase schema, sees a write stop landing in its table, and leaves the verdict as a PR comment. The reviewer answers to your schema, not to the agent it is reviewing.

It is not a dashboard you babysit or a copy of your data. Your data stays in your database. Skene owns the gate, and the trusted record you query over MCP for what drives revenue.

Built in the open,
with our design partners.

119 stars
Open GitHubStart free →
Pixelated Skene CTA background

Patch the code tomorrow. The data from this week is already gone.

A renamed event passes every test, ships green, and sits broken for weeks before anyone notices. Skene runs as a GitHub Action on every pull request, reads your Supabase schema read-only, and comments the moment a write breaks, while your data is still recoverable. Usage-based on tokens, with $5 of free cloud credit to start. A PR that touches none of your tracking costs nothing.

Start free

Catch the break on the PR, or lose the cohort for good.

Miss a tracking break and you lose weeks of data you can't backfill. Local use stays free, no card. Cloud and CI are usage-based, and a PR that touches no tracking code costs nothing.

Billed monthlyBilled yearly
ProPopular
$29/mo

1.5M monthly tokens

  • Local MCP server
  • GitHub Action with PR comments
  • Cloud validation API
  • 1.5M monthly tokens
Start free →
Scale
$99/mo

6M monthly tokens

  • Local MCP server
  • GitHub Action with PR comments
  • Cloud validation API
  • 6M monthly tokens (4x Pro)
Start free →
Ultra
$199/mo

15M monthly tokens

  • Local MCP server
  • GitHub Action with PR comments
  • Cloud validation API
  • 15M monthly tokens (10x Pro)
  • Priority support
Start free →
Skene

Product

How it worksFeaturesSupabaseArchitectureIntegrationsSecurityPricing

Resources

DocumentationGlossaryPlaybooksBlog

Company

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