June was about making the path from building an app to launching it on Jest smoother. We added free trials, made builds easier to test and submit, and published Reigning Cats as a complete example of what a real Jest integration looks like.
A new guide to monetization on Jest
We’ve published a new guide to monetizing apps on Jest, covering the full path from configuring products and subscriptions in the Developer Console to implementing checkout, recovering incomplete purchases, checking entitlements, and verifying transactions server-side. → Monetization guide

Checkout, with the payment options the monetization guide walks through.
It also puts the economics in one place: how Jest’s revenue share works, how developer payouts are calculated, and where to find transaction-level splits and earnings in the console.
Offer free trials on subscriptions
Based on developer demand, subscriptions now support trials of up to 30 days, configurable per product in the Developer Console. Changes to the trial length apply only to future checkouts, so existing subscribers are unaffected. → Console setup · HTML5 subscriptions

Subscription checkout, now with a trial period available before the first charge.
A trial can help separate “users don’t want this” from “users aren’t willing to pay for this yet.” Those two problems may look identical in a conversion funnel and yet need completely different fixes.
See a complete Jest integration with Reigning Cats
What does a real Jest integration actually look like? Reigning Cats is the answer: a small Phaser 3 game with the Jest SDK wired up end-to-end, from guest play and registration through player data, retention notifications, purchases, subscriptions, referrals, social, and analytics.
Rather than walking through isolated API calls, the tutorial follows the code as a player experiences the game. It shows the patterns that matter in production: when to prompt registration, how to persist progress safely, how to recover incomplete purchases, how to cancel retention notifications when a player returns, and how to pass context between sessions.

Reigning Cats running on Jest.
The Reigning Cats source is public on GitHub, so you can clone it and run it locally.
If you’re evaluating Jest, use it to see exactly what’s involved in integrating the SDK. If you’re already building on Jest, use it as a reference implementation for putting the pieces together. → Tutorial
Enhancements to shipping and testing builds
We made it easier to get builds from your local environment into review, and easier to catch the problems that tend to show up along the way.
- Build uploads are asynchronous: The upload endpoint now returns
202 Acceptedwith a version ID immediately, then emails you when processing is complete. This makes scripted and CI uploads much less fragile. If your scripts currently treat200as “build is live,” update them. → Manage builds - Replace builds without restarting review: Upload or select a replacement while your app is under review and the review snapshot updates in place. Found a bug after submitting? Fix it without going back to the end of the queue.
- Test the awkward paths in the Simulator: The Simulator can now point at a different build URL, leave a purchase incomplete instead of always completing it, preview referral share images, and reset user state. An abandoned checkout is exactly the edge case where integrations tend to break, and you can now reach one without staging it for real.
- SDK version warnings for Unity: The console now flags engine builds with outdated or critical SDK versions, making it easier to catch stale SDKs before they turn into bugs in production.
- Catch missing notifications before submission: If your self-review session never sees your app call
scheduleNotification(), the submit page flags it and asks you to acknowledge before you continue. It joins the existing warning for hidden apps. Both are easy to miss and easy to fix before submission. - Retry failed builds: Failed versions now show the processing error and a Retry button, or can be reprocessed by POSTing the same version string.
- More flexible build archives:
index.htmlcan now live anywhere in the zip, so builds wrapped in a folder likedist/index.htmlwork too.
Other updates worth knowing
- Chat is live for every user: Users can now join a global chat room from the platform footer or from inside an app, with the app they’re in shown next to their messages. Apps can now be discovered organically through what other users are talking about and playing.
- Apps can request camera and microphone access: Apps can now use camera and microphone input inside the iframe, enabling things like voice chat, audio-reactive gameplay, and photo-based mechanics. Access is whitelisted per app, so reach out if you need it.
- Payout setup and team earnings: The console now reminds you to finish payout setup, and the earnings page is open to anyone with a role on your team. It was gated to Jest staff before this, so if you went looking for your earnings in May and came up empty, that’s why.
login()is awaitable across all SDKs: Unity and HTML5 now provide a completable result fromlogin(), including when the user dismisses the login flow. This makes it easier to handle login state consistently without callback-heavy state management.- Personalized referral previews in Unity: Referral dialogs can now include a custom share image, bringing the Unity SDK in line with HTML5.
shareImagesupports both still images and animated GIFs. → Unity
Full details for every change are in the changelog. If you’re building on Jest, start with the developer docs, or jump straight into Reigning Cats for a complete integration example.