Hi everyone,
I’m looking for guidance on whether Ghost supports a workflow for sharing unpublished draft posts with external people while restricting access to only a permitted content preview.
My goal
I would like to create a dedicated tier called “Review” and use it to restrict access to draft posts that are undergoing review.
The posts must remain unpublished until the review process is complete.
Ideally, when anyone opens the link, they should see:
- The post header and title.
- A short preview of the content, limited to the portion I choose to make visible.
- A customized locked-content message: “This post is currently under review.”
The locked-content message should not display any default membership-related calls to action, including “Subscribe,” “Become a Member,” or “Sign In.” This should only work for this specific tier.
My current setup
- Membership is disabled globally on my Ghost site.
- I have created a paid tier named “Review”, which I intend to use only as a way to assign posts to this specific access category. I do not intend to charge users.
- The posts must remain unpublished drafts throughout the review process.
- I would prefer to implement the solution through Code Injection, without modifying theme files, if possible.
- Any customization must apply only to the “Review” tier. All other tiers and their existing behavior must remain unchanged.
The problem I’m encountering
When I share Ghost’s preview link for an unpublished draft, the URL contains a parameter such as:
?member_status=anonymous
With this parameter present, Ghost displays the expected teaser and locked-content CTA.
However, if I remove the member_status parameter entirely, Ghost displays the full post content, including when I open the URL in a fresh incognito window without being logged in.
This is a significant concern because I need to share these links with external users, and I do not want the entire unpublished post to be accessible simply by modifying the URL.
My questions
-
Is there a supported way to restrict the content returned by a draft preview link? Specifically, can Ghost enforce a teaser boundary server-side, regardless of whether the
member_statusparameter is present, absent, or modified? -
Can a custom tier be used for this workflow when memberships are disabled? I would like to assign unpublished posts to the “Review” tier without enabling public membership signup or requiring users to become paying members.
-
Can the locked-content CTA be customized for one specific tier? I would like to replace the default CTA with “This post is currently under review” and remove all membership-related links and buttons, without changing the default behavior of other tiers.
What I need to achieve
The essential requirement is that an external user can open a link to an unpublished draft and see only the post header, the teaser I permit, and the custom review message. The rest of the post must remain inaccessible, even if the external user removes or changes URL parameters.
How do I achieve this?
Thank you for your help!