12tester
SDK-verified testing, not the honor system

Closed testing, without the wait.

Join a closed group of 20 developers who test each other's apps every day. Free — no marketplace, no pay-per-tester. And unlike every other testing exchange, our SDK actually confirms a real person opened your build, not just that a code got typed in.

Free to join · No credit card · Android to start
Your app · liveVerified session
LH
Linh Hoàng is testing this buildDay 6 of 14 · credited today
Tester12.configure(apiKey: '••••••');
Tester12.identify(user.id);
Tester12.achieved({'screen': 'checkout'});
SDK integration verified — campaign live
Why 12tester

The only exchange that actually checks

Group-based testing exchanges aren't new. A backend that verifies real testers with a drop-in SDK is.

Real verification, not the honor system

Every tester binds a unique code inside your app. Our SDK confirms the exact build, package, and person before a single credit is earned — no more guessing who actually opened your app.

Testers see it too

A small in-app badge shows the tester they're being tracked for your campaign — day by day progress, right where they're testing. Toggle it per campaign in Dev mode.

No marketplace, no fees

Everyone in your group of 20 earns credits by testing, then spends them opening their own free campaign. No card on file, no per-tester pricing.

A real SDK, three platforms

Flutter, React Native, and native Android — configure once, and log/achieve calls, referrer parsing, and locale-aware dialogs all just work.

Built for a global group

The app, its notifications, and the SDK's own tester dialog speak 9 languages — matched automatically to each tester, not just the developer's own.

A trust score you can check

Every tester has a public reputation built from their streak, days tested, and campaigns joined — so you know who you're trading testing time with.

Private campaigns

Can't wait for a group to fill up? Guarantee your testers.

Spend credits to open a private campaign and skip the group entirely — our own admin team hand-assigns real, verified 12tester accounts to it, so your closed test always gets the testers it needs. No luck of the draw, no waiting on strangers to join.

  • 100% guaranteed real testers
  • Hand-assigned by our own admin team
  • Credits never expire, any app
The SDK

Five lines, and every log is trustworthy

The same verification API, whichever stack your app is built on. No backend of your own to stand up.

import 'package:tester12_sdk/tester12_sdk.dart';

await Tester12.configure(apiKey: 'ak_your_app_key');
Tester12.identify(currentUser.id);

final referrer = await Tester12.readReferrer();
if (referrer.code != null) {
  await Tester12.registerUser(code: referrer.code!, userId: currentUser.id);
}

await Tester12.achieved({'screen': 'checkout'});

// Drop this anywhere — self-fetches, self-hides:
const TesterBadge()
How it works

Four steps to a cleared closed test

Step 1

Join a group of 20

Sign in and join (or start) a closed group of 20 developers — that's Google Play's own minimum for closed testing.

Step 2

Test daily, earn credits

Open a teammate's app once a day. Each verified day earns a credit — no test, no credit, decided server-side.

Step 3

Drop the SDK into your app

Flutter, React Native, or native Android — a few lines, and your build starts reporting real, verified test activity.

Step 4

Open your own campaign

Spend credits to get your group testing your app for free — with a live tester badge and progress they can see too.

FAQ

Questions developers actually ask

Yes. There's no marketplace and no per-tester pricing. You earn credits by testing other apps in your group, then spend those credits opening a campaign for your own app.

Your closed test starts with one group.

Join free, test a couple of apps today, and open your own campaign once you're verified.