# Page visibility rules

{% embed url="<https://www.youtube.com/watch?v=0w5m3PpYEgM>" %}

Often it's important to set visibility rules for when certain pages or folders should be visible to which teammates in your Noloco app.

In this video, you'll learn how to:

* Set visibility rules by user role
* Preview as other app users to make sure your rules are applied
* Create custom visibility rules

Learn more about Visibility Rules across Noloco 👇

{% content-ref url="../record-pages/visibility-settings" %}
[visibility-settings](https://guides.noloco.io/record-pages/visibility-settings)
{% endcontent-ref %}

{% content-ref url="../field-formatting/field-visibility-conditions" %}
[field-visibility-conditions](https://guides.noloco.io/field-formatting/field-visibility-conditions)
{% endcontent-ref %}

## Troubleshooting Page Visibility Issues

### Pages Invisible Despite Correct Rules

If your pages aren't showing up in Live mode even though visibility rules look correct:

1. **Publishing Required**: Page visibility changes require republishing your app
   * Go to Settings > Publishing > "Publish Changes"
   * Visibility rules only take effect after publishing
2. **Check User Role**: Verify the user has the expected role assigned
   * Navigate to your Users table
   * Check the "Role" field for the affected user
   * Use "View as user" feature to test from their perspective
3. **Multiple Conditions**: When multiple visibility rules are set, ALL conditions must be met
   * Review each visibility condition on the page
   * Consider if any condition might be excluding the page unintentionally
4. **Parent Page/Folder Visibility**: If a page is in a folder, the folder must also be visible
   * Check visibility rules on parent folders
   * Ensure parent pages aren't hidden from the user role

### Form Pages Not Appearing in Public Access

If your public forms aren't visible despite setting visibility to "Yes":

1. **Public Access Setup**: Ensure public access is properly configured
   * Go to Settings > Public Access
   * Verify the main toggle is enabled
   * Check that your app has been published
2. **Table Permissions**: The underlying table must allow public access
   * Go to Data & API tab > hover over table > Permissions
   * Create a permission rule for public users
   * Grant necessary field permissions (Create, Read as minimum for forms)
3. **Page-Level Settings**: Set the page visibility to Public
   * Select the form page in build mode
   * In the Visibility tab, select "All User types" or configure custom rules
   * Use the globe icon to explicitly mark as Public if available
4. **Form Configuration**: Verify the form itself is properly configured
   * Check that all required fields are visible
   * Ensure form submission is enabled
   * Test form submission in an incognito browser window

## Frequently Asked Questions

### Why can't I find the main menu to change user permissions?

**Location of Visibility Settings:**

1. **Page Visibility**:
   * Select page from sidebar > Enter build mode (Cmd/Ctrl + E) > Visibility tab
2. **User Permissions**:
   * Go to Settings > Users & Permissions or Data & API tab for table permissions
3. **Component Visibility**:
   * Navigate to record page > Build mode > Select component > Visibility tab

### How do I fix conflicting visibility rules?

If you're getting notifications about conflicting visibility rules:

1. **Review All Conditions**: Check every visibility condition set on the page
2. **Simplify Rules**: Start with basic rules (like User Role only) and add complexity gradually
3. **Test Incrementally**: Use "View as user" after each rule change
4. **Clear and Recreate**: If rules are broken, delete all conditions and start fresh

### Can I set different homepages for different user roles?

Yes, using page visibility and ordering:

1. **Arrange Pages**: Order pages in your sidebar with role-specific pages at the top
2. **Set Visibility**: Make the first page visible only to specific roles
3. **Cascade Logic**: The first visible page becomes the homepage for each user role
4. **Test Roles**: Use "View as user" to verify different homepages per role

### Why do 'My Profile & Preferences' pages not show after onboarding?

This usually happens when visibility conditions are too restrictive:

1. **Check Onboarding Filters**: Remove any conditional filters from essential pages temporarily
2. **Verify User Data**: Ensure the user has all required field values populated
3. **Review Custom Rules**: Check if custom visibility rules depend on fields that might be empty
4. **Test User Journey**: Walk through the complete onboarding process using "View as user"

### How do I create separate apps for different user types?

To create trade and client apps with different access:

1. **Duplicate App**: Create multiple apps connected to the same data source
2. **Different Roles**: Set up distinct user roles in each app
3. **Separate Permissions**: Configure different table permissions for each app
4. **Custom Views**: Create role-specific views and pages in each app
5. **Public Access**: Configure different public access rules if needed

### What's the difference between page visibility and permissions?

**Page Visibility**: Controls what users see in the UI - pages, components, buttons

* Set in build mode > Visibility tab
* UI-level control only
* Not secure (data still accessible via developer tools)

**Permissions**: Controls actual data access at the API level

* Set in Data & API tab > Table permissions
* Secure data access control
* Prevents unauthorized data access entirely

**Use Both**: Combine visibility (good UX) with permissions (security) for complete access control.
