Hey @ramim94,
We’re about to publish a blog post on building a “tip jar” with RevenueCat (stay tuned on our blog).
The blogpost will have more context, but this approach would be a great fit for simple one-off tips (“buy me a pizza/coffee”) using consumable products. Where you don’t need entitlements to achieve this, since you’re not granting ongoing access and just taking a one-time payment and triggering UI effects.
In the meantime, you can ship it today by creating consumable products at the specific store(s), sync them into RevenueCat, and add them to an Offering as separate packages (e.g., $1, $5, $10).
You would then present the Offering (Paywalls or your own UI via getOfferings), call purchase on the selected package, and on success show your “thanks” and apply the tip effect.
As to control how each tier behaves (pin duration, color, emoji), you can use Offering metadata - include a small JSON map (SKU mapped to behavior) and read it client-side after fetching Offerings. This lets you tweak presentation without shipping a new app build with updates.
Note: metadata lives on the Offering (not the product itself), is fetched/cached client-side, and isn’t tied to individual transactions.
As to get a full YouTube-style livestream effects that everyone sees those global pin timers or shared colors, you’ll still want a lightweight backend or your chat provider to consume SDK events/webhooks and broadcast state.
For a simple, local “tip jar,” the consumables + Offering metadata pattern works well but for a shared and real-time experiences, it would be best to plan on adding a minimal server piece.