---
title: "Announcing Paywall rules: show or hide paywall components"
description: "Change visibility of components based on rules"
language: "en"
publishedAt: "2026-04-22T10:02:06Z"
updatedAt: "2026-04-22T10:02:06Z"
authors:
  - name: "Perttu Lähteenlahti"
    url: "https://www.revenuecat.com/blog/author/perttu-lahteenlahti"
category: "Engineering"
categoryUrl: "https://www.revenuecat.com/blog/engineering"
readingTime: 3
canonical: "https://www.revenuecat.com/blog/engineering/announcing-paywall-rules-show-or-hide-paywall-components"
---

# Announcing Paywall rules: show or hide paywall components

Change visibility of components based on rules

## Table of contents

- [Hides components when a package is selected, and more](#hides-components-when-a-package-is-selected-and-more)
- [How to create your first Paywall Rule](#how-to-create-your-first-paywall-rule)
- [Current limitations of Paywall Rules](#current-limitations-of-paywall-rules)
- [Wrapping up](#wrapping-up)

[Video](https://www.youtube.com/watch?v=nh-6FXU1-oY)

RevenueCat Paywalls is the easiest way to build custom paywalls for your app. Combined with RevenueCat Targeting, it allows you to serve a different paywall to different customers without having to make new releases. And now, with the release of the new **Paywall Rules feature** you can take personalized paywalls even further, without having to make new paywalls.

[Paywall Rules](https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/rules) allow you to customize the visibility of paywall components based on both preset and Custom Variable based rules, enabling you to **customize a single paywall to support multiple scenarios**.

## Hides components when a package is selected, and more

What do Paywall Rules look like in practice?

One example is using Paywall Rules to show a trial timeline only when a trial is available, or to display a different package based on a custom variable.

Paywall Rules supports the following rules at the moment:

| Rule | When the rules will take effect | What Rules are available |
| --- | --- | --- |
| offer.intro | If the user selects a package that includes an introductory offer | Visibility and text overrides |
| offer.promo | If the user selects a package that includes a promotional offer | Visibility and text overrides |
| package.identifier | If the user selects a package that matches the defined identifier | Visibility only |
| Custom variable | If the paywall is rendered with or without the defined custom variable. | Visibility only |
| offer.multiphase | If the user selects a package that includes a promotional offer | Text overrides only |

## How to create your first Paywall Rule

To create a Rule for your paywall, navigate to paywall editor and select the **Paywall logic** tab from the left sidebar. You will see the following button to create a new rule:

![Screenshot of RevenueCat Paywall logic tab, showing Create Rule button](https://cdn.sanity.io/images/c3qnx9b0/production/94e59ce7d7750711a0d1c62a3acf4bac8371e2fa-2600x1502.png)

Creating a rule has two parts:

1. Selecting the Rule that will control component visibility
1. Selecting either existing or new components that the rule will be applied to

![Screenshot of Paywall editor and Paywall Rule tab, showing new offer.intro rule that demermines if a selected package is shown if there's an introductory offer available for the user.](https://cdn.sanity.io/images/c3qnx9b0/production/c92f54d43a0a53835245b85509d35da566cfa544-2596x1500.png)

*A purple highlight around the preview indicates that you’re viewing how paywall look like with Rule applied.*

When viewing your rule, any component that you add will be set to only be visible for that Rule. You can edit this later if you require the component to be visible in more cases.

Rules are evaluated at runtime, after publishing your paywall, which allows multiple rules to exist on a component. Rules are applied to a component in the order defined in the table above. Custom variable rules are evaluated in alphabetical order.

## Current limitations of Paywall Rules

Paywall Rules are supported on most components that you can add to your paywall, with the following limitations:

- Express checkout buttons
- Individual pages of a carousel
- Individual tabs
- Footer
- Sheet
- Purchase Button
## Wrapping up

Paywall Rules make it easier than ever to build smart, context-aware paywalls without the overhead of maintaining multiple paywall variants. Whether you want to highlight a trial offer, swap out packages based on a custom variable, or tailor messaging for promotional offers, a single paywall can now handle it all.

As we continue to expand the supported components and rule types, we’re excited to see the creative ways developers and growth teams use this feature to drive conversions.

Give Paywall Rules a try and let us know what you think 👉 [Paywall Rules documentation](https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/rules)

---

## Related posts

- [How to personalize your paywalls with Custom Variables](https://www.revenuecat.com/blog/engineering/how-to-personalize-your-paywalls-with-custom-variables-in-react-native)
- [24 ways to optimize pricing, packaging, and paywalls for custom audiences using Targeting](https://www.revenuecat.com/blog/growth/offering-customization-examples-targeting)
- [How to personalize your paywalls with Custom Variables](https://www.revenuecat.com/blog/engineering/how-to-personalize-your-paywalls-with-custom-variables-in-react-native)
