Skip to main content

Creating Paywalls

Use the brand new Paywall Editor to design a fully customizable paywall.

โš ๏ธBeta Limitations

Paywalls v2 is currently in beta, and has the following limitations:

  1. Only available on our Native iOS SDK, on versions 5.16.0+. You must update your RevenueCat SDK to use paywalls built with the new editor.
  2. Not supported on watchOS, or visionOS.
  3. Footer mode from our original templates is not supported, learn more here.

Key conceptsโ€‹

ConceptDescription
ComponentsRevenueCat's predefined UI elements that can be added to a paywall. (e.g. text, an image, a purchase button, etc.)
Component propertiesThe properties of each component that can be configured to modify it's style and behavior. (e.g. its width, height, border, etc.)
TemplatesThe paywalls that RevenueCat has already created that you can use as a starting point to build your own paywall from.

Componentsโ€‹

Components are the individual building blocks of your paywall that can be arranged and configured to create your own custom layout.

ComponentDescription
TextUsed to add customizable text strings
ImageUsed to add an uploaded image
IconUsed to add a customizable icon from our provided list
StackUsed as a parent component to jointly configure its child components
PackageUsed to add a selectable package with custom styling, text, etc.
Purchase buttonThe call to action that invokes a purchase attempt of the selected package.
ButtonUsed to add other interactions; such as a link to your Privacy Policy, a back button, etc.
FooterA configurable portion of your paywall whose position is fixed and uniquely styled.
๐Ÿ“˜Parent components

Stacks, packages, buttons, and the footer are all parents components which can contain other child components within them to be jointly controlled.

Learn more about each component.

Building paywallsโ€‹

To get started building paywalls with our new editor, click on + New Paywall in the callout on the Paywalls page for your Project:

Create new paywall

Next, you'll need to select the Offering you want to add a Paywall to. Or, if you don't have any Offerings without Paywalls, you'll have the option to duplicate an existing one or create a new one.

From there, you can start building by either:

  1. Choosing a template, or
  2. Starting from scratch

Unless you have a very specific, custom design in mind that you're looking to create; we recommend starting with a template. You can customize any aspect of your paywall once you select a template, it's simply a starting point to explore from.

Select a template

Using the editorโ€‹

Once you've selected a template or picked starting from scratch, you'll land on our Paywall Editor, which has the following sections:

  1. Components: The list of components on your paywall, their hierarchy, and their options (rename, duplicate, etc).
  2. Component properties: The list of configurable properties of the component you've selected.
  3. Preview: The preview of your paywall.
  4. Control panel: The options to change the locale, light/dark mode, and other preview settings to see how your paywall looks in various scenarios. The control panel is also where you can manage localizations through one page instead of modifying them component-by-component.

Paywalls editor

Adding componentsโ€‹

Components can be added to a paywall in two ways:

  1. Directly to the main paywall with the + Add Component button
  2. Directly within a parent component, such as a stack, with the + button in that component's row in the components panel.

Once a component has been added to a paywall, you can determine its order on your paywall by dragging it vertically in the stack, or determine its parent component by dragging it underneath the desired parent and indenting it horizontally.

Arrange components

๐Ÿ“˜Parent & child components

A child component will be subject to the axis, alignment, distribution, and child spacing properties of the parent component; and will be impacted by other properties such as margin & padding.

Modifying componentsโ€‹

When you click on a component in the components panel, you'll see it displayed in the component properties panel on the right side of your screen. These properties represent the configurable elements of each component that can be used to give it a unique look and feel.

Many properties for controlling layout, size, and appearance are similar between components; but each one has their own unique properties that are specific to the use cases of that component.

Learn more about component properties.

Stack properties

In addition, by clicking on the ... option in a component's row in the components panel, you can rename, duplicate, or delete any component.

Stack options

Saving a paywallโ€‹

When saving a paywall, there are two different states it can be saved in depending on what you're ready to do with it.

Paywall StateDescription
InactivePaywalls that you do not wish to serve to customers. You can think of these as drafts, or works in progress. Inactive Paywalls will not be available through the SDK.
PublishedPaywalls that you may wish to serve to customers. These will always be returned on supported SDK versions. Whether they will be served to customers depends on whether you've configured the associated Offering as the Default Offering, or are serving it via Targeting or Experiments.

When creating a new paywall, you can save your changes at any time by clicking the Save Changes button at the top right of the page.

This will save your paywall in an inactive state so that you can continue editing it, but it will not yet be sent to your app and made available to customers.

To make your paywall available to customers, click Publish Paywall. Once a paywall is published, it will be available via the RevenueCat SDK and therefore can be seen by your customers depending on how you're serving Offerings to them.

You can also set a published paywall to be inactive, or vice versa, at any time.

๐Ÿ“˜Required components

All paywalls must have a purchase button and at least one package added in order to be publishable.

โš ๏ธMinimum supported SDK version

Paywalls built through the new v2 paywall editor are only supported on RevenueCat Native iOS SDK versions 5.16.0+ or later. If you have existing app version serving RevenueCat Paywalls, setup a Targeting Rule to continue serving them a v1 paywall, so that only customers on supported app versions are served a new v2 paywall.

Learn more about displaying paywalls.