Skip to main content
Question

Using a single paywall/offering for different text or imagery

  • March 4, 2026
  • 1 reply
  • 12 views

Forum|alt.badge.img

I have a scenario where I would like to have one Offering and Paywall general design, but be able to customize the text and header imagery depending on some user chosen option or paywall trigger.

Examples:

  • The user has chosen a preference (favorite type of sport). I would like to display an image related to that specific sport for him.
  • The Paywall trigger is specific to a feature. User clicks a locked feature (ie. offline-mode, dark-mode, etc). I would like to display a specific image and text header for each of these.

In this example, the header differs for those cases, but the rest of the Paywall visual and structure is the same. Offering/Package choices, Feature list, boutons in the footer, etc.
All these options also share the same offering for example.

In my understanding, right now, with the 1:1 Offering/Paywall model, it seems that I would need to have a dozen different Offerings and Paywalls for this. 
Meaning that changing the Offering choices, or changing a logo or colour in my Paywall would need to be done across all of them. It would be time consuming and prone to errors.

I’m wondering if I fully understand the options that are available? Maybe I’m missing another mechanic to make this work?


In my ideal scenario, I would create a Paywall design, where some fields can be dynamic. Text, images, etc.
Even better, this one Paywall design would not be linked to any Offerings.
Displaying a paywall would follow these steps:

  1. Choose a Paywall base design.
  2. Choose an offering. (this changes the available packages, but not visual design)
  3. If necessary, change some dynamic content, to personnalise the Paywall. (Header text, Header image)

Another option would be to have re-usable building block across different Paywalls. Not as flexible, and would still need a lot of Offerings, but would help with maintenance.

1 reply

guilherme
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • March 6, 2026

Hey ​@JFBeaulieu - the limitations you described are real with the current model. But there are tools available today (and more coming soon!) that address exactly this.

The main thing to look at right now is Custom Variables. These let you pass dynamic text into your paywall at presentation time from your app, using the {{ custom.variable_name }} syntax. So for your use case, you could have one paywall, one offering, and pass in different header text based on the trigger or user preference.

You'd create a custom variable in the paywall editor (e.g., header_text), give it a default value, then pass the actual value from your app when presenting the paywall. The docs walk through the setup here: https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/variables#custom-variables

For the image swapping part (showing a football image vs. a basketball image based on context), we have an upcoming feature that will allow you to conditionally show, hide, or override paywall components based on conditions (including the value of a custom variable). This is coming soon and will work together with Custom Variables to get you closer to that ideal scenario you described.

On the reusable building blocks thought you added, true reusable components (edit once, update everywhere) are on the roadmap but not yet available (nor any ETA on these as it stands). For now, copy/paste between paywalls is the closest thing. But for your specific use case, Custom Variables today + the upcoming conditional features should remove the need for all those duplicate paywalls in the first place!