How it works

Connect once.
Optimize continuously.

Tamda connects to your GitHub repo and your app's own event stream, and runs the full optimization loop from there. No analytics platform OAuth. No unauthenticated endpoints.

Step 01

Connect your stack

Grant Tamda access to your GitHub repo, and give your app a workspace ingest key so it can call Tamda's event endpoints directly.

There's no analytics platform to connect via OAuth. Tamda doesn't read Amplitude, Segment, PostHog, or Mixpanel schemas. Events flow server-to-server from your own app to Tamda's API, authenticated with a per-workspace key.

  • GitHub repo connection takes under 60 seconds in Settings
  • Per-workspace ingest key authenticates POST /api/events, /api/identify, and /api/metrics
  • Already have a flag system, like Amplitude Experiment, LaunchDarkly, or homegrown? Tamda reads its existing variant assignment
  • No unauthenticated client-side calls: all data flows server-to-server

Connect your stack

Step 01 of 5

Step 02

Tamda observes your metrics and surfaces opportunities

Once connected, Tamda monitors your key metrics continuously, surfacing drops, friction points, and untapped gains before your team notices.

Or start from a hypothesis you already have. Either way, Tamda generates a full optimization spec: the change to make, the metric to move, the guardrails to watch.

  • Continuous metric monitoring from events sent to Tamda
  • Proactive opportunity detection: no ticket required to start a cycle
  • Automatically identifies guardrail metrics based on past data
  • Estimates sample size needed to reach outcome confidence

Tamda observes your metrics and surfaces opportunities

Step 02 of 5

Step 03

Tamda writes the code and opens the PR

Once a hypothesis is confirmed, Tamda connects to your GitHub repository and generates every file change needed: flag constants, component changes, and the fetch('/api/events') calls that report exposures and conversions back to Tamda.

It knows your codebase conventions: your flag naming pattern, your component structure, your SSR setup. The diff is production-ready.

  • Reads your existing flag patterns and conventions from the repo
  • Works with any feature flag system already in place, like Amplitude Experiment, LaunchDarkly, or a custom one
  • Opens a PR with the full spec and reasoning as the description
  • Writes the POST /api/events calls using your workspace's real metric names
step-03.ts
// Generated by Tamda: reads your existing flag system
const variant = await getExistingFlag('mobile-payment-field-collapse', userId)

// Reports the exposure so Tamda can measure the outcome
await fetch('https://your-tamda-domain.com/api/events', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-pilot-ingest-key': process.env.PILOT_INGEST_KEY!,
  },
  body: JSON.stringify({
    flagKey: 'mobile-payment-field-collapse',
    variant,
    userId,
    eventName: 'exposure',
    type: 'exposure',
  }),
})
Step 04

Outcomes evaluated, not just reported

When enough data has accumulated, Tamda runs the analysis directly from the exposure and conversion events your app has sent to /api/events. It performs statistical testing on the primary metric and checks every guardrail for regressions.

The output isn't a p-value to stare at. It's a decision: Ship, Iterate, or Kill, with plain-English reasoning and exactly what to do next.

  • Reads outcome data directly from events sent to Tamda
  • Two-proportion z-test at 95% confidence
  • Guardrail regression detection across all defined metrics
  • Ship / Iterate / Kill verdict with full reasoning

Outcomes evaluated, not just reported

Step 04 of 5

Step 05

Every outcome feeds the next cycle

Every result and learning is stored. Tamda builds a model of what moves your metrics, what doesn't, and what's never been tried, and starts the next optimization cycle automatically.

The longer Tamda runs, the more it knows about your product. Each cycle is faster and more targeted than the last.

  • Stores all outcomes, learnings, and patterns across cycles
  • Prioritizes next optimizations by estimated impact
  • Avoids re-testing what already ran
  • Surfaces underexplored areas based on metric gaps

Every outcome feeds the next cycle

Step 05 of 5

Ready to start your first cycle?

Connect your stack and Tamda starts observing in minutes.

Start your first cycle