Multiple Custom Membership Tiers for Content Visibility

I’m working on a photo-sharing website and am exploring ways to leverage Ghost CMS’s membership functionality for a unique use case. My goal is to create multiple membership tiers that correspond to different groups, such as “Family (Dad)”, “Family (Mom)”, “Friends (VA)”, and “Friends (CO)”. The idea is for each tier or group to have access exclusively to content relevant to them.

I’ve already set up different access levels for posts, but I’m looking for a way to ensure members only see content associated with their specific tier. If a member doesn’t have access to a post, I’d like it to be completely invisible to them.

From my understanding, Ghost’s default system supports a three-tier structure (public, members, paid). However, I’m aiming for a more granular control where each tier sees different content.

I’m curious if there’s a method to:

  1. Retrieve the access level of a post directly from Ghost’s API or via another method.
  2. Compare this access level to a user’s membership tier.
  3. Display content on the homepage dynamically based on this comparison.

Any insights, suggestions, or examples of similar implementations would be greatly appreciated. I’m open to creative solutions that might extend beyond Ghost’s standard functionality.

Thank you in advance for your help!

You can set a post to being for members on a specific tier. A post can be available for multiple tiers, and you can do that from the post side panel (change access to ‘specific tier(s)’ and then you can select which ones). What is not available is setting a user to have multiple tiers. This can happen transiently if a user has just upgraded. [I’m not sure from your description if that’s something you need or not - are you visitors always in just one tier?]

For making inaccessible content disappear from the index page, try wrapping it in

{{#foreach posts}} 
{{#if access}}
 -- put your post loop here --
{{/if}}
{{/foreach}}
1 Like