Migration

Migrating takes 15 minutes.

Sankofa keeps the migration surface small: initialize once, identify the user, replace the core track calls, verify the incoming events, and turn replay on when you need context.

Why teams move

Public pricing instead of enterprise mystery.

Replay and analytics in the same operating surface.

Migration effort small enough to fit inside a single sprint.

Flutter SDK

This snippet uses the real API surface shipped in sdk/sankofa_flutter.

await Sankofa.instance.init(
  apiKey: 'sk_live_12345',
  endpoint: 'http://localhost:8080',
  debug: true,
  enableSessionReplay: true,
);

await Sankofa.instance.identify('user_123');

await Sankofa.instance.track('Purchase', {
  'plan': 'growth',
  'amount': 99,
  'currency': 'USD',
});

Illustrative web-style mapping

Illustrative only. This repo does not include a Sankofa web SDK with this exact API.

mixpanel.track('Purchase', {
  plan: 'growth',
  amount: 99,
  currency: 'USD',
});

// becomes

sankofa.track('Purchase', {
  plan: 'growth',
  amount: 99,
  currency: 'USD',
});

Mapping

The swap is mostly nouns and one-time initialization

Concept

Track an event

Legacy

mixpanel.track('Purchase', props)

Sankofa

await Sankofa.instance.track('Purchase', props)

Note

The event name and property map stay nearly identical.

Concept

Identify a user

Legacy

mixpanel.identify('user_123')

Sankofa

await Sankofa.instance.identify('user_123')

Note

Identity is set once and then attached to later events and replay.

Concept

Event properties

Legacy

Flat JSON-like property maps

Sankofa

Map<String, dynamic> in Flutter or plain object in an illustrative JS mapping

Note

Keep the same nouns: plan, amount, screen, invite_source, api_route.

Concept

Replay / session context

Legacy

Often bolted on as a second product or add-on

Sankofa

Enable during init with enableSessionReplay: true and keep it beside analytics

Note

Replay lives in the same system instead of a second procurement step.

Rollout checklist

  • Install the SDK and initialize it with your Sankofa API key and endpoint.
  • Replace the core track calls for your key events: signups, purchases, invites, API failures, and onboarding milestones.
  • Identify known users once they authenticate so events and replay stay connected.
  • Verify the incoming events inside Sankofa before widening the rollout.
  • Enable session replay for the flows where teams need failure context, then cut over the remaining environments.

Finish the switch

Replace the core track calls, verify the stream, and move replay next

Sankofa is designed to remove the second procurement problem. Once the events land, replay and board visibility follow inside the same system.