How it works

Connect once.
Optimize continuously.

Tamda connects to your GitHub repo and to the analytics you already run, whether that's Amplitude, Mixpanel, your warehouse, or your app's own event stream, and runs the full optimization loop from there.

Step 01

Connect your stack

Grant Tamda access to your GitHub repo, then connect your data however it already flows. Import history straight from Amplitude or Mixpanel, pull from your Snowflake, Redshift, or Postgres warehouse, forward events from your existing pipeline, or send them server-to-server with a per-workspace ingest key.

Whatever the source, Tamda works from the handful of core events that define your funnel. It normalizes every source into one shape, so the rest of the loop runs the same no matter where your data lives.

  • GitHub repo connection takes under 60 seconds in Settings
  • Import historical events straight from Amplitude or Mixpanel, so you see metrics on day one instead of waiting for new data to trickle in
  • Prefer another source? Pull from a Snowflake, Redshift, or Postgres warehouse, forward events from your existing pipeline, or POST them directly
  • Per-workspace ingest key authenticates POST /api/events, /api/identify, and /api/metrics, all server-to-server with no unauthenticated client calls
  • Already have a flag system, like Amplitude Experiment, LaunchDarkly, or homegrown? Tamda reads its existing variant assignment

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
  • Identifies the metrics that must not get worse
  • 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-tamda-ingest-key': process.env.TAMDA_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 analyzes the customers who saw each experience and whether they completed the intended action. It checks the success metric and makes sure important customer and business metrics did not get worse.

The output is a decision: Ship, Revise, or Stop, with plain-English reasoning and a clear next step.

  • 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