Unsure how to properly implement newletter

I’ve been spamming the #members thread today so this will (hopefully) be my last question lol.

I just need a sanity check on the idea I’m trying to implement before I get lost in the docs. I have a current ghost blog that I’m happy with, but I’d like to put together a newsletter feature that shoots out an email with blogpost links and other stuff 1-2 times a month.

I don’t want the newsletters to show up on my company blog, but I also want newsletter recipients to be able to see a complete list of newsletters. Similar to publisherweekly.

Is the best way to just separate these two things entirely? Like have a /blog subdirectory and a /newsletter subdirectory? I was going to do that initially but I saw something in the docs that made me think twice

With some minor theme configurations, you can host your newsletter content on a unique section of your site. Alternatively, you could hide newsletter content completely and use the Ghost editor simply for sending emails to your subscribers.

Hopefully the question I’m asking makes sense :smile:

1 Like

Hey @Avery :wave:
Don’t worry about the topics on here, it’s really nice to see people embracing Ghost and the Members feature :raised_hands:. We’ve got a recipes page in the Members docs. One of the recipes shows how to make a “newsletters” page: https://ghost.org/docs/members/recipes/#newsletter-directory

collections:
  /:
    permalink: /{slug}/
    template: index
    filter: visibility:public
  /newsletter/:
    permalink: /{slug}/
    template: index
    filter: visibility:-public

Adding the above to your routes.yml file will create a new page “/newsletters/” which will contain all your members only posts. Your main blog list will remain, but won’t contain your members only posts. Then it’s just a matter of creating members only posts and adding bookmark links to all your posts. People will also be able to log into their email and view all the posts listed on the newsletters page.

I hope this makes sense, any questions just ask! :v:

2 Likes

Awesome thanks!

@DavidDarnes hey where exactly do I edit the helpers in my theme?

For these configurations to work, you’ll also need to add visibility="all" in any #foreach helpers in your theme.

Am I able to do this in the unzipped contents of my theme file or do I need to follow the development instructions listed on the repo?

@DavidDarnes thanks for sharing that!

I’ve been blogging since 1999 (mostly on Wordpress, so that’s a lot!) and I’m really impressed with Ghost 3.0 memberships/subscriptions - you guys have created an all-in-one system - which is amazing (no understatement, after managing so many plugins and integrations!)

To point. One of the things I wanted to do is provide members only posts/pages visible in a section to them. After all they are paying, so we should make it easier for them to just get to the meat.

I presume this will serve that purpose, right?

1 Like

If you’re using Lyra theme you don’t need to add it as it’s already there, see this line:

:+1:

1 Like

Thanks for the kind words! Yes that’s right, follow the instructions I’ve linked to and that will sort you out with a post list page containing all your members newsletter posts.

Thanks - will do.

On Lyra Theme, can we just make edits directly to the CSS, zip and upload and activate? For some reason the css changes dont stick but the html changes work fine.

CSS needs to be compiled before uploading to Ghost admin, check out the Lyra theme docs for more info: https://github.com/TryGhost/Lyra#development

1 Like

Hello! This is lhow my Routes looks like, but /newsletter is still 404 error. Could you please advise?

routes:
/signup/: members/signup
/signin/: members/signin
/account/: members/account
/subscribe/: members/subscribe

collections:
/:
filter: “visibility:public”
permalink: “/{slug}/”
template: index
/newsletter/:
filter: “visibility:-public”
permalink: “/{slug}/”
template: index

taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/

It might be because you’re wrapping some of your values in quotes. It should look like this:

routes:
  /signup/: members/signup
  /signin/: members/signin
  /account/: members/account
  /subscribe/: members/subscribe

collections:
  /:
    filter: visibility:public
    permalink: /{slug}/
    template: index
  /newsletter/:
    filter: visibility:-public
    permalink: /{slug}/
    template: index