# Changelog > Read about all of the latest new features and improvements in Ghost — The business platform for creators, publishers and businesses. Public Ghost content for AI and LLM tooling. This file includes a bounded export of public pages first, then recent public posts. Append `.md` to any post or page URL to get the content in Markdown (for example, `/example-post.md`). ## Pages _No public content available._ ## Posts ### Optimize your site for AI search URL: https://ghost.org/changelog/geo/ Last updated: 2026-07-16T18:01:16.000Z For decades, search engines like Google have been a major source of traffic for publishers. Ghost has long included built-in SEO tools to help your site appear in search results, automatically handling structured metadata and sitemaps. More recently, people have increasingly started using new AI tools such as ChatGPT and Claude to answer their questions and discover new sources of information. Large Language Models (LLMs) search the web and reference sources they use to answer a user's queries. As you might expect, new practices have emerged for website owners who want their site to be more likely to be cited and referenced in AI searches - sometimes referred to as GEO, or Generative Engine Optimization. Ghost now includes built-in GEO tools that generate the files AI systems expect and provide Markdown versions of your public content, which you can activate in your admin panel under **Settings → Meta data** ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/07/CleanShot-2026-07-16-at-21.01.53@2x.png) When enabled, Ghost will output a new file at the root of your domain called `llms.txt` \- and serve Markdown versions of your posts when `.md` is appended to the URL. For example: - - - Much like SEO, these new GEO tools help AI agents discover, read and understand your content more easily and efficiently, making it more likely to be referenced when responding to user queries. Only publicly available content is included. Members-only and paid posts are listed with their public title and excerpt, but their protected content is not. Private sites don’t serve these files at all. We understand that not everyone wants to engage with AI, so this feature is off by default for existing sites. If you'd like to enable it, simply toggle it on in Settings. Otherwise, there's nothing you need to do; it will remain switched off. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Publisher gift links URL: https://ghost.org/changelog/publisher-gift-links/ Last updated: 2026-07-06T13:17:52.000Z Your best work sits behind a paywall for a good reason, but sometimes there's still someone you'd like to share it with without asking them to subscribe — a journalist writing about your work, a potential sponsor, or a reader you'd love to win over. Until now, your options were to comp the person a full subscription, make the post public temporarily, or not share it at all. Most ended up choosing the last one. Now every members-only post and page has a gift link. Copy it from your posts list or the post's analytics page, then send it to anyone. They read the post in full — no sign-up or paid subscription needed. 0:00 /0:13 1× And if a link gets forwarded further than you intended, reset it from the same place. A fresh link takes over, and the old one stops working on the spot. If you have traffic analytics enabled, the post's analytics page shows how many visitors its gift link has driven. On the reader's side, they land on the full post, with the rest of your paid work still locked, and a note lets them know they've been gifted access. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/07/publisher_gift_links_reader.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Email sequences for new members URL: https://ghost.org/changelog/email-sequences-for-new-members/ Last updated: 2026-06-25T12:15:07.000Z When we launched welcome emails earlier this year, we called it our first step toward a broader automation suite in Ghost. You've been telling us where to take it next ever since — and the most consistent ask has been the ability to send more than one email to new members over time. Now that’s possible, in public beta. Instead of a single welcome email, you can build a flow that sends a series of emails to new members, spaced out over a timeframe you choose. Greet someone the moment they sign up, follow up a few days later with your best work, and check back a week after that — automatically, every time. 0:00 /0:12 1× ### Building a sequence Once the beta is turned on, a new **Automations** tab appears in the left sidebar, with two flows ready to go: one for new free members, and one for new paid members. Already using welcome emails? They move over automatically, so nothing you've built is lost. Clicking into an automation opens the automation canvas — a drag-and-drop editor where you build your sequence from two actions: send an email, and wait for a set amount of time. More actions and triggers are on the way. ### Writing your emails Every email is written with the full power of the Ghost editor, so your automated messages look like everything else you publish — images, buttons, bookmarks, callouts, HTML cards, all of it. The automation email template also uses the same design controls as your newsletters, from colors and typography to headers and logos. Style it once, and that look applies across all your automated emails, keeping your brand consistent whether on your site, in your newsletters, or through a member's first week with you. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/06/image-1.png) ### Members stay in control Members see a new **Updates & announcements** option in their email preferences, so they can opt out of automated emails *without* unsubscribing from the rest of your content. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/06/image-2.png) ### Getting started Email sequences live behind the **Automations (beta)** flag in Ghost, which is opt-in while we keep building. To start sending email sequences and get early access to new automation features as they ship, head to [**Settings → Labs**](https://account.ghost.org/signin?r=settings/labs&ref=ghost.org) and toggle on Automations (beta) at the top of the list. ### What's next From here, we'll be iterating quickly to bring in deeper analytics, more triggers, and more actions to enable the use cases that matter most for you — shaped directly by what you tell us. As you get started, let us know what's working and what's missing by hitting **Share your feedback** at the bottom of the Automations screen, or the feedback link in the sidebar 🙏 👻 --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Your new admin toolbar URL: https://ghost.org/changelog/admin-toolbar/ Last updated: 2026-06-18T10:12:31.000Z We've added a new admin toolbar for staff users to Ghost that shows up whenever you're browsing your website. Now you can jump over to your admin panel, make quick edits if you spot a typo, view analytics, or access comment moderation. The toolbar automatically shows appropriate actions based on which page of the site you're currently on. 0:00 /0:17 1× The toolbar is only ever visible to authenticated Ghost Admin staff users, and is otherwise hidden for all other visitors to your site. To enable it, click the icon in Ghost Admin to open your website in a new window: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/06/CleanShot-2026-06-18-at-16.25.39@2x.png) After that, the admin toolbar will automatically show up whenever you visit your site, unless you manually hide it again. Footnote for Safari users: If the toolbar isn't showing up, you may need to uncheck "Prevent cross-site tracking" in Safari→Settings→Privacy, due to browser limitations. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Dynamic filters for members URL: https://ghost.org/changelog/dynamic-filters-for-members/ Last updated: 2026-06-11T10:37:00.000Z Growing a membership means paying attention to the groups that keep changing. Who signed up last week? Which subscribers haven't engaged in the past three months? How many annual renewals land in the next 30 days? We recently shipped [saved member views](https://ghost.org/changelog/saved-member-views/) to keep the member filters you use most in your sidebar, ready whenever you need them. But the dates inside them were fixed. Now the window moves with you. A new "in the last" operator filters your members by relative dates — allowing you to create views like "new members in the last 30 days" or "newsletter subscribers not seen in the last 90 days." Each time you load the view, the window rolls forward, surfacing the right members over the right timeframe. 0:00 /0:25 1× The logic runs the other way too. Filter billing dates for "in the next" 30 days to catch annual renewals on the horizon. A saved view turns into a live audience to act on — whether that's sending an offer to your newest members or re-engaging readers you haven't seen in a while. Head to **Members** in Ghost Admin and filter by any date to start using the new relative options. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Expanding your social presence URL: https://ghost.org/changelog/expanding-your-social-presence/ Last updated: 2026-06-04T18:08:12.000Z The social platforms that matter aren't the same for every publication. For one it's Bluesky, for another it's YouTube — what’s important is pointing readers to the places where you and your audience actually connect. While Ghost has always supported X and Facebook by default, adding any other social profiles required editing your theme. Now, in the [Social Account settings](https://account.ghost.org/signin?r=settings/social-accounts&ref=ghost.org) for your site, you'll also find LinkedIn, Bluesky, Threads, Mastodon, TikTok, YouTube, and Instagram — letting you send your audience to the places that makes sense for how you work. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/06/image.png) Links to the new social profiles are supported in the latest version of every official Ghost theme. To pick them up, head to **Settings → Theme → Change theme** and reinstall your theme to [update to the latest version](https://ghost.org/help/update-official-theme/?ref=ghost.org). Using a custom theme? Check the [developer docs](https://docs.ghost.org/themes/helpers/data/social%5Faccounts?ref=ghost.org#social%5Faccounts) to add support, or reach out to your theme developer for an updated version. ### Bring your social web followers to Ghost Beyond linking to external social accounts, Ghost automatically gives your publication a profile on the [social web](https://ghost.org/6/?ref=ghost.org) — letting millions of people discover, like, and reply to your posts across platforms like Ghost, Bluesky, Threads, Mastodon, Flipboard, WordPress, and many more. As the network has grown, a request we've heard from you is that you'd like a way to bring the following you built elsewhere over to Ghost, without making everyone find and re-follow you. Now you can move your followers from another social web account, like Mastodon, to your Ghost publication's profile — so your whole audience lives in one place, under one account. Head to [**Network → Preferences → Account migration**](https://account.ghost.org/signin?r=activitypub/preferences/move&ref=ghost.org) to get started bringing everyone together. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think these features could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Comment threads, votes and pins URL: https://ghost.org/changelog/comment-threads-votes-and-pins/ Last updated: 2026-05-27T18:45:11.000Z Across Ghost, comment sections are becoming home to richer conversations between members of your community. Your readers return, recognize familiar voices, and build on earlier ideas — turning quick exchanges under a post into ongoing conversations. As those conversations grow, the tools around them need to keep up. You told us where things were getting in the way — replying to threads was confusing, sorting didn’t always surface the best comments, and you wanted a way to highlight the one comment everyone should read first. So we've shipped three improvements to make conversations on your posts flow more naturally and stay easier to manage. ### Deeper threading Replies used to stop nesting at the second level, which made longer threads harder to follow right as they got interesting. Now threads can go deeper, so it's always clear who's replying to whom and sub-conversations can play out the way they naturally would. Once a thread reaches a certain depth, it opens into a focused view. That keeps your main comment section clean while still giving longer back-and-forths room to breathe. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/05/Nested-replies.png) ### Likes and dislikes Many of you wanted a better way to surface your highest-quality comments and to let readers express healthy disagreement. So alongside likes, there's now a dislike button. Your default "best" sorting takes dislikes into account, floating top-level comments with the highest net score to the top, while replies stay chronological so conversations still read in order. Dislikes stay private to keep your community comfortable speaking up. Only the reader who clicked it sees their own action, while you see the full picture on your moderation dashboard — giving you a feel for the tone of conversations and which topics divide your audience. 0:00 /0:12 1× ### Pinned comments Sometimes one comment deserves to lead the conversation — a piece of context readers need, or a strong starting point for discussion. Moderators can now pin a comment to the top of any thread. Pin directly from the comment section on a post, or from the comments dashboard in Ghost Admin, wherever you happen to be moderating. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/05/Pinning-comments.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think these features could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Gift subscriptions URL: https://ghost.org/changelog/gift-subscriptions/ Last updated: 2026-05-21T13:15:44.000Z Word of mouth has always been one of the most powerful ways independent publications grow. You told us you wanted a way to let readers share more than a link. Something that opens the door to a full subscription experience, without friction for the recipient and without manual work for you. Now your biggest fans can put your work directly in front of the people they think will love it — by gifting a paid subscription. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/05/image.png) ### How it works Your publication now has a built-in gift link at `yoursite.com/#/portal/gift`, just like your sign-up link. Drop it into a post, a newsletter, a page, or even your site navigation — wherever it makes sense to invite gifting. Anyone can use it, whether they're already a member or not. They choose a tier, pick one month or one year, and check out. Once payment is complete, they get a unique link branded for your publication to send to whoever they have in mind. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/05/gift-tags.png) When the recipient clicks through, they enter their name and email to confirm their account. No credit card, no extra steps — just redeem and start reading. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/05/image-2.png) ### Track gifts alongside the rest of your membership Gift activity flows into the same places you already manage your members: **Staff notifications** → Opt in to get notified by email every time someone purchases or redeems a gift subscription. **Paid member analytics** → New gift subscribers show up in your paid member metrics, giving you a clear view of how gifting is contributing to your growth. **Member filtering** → Filter your member list by gift subscribers, or [save a new member view](https://ghost.org/changelog/saved-member-views/), so you can segment or analyze them however you want. ### Built to convert into recurring members Gift subscribers spend weeks or months reading your work before their gift ends — which means by the time it does, they understand the value of your publication better than almost any other potential subscriber. The whole feature is designed to turn that understanding into a recurring paid subscription. At any point during their gift, a recipient can continue on with a full paid subscription. The remainder of the gift period is automatically added as a free trial, so they keep every day of access they were given. And a week before the gift expires, Ghost sends each an automatic reminder — so the conversion moment doesn't slip by unnoticed. To get started, head to [**Settings → Gift subscriptions**](https://account.ghost.org/signin?r=settings/gift-subscriptions&ref=ghost.org) to find your unique link. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Easy theme editing URL: https://ghost.org/changelog/theme-editor/ Last updated: 2026-05-21T10:44:58.000Z One of the best things about Ghost is that you can completely customize how your publication looks and feels, to create a unique, distinctive brand around your work. There's a huge library of [Ghost themes](https://ghost.org/themes/?ref=ghost.org) to explore, with options to suit just about any use case. Until today, you could make simple design setting changes directly in Ghost, but for more advanced changes to your theme's code, you'd need to download a zip file, open the theme in a code editor on your computer, save, and upload it back to Ghost again. Now, you can just click on "**Edit code**" directly in Ghost and make changes to your theme files, right in the browser. 0:00 /0:17 1× This feature was created by Ghost community member [Murat Çorlu](https://github.com/muratcorlu?ref=ghost.org), who came up with a fantastic implementation to solve this problem, and shared his work in the Ghost developer forum: [Theme Editor for Ghost (client-side, no server required)Hi everyone, Yesterday I built a small open-source project that might be useful for people working with Ghost themes: It’s a client-side theme editor that runs inside Ghost Admin (via script injection). It removes the usual “download → unzip → edit → zip → upload” loop and lets you edit theme files directly in the browser. Key points: Works fully on the client side (no backend required) Downloads the theme zip, edits in-browser, and uploads back Uses Monaco Editor for a better editi…![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/icon/f381b3b952df5ad42fe691a8b14aa7f0c96c461a_2_180x180.png)Ghost Forummuratcorlu![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/8866312eae1fc7ff36c33fa4acb14556dabb7c7f_2_1024x512.png)](https://forum.ghost.org/t/theme-editor-for-ghost-client-side-no-server-required/62555?ref=ghost.org) One of the most powerful things about open source is that if the software you use doesn't work the way you want, you can change it! --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, update to the latest version to get access to this and everything else that's new. ### Saved member views URL: https://ghost.org/changelog/saved-member-views/ Last updated: 2026-05-07T18:03:06.000Z The member list in Ghost is the central hub for understanding your audience. Filtering lets you take a granular approach to segmenting members in ways that matter for your business – paid subscribers on a specific tier, your most engaged readers, or newsletter subscribers who haven’t opened anything in a while. For many of those segments, you want to come back to them again and again. Until now, that meant rebuilding the same filter each time, leading to moments like, *“Did I say 50% open rate or 60% last time…?”* Now you can save any combination of member filters as a named view. 0:00 /0:13 1× Once you’ve built a filter you’ll come back to, give it a name that matches how you think about your audience. *Highly engaged members, At-risk paid subscribers, VIPs*. Your saved views then live in the left sidebar of Ghost Admin, ready whenever you need them. We’ve also rebuilt the members page and filtering interface to be faster, more responsive, and clearer at a glance, so it’s easier to find exactly who you’re looking for. Head to **Members** in Ghost Admin to start saving your most-used filters. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Ghost is now a digital public good URL: https://ghost.org/changelog/digital-public-good/ Last updated: 2026-04-29T15:34:08.000Z Ghost has been reviewed and is now recognized by the [Digital Public Goods Alliance](https://digitalpublicgoods.net/?ref=ghost.org) (DPGA) as a digital public good. The DPGA is a multi-stakeholder initiative endorsed by the United Nations Secretary-General, working to promote open source software, open data, and open content that contributes to the attainment of the [Sustainable Development Goals](https://sdgs.un.org/goals?ref=ghost.org). Being recognized as a DPG increases the visibility, support for, and prominence of open projects that have the potential to tackle global challenges. To become a digital public good, all projects are required to meet the [DPG Standard](http://digitalpublicgoods.net/standard/?ref=ghost.org) — a set of requirements covering open licensing, data privacy, platform independence, and adherence to best practices. Ghost meets these criteria as open source software with a strong commitment to open standards, data portability, and user privacy. It's also the only publishing platform to have achieved this standard. For the many newsrooms, independent publishers, non-profits, and civic organizations already using Ghost, this is a formal recognition of the values that likely drew you to Ghost in the first place. ### Open by default Ghost has been open source since day one. We believe the tools people use to publish and communicate on the internet should be transparent, independent, and built in the interests of the people who rely on them. That belief is what led to Ghost being structured as an independent [non-profit foundation](https://ghost.org/about/?ref=ghost.org) rather than a venture-backed startup. The DPG recognition doesn't change anything about how Ghost works. It's not a new feature or a product update. But it is an external validation of the principles Ghost was built on, and a reminder that open source infrastructure matters; especially for independent publishing. ### Learn more You can find Ghost's profile on the [DPG Registry](https://www.digitalpublicgoods.net/r/ghost?ref=ghost.org), and learn more about the Digital Public Goods Alliance and its mission at [digitalpublicgoods.net](https://digitalpublicgoods.net/?ref=ghost.org). ### Native share buttons URL: https://ghost.org/changelog/native-share-buttons/ Last updated: 2026-05-14T19:10:53.000Z In the past, adding share buttons to a Ghost site meant writing custom code in your theme. Now, Ghost has a native share flow built in, triggerable from any post or page on your site. 0:00 /0:06 1× All official Ghost themes now include a share button out of the box. Readers can click to copy the post link, email the post to a friend, or share on social — with your post's title and link pre-populated in a draft, ready to publish in a single click. The share modal works beyond themes, too. To trigger it from somewhere specific on your site, add a link to `#/share` on any post or page. Ghost opens the modal automatically, no extra code required. ### Sharing from the inbox ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/04/image-2.png) Readers can also reach the same share modal in one click from your newsletter. Toggle on the share option in your newsletter design settings, and every email ends with a link that takes readers to your post with the share options already open — giving your readers a direct path from inbox to sharing with their audience, without ever leaving the flow. ### Theme support This feature is supported by the latest versions of all [official Ghost themes](https://ghost.org/themes?tag=Official&ref=ghost.org). To update, head to **Settings → Theme → Change theme** and select your current theme to [update to the latest version](https://ghost.org/help/update-official-theme/?ref=ghost.org). If you're using a custom theme, check the [developer docs](https://docs.ghost.org/themes/share?ref=ghost.org) to learn how to add support for this feature, or reach out to your theme developer for an updated version. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Welcome email design settings URL: https://ghost.org/changelog/welcome-email-design-settings/ Last updated: 2026-04-14T15:48:48.000Z You've already spent time getting your newsletters to look and feel like *you*, and now your welcome emails can match. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/04/image.png) The welcome email template can now be customized using all of the same design controls as newsletters – colors, typography, buttons, logos – so your brand stays consistent across every touchpoint with your readers, whether on your site, in your newsletters, or when welcoming new members of your audience. Based on your feedback, you can also set the sender name and reply-to address for welcome emails separately from newsletters, ensuring your messages arrive from the right person, and replies from your readers land in the inbox you want. Customize your template once, and it applies across all your welcome emails. Head to **Settings → Welcome emails → Customize** to get started. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/04/image-1.png) This is another iteration as we build toward a broader automation suite in Ghost, with your feedback directly shaping what we prioritize next. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Home Assistant URL: https://ghost.org/changelog/home-assistant/ Last updated: 2026-04-01T12:37:04.000Z Ghost now has an official integration for [Home Assistant](https://www.home-assistant.io/?ref=ghost.org), the open source smart home platform used by millions of people around the world. If you're already running Home Assistant, you can now pull your Ghost publication data directly into your dashboards and automations. ![Screenshot of Ghost sensors in Home Assistant dashboard](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/04/hadashmock.jpg) For the past few years, our [Zapier integration](https://ghost.org/integrations/zapier/?ref=ghost.org) has allowed you to integrate Ghost with other software. Now, you can also connect Ghost to hardware, IoT devices, and anything that works with Home Assistant. Once connected, you'll have access to sensors for all of your key Ghost metrics — total members, paid members, free members, MRR, ARR, published posts, draft posts, your latest send stats including opens, clicks, open rate, and social web data. This means you can now bring your publication data to any smart home display, dashboard, widget, mobile phone, or even smart watch. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/04/hadevice-2.jpg) And, of course, Home Assistant's automation engine can trigger actions based on any sensor change — so you can get a push notification on your phone when you hit a member milestone, flash your office lights when a newsletter goes out, or put your MRR on a 7-segment display jacked into an Arduino. If Home Assistant can control it, your Ghost data can drive it. ## Getting started The Ghost integration is built directly into Home Assistant, and can be installed from inside your Home Assistant integrations area. [GhostInstructions on how to integrate Ghost with Home Assistant.![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/icon/favicon-192x192.png)Home AssistantHome Assistant![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/opengraph)](https://www.home-assistant.io/integrations/ghost/?ref=ghost.org) If you don't yet have a Home Assistant install, you might enjoy checking out their [getting started](https://www.home-assistant.io/installation/?ref=ghost.org) guides. It's the #1 most active open source project across all of GitHub, with a huge community of tinkerers, enthusiasts and developers. ## Open software for an open future Ghost has a long history of aligning itself with open standards and open organizations, because it's the future we believe in. Just like Ghost, Home Assistant is open source software stewarded by a non-profit organization called [The Open Home Foundation](https://www.openhomefoundation.org/?ref=ghost.org). We both share a belief that the most important technology in people's lives should be transparent, independent, and built in the interests of the people who depend on it, not just investors and shareholders behind the scenes. The Home Assistant team also publish a wonderful monthly newsletter, powered by Ghost: [Building the Open HomeA newsletter giving our vision for smart homes that offers privacy, choice and sustainability.![](https://static.ghost.org/v5.0.0/images/link-icon.svg)Building the Open Home![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/GHOST_OPENGRAPH_2-1.jpg)](https://newsletter.openhomefoundation.org/?ref=ghost.org) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we'd like to hear it. Let us know using the **feedback** link in the left sidebar of Ghost Admin. ### Members-only podcasts URL: https://ghost.org/changelog/transistor/ Last updated: 2026-03-26T15:24:39.000Z Podcasting is one of the most popular ways publishers share their work — and one of the most common requests we hear is for an easier way to run a private, members-only podcast alongside a Ghost publication. Until now, doing that meant stitching together automations, managing subscriber lists manually, and hoping nothing fell out of sync. It worked, but it wasn't great. Today, Ghost and [Transistor.fm](https://transistor.fm/?ref=ghost.org) have partnered to build an official integration that connects the two platforms directly — with full member sync, flexible access controls, and built-in tools to help your members subscribe to their private feeds without any custom code or theme changes. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/03/image.png) ## Full member sync Once connected, Ghost members are automatically synced into Transistor. When someone signs up, upgrades, downgrades, or cancels — their podcast access updates in real time. There's nothing to manage manually. For each podcast, you choose exactly who should have access: - **All members** — free and paid - **Paid members only** — anyone with an active subscription - **Specific tiers** — lock access to individual membership tiers This is configured per-podcast, so if you're running multiple shows, each one gets its own access rules. A free weekly show for all members, and a deep-dive series exclusively for paying subscribers? That all works. ## Built-in ways for members to subscribe Every member with podcast access gets a unique private feed — specific to them — that they use to subscribe in their podcast app of choice. To make that process smooth, there are a few places where members can get access out of the box: ### **Portal** If a member has access to a private podcast, their account settings in Portal will now include a dedicated podcasts section, linking directly to your branded Transistor landing page where they can subscribe to their unique feed in their player of choice. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/03/image-1.png) ### **Editor card** Once activated, the Ghost editor will include a new Transistor card that gives you flexible ways to surface podcast access directly on your site and in your newsletters. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/03/image-2.png) You can use the Transistor card on any post or page to drop in an embed that gives members direct access to their unique private feeds, right there on your site. For example, a [Welcome Page](https://ghost.org/help/welcome-pages/?ref=ghost.org) that your members land on immediately after sign up 👇 ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/03/image-3.png) For posts sent as a newsletter, the card renders in the email as a direct link to the member's personalized Transistor landing page — making access as seamless as possible. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/03/image-4.png) 💌 If you’re using [Welcome Emails](https://ghost.org/changelog/welcome-emails/) in Ghost, the new Transistor card is available here too. Giving you an easy way to give any new members access to their private podcast feed automatically. ## Ways to use it There are a lot of creative ways to put this to work, depending on your business: - **Premium podcast as a paid member benefit** — Offer an exclusive show to paying subscribers, automatically unlocked when they sign up. - **Bonus audio for all members** — Share weekly commentary, behind-the-scenes content, or interview extras with your entire audience. - **Tiered access** — Run different shows for different tiers, giving each group of members their own content. - **Audio companion to your newsletter** — Record audio versions of your written posts and deliver them as a private feed. ## Get started First, you’ll need a [Transistor.fm](http://transistor.fm/?ref=ghost.org) account. As part of our partnership, the Transistor team is offering a limited-time discount for any Ghost publishers of **20% off your first year**. [Sign up for Transistor](https://dashboard.transistor.fm/signup?promo=ghost&ref=ghost.org) If you’re already a Transistor customer, you can follow the full setup guide here: [Official Ghost + Transistor IntegrationPublish your podcast or audio content on your Ghost site using a Transistor.fm embed, or run a members only podcast with some Zapier automations 🎙![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/icon/favicon-7.ico)Ghost - The Professional Publishing Platform![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/ghost-integrations.png)](https://ghost.org/integrations/transistor?ref=ghost.org) Or follow along with Transistor.fm founder, Justin Jackson, in this detailed demo: --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the **feedback** link in the left sidebar of Ghost Admin. ### Retention offers URL: https://ghost.org/changelog/retention-offers/ Last updated: 2026-03-11T15:33:55.000Z The best customer is the one you already have, or at least that’s how the old adage goes. To help you retain your paid members who may be on the fence, we've added retention offers – a new way to prevent churn before it happens. Now when a paid member goes to cancel their subscription, you can present them with a special retention offer before they confirm. Offer a free month, multiple free months, or a percentage discount on upcoming payments, whichever feels right for your audience. 0:00 /0:08 1× Retention offers are cadence-based – set one up for monthly members and one for annual, regardless of how many tiers you have. Each offer is fully customizable, so you can adjust the discount as well as the headline and description to match your brand's tone of voice. Once enabled, you can track redemptions directly from your offer management dashboard, or filter your member list to see exactly which members stayed because of a retention offer. To customize and activate your retention offers, head over to [**Settings → Offers**](https://account.ghost.org/signin?r=settings/offers&ref=ghost.org) in Ghost Admin and click manage offers. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Improved editor for welcome emails URL: https://ghost.org/changelog/improved-editor-for-welcome-emails/ Last updated: 2026-03-06T13:48:44.000Z A few weeks ago, we launched [welcome emails](https://ghost.org/changelog/welcome-emails/) in Ghost. The response so far has been incredible to hear — and you've had plenty to say, which is exactly what we were hoping for. The clearest thing you told us: you wanted access to all the features and cards you rely on in the Ghost editor when writing your welcome emails. Images, buttons, bookmarks, callouts, HTML cards — all of it. So that's what we built first. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/03/CleanShot-2026-03-05-at-13.34.35@2x.png) You now have the full power of the Ghost editor when crafting welcome emails for your audience. This is the first of many iterations to come as we build toward a broader automation suite in Ghost, and your feedback is directly shaping what we prioritize next. Keep it coming. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Inbox Links URL: https://ghost.org/changelog/inbox-links/ Last updated: 2026-02-19T16:57:58.000Z Memberships in Ghost are passwordless. When a member signs up or signs in, they get an email with a magic link to confirm their account or log in. It's more secure than passwords, and ensures every member on your list is a real person — keeping your deliverability and engagement high. The one extra step? Opening your email. Ghost now detects your member’s email provider and links them straight to their inbox with a pre-filtered search — landing them directly on the message they’re looking for. It works with Gmail, Outlook, iCloud, Yahoo, and many more. If a provider isn't detected or supported, everything works exactly as before. 0:00 /0:10 1× Less friction for your readers, better conversion on your signups. 🙏 This feature was inspired by our friends at [Buttondown](https://buttondown.com/blog/sniper-link-open-source?ref=ghost.org), who open-sourced their implementation of this idea. Open source communities sharing wins like this makes everyone better — thanks for the inspiration. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it. Let us know using the feedback link in the left sidebar of Ghost Admin. ### Welcome emails URL: https://ghost.org/changelog/welcome-emails/ Last updated: 2026-02-11T16:32:48.000Z One of the most requested features in Ghost history has been the ability to send a welcome email when someone new signs up. Starting today, automated welcome emails are now built right into Ghost . ### **What's new** Ghost now supports automated welcome emails for both free and paid members. Once enabled, new subscribers will receive a welcome email right away. If you have paid subscriptions enabled, you can also send a separate email to new paid members when they start their subscription — so free and paid members each get a tailored first impression directly from you. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/02/welcome-emails-1.png) Both emails are fully customizable. Set your own subject line, write your own message, and make sure every new member is onboarded in your voice, with your brand and style front and center. Welcome emails are off by default. To enable, head to [**Settings → Welcome emails**](https://account.ghost.org/signin?r=settings/memberemails&ref=ghost.org) to craft the right message for your audience and start sending. 👀 ****Already using welcome pages?** They're not going anywhere. Welcome pages redirect new subscribers to a specific page on your site and can be set individually for each tier, providing a perfect complement to welcome emails on the web. [Set up a welcome page →](https://account.ghost.org/?r=settings/tiers&ref=ghost.org) ### **The road ahead** This is our first step toward a more robust automation suite in Ghost. We know welcome emails are just the tip of the iceberg — drip sequences, lifecycle messaging, re-engagement campaigns — there's a lot more ground to cover, and your feedback will be critical in shaping what comes next. To make that easier, we've added a new **Feedback** link to your left sidebar in Ghost Admin. Let us know what you'd like to see next for automations — or anything else you think would make the product more valuable based on the way you use Ghost. 0:00 /0:04 1× --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Comment moderation URL: https://ghost.org/changelog/comment-moderation/ Last updated: 2026-02-06T13:42:27.000Z Communities on Ghost are thriving. Publications that once received occasional comments are now seeing hundreds per post — with readers replying to each other, building relationships, and returning to continue conversations. As that’s happened, you told us you needed better tools to manage growing communities. Navigating between posts, dealing with browser quirks, and hunting down problem comments was eating into time you'd rather spend writing. So we built a proper home for comment moderation, right inside Ghost Admin. ## What's new? There's now a dedicated Comments section in your sidebar. View, search, and moderate every comment across your publication from one place. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/02/image.png) ### **Powerful filters** Find exactly what (or who!) you're looking for. Filter comments by post, author, visibility status, date, search full text to track down specific keywords, or chain filters together when you need to get granular. 0:00 /0:07 1× ### **Reported comment management** Now you can view all the comments that your readers flag in one place. Filter by reported comments and take action right there in admin — hide the comment or investigate further. 0:00 /0:07 1× ### **Restrict commenting** A healthy community sometimes requires setting boundaries. You can now disable commenting for any member, and optionally hide all their previous comments across every post in one action — giving you full control over who participates in your community. 0:00 /0:06 1× ### **Context switching** Sometimes you want to see how things look on your actual site. Jump between Ghost Admin and the live comment with a single click, then return right where you left off. 0:00 /0:05 1× ### **Deep links** Links to individual comments now scroll directly to and highlight the relevant comment. This works for you in admin, and for your readers in comment notification emails — making it easier for everyone to pick back up the conversation. 0:00 /0:05 1× We're excited to hear how these tools work for you — and as your communities continue to grow, we'll keep building alongside you. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). ### Paid member analytics improvements URL: https://ghost.org/changelog/paid-member-analytics-improvements/ Last updated: 2026-01-29T18:51:18.000Z Understanding how your paid membership is growing — and where that growth is coming from — helps you see what's resonating with your audience. After launching native analytics in Ghost 6.0, publishers told us that some key paid membership insights were harder to spot than before. Based on your feedback, we’ve made a series of improvements to the Growth tab of your dashboard to bring those signals back into focus. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/01/image-2.png) Here's what's new: - **Growth breakdown by cadence and tier** — See exactly how your paid subscriptions split between monthly and annual plans, or across different tiers, for any time period. No more filtering members to see which offerings are driving your growth. - **Change in paid subscriptions, front and center** — The change graph now lives at the top level of your dashboard, with new options to view by day, week, or month based on the time period selected. - **Clearer member counts** — Hover over any point on your paid member chart to see a clear breakdown of paid subscriptions and complimentary members. These updates make it easier to spot trends and understand what's working at a glance — so you can spend less time analyzing, and more time publishing. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). ### Filters for traffic analytics URL: https://ghost.org/changelog/filters-for-traffic-analytics/ Last updated: 2026-01-22T18:16:47.000Z In Ghost 6.0, we introduced detailed, first-party web analytics directly into your dashboard. Now, we're giving you more ways to explore that data with a powerful, searchable filter system. 0:00 /0:10 1× Got a specific question? Filters can be chained together, giving you control over how you explore your data and uncover trends specific to your site and audience. UTM parameters are now fully supported and searchable too, making it easy to track and compare the performance of your marketing campaigns directly inside Ghost — without switching tools. Based on your feedback, we've also moved location data directly into your Web traffic dashboard, so everything about where your audience comes from lives in one place and can be filtered alongside the rest of your data. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost with the [Tinybird integration](https://ghost.org/integrations/tinybird/?ref=ghost.org) enabled, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). ### Email clipping warnings URL: https://ghost.org/changelog/email-clipping-warnings/ Last updated: 2026-01-14T19:25:47.000Z Email providers like Gmail often clip longer emails in the inbox, hiding everything past a certain point behind a "View entire message" link, which most readers never click. What makes this hard to predict is that clipping isn’t just based on length — it's about file size. A newsletter with lots of links, embeds, or images can hit the limit long before a text-heavy post does. Now, the next time you find yourself in a particularly long-winded mood, Ghost will keep track of your newsletter's expected size as you write, and warn you if it's at risk of being clipped before you hit send. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2026/01/image.png) And just to make sure you don't miss it, you'll find these warnings in the bottom right of your editor, in your newsletter preview, and when you publish. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). ### Explore the independent web URL: https://ghost.org/changelog/ghost-explore/ Last updated: 2025-11-26T14:15:03.000Z The last few years have seen another renaissance of writing online as newsletters have made blogging cool again. It's exciting. It's also created a discovery problem. Google search is making it harder than ever before to find anything. Social media algorithms reward the loud rather than the nuanced. Closed publishing platforms keep everything inside their proprietary apps. How do you find independent voices out there on the open web? Until recently, we didn't have a good answer. Now, we do! We've built a brand new discovery engine for indie publications, powered by Ghost. [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-14.04.04@2x-1.png)](https://explore.ghost.org/?ref=ghost.org) ## Ghost Explore One of the interesting quirks of distributed software like Ghost is that discovery is really challenging. Every Ghost install is a separate website running... somewhere out there in the world. But where? For a while we tried to curate recommendations with a manual directory, but now we have a brand new service that brings the best Ghost publishers on the web all together in a single location: [https://explore.ghost.org](https://explore.ghost.org/?ref=ghost.org) We built this as a new distribution channel to showcase independent publishers and help them grow, by putting your work in front of a new audience and promoting it across Ghost.org. [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-14.05.49@2x.png)](https://explore.ghost.org/p/404-media?ref=ghost.org) All this is powered by a [new growth setting in your admin panel](https://account.ghost.org/signin?r=settings/explore&ref=ghost.org), added in [Ghost 6.0](https://ghost.org/6/?ref=ghost.org), which adds your site to the Explore discovery engine. By default, only public data is listed (like your site URL, title, description, etc) — but if you're happy to share your growth metrics (optional), then the Explore algorithm is able to use that to rank your site even higher within the engine. [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-13.58.17@2x.png)](https://account.ghost.org/signin?r=settings/explore&ref=ghost.org) The biggest challenge for us building Ghost Explore was how to rank tens of thousands of websites in some way that makes sense. How do you figure out which sites are high-quality and popular, vs which aren't? To solve that, we turned to our friends at [ahrefs](https://ahrefs.com/?ref=ghost.org). ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-15.14.57@2x.png) If you're familiar with the world of Search Engine Optimization, you already know ahrefs. They are, by far, the leading platform for tracking search ranking and AI discoverability on the web — and [ahrefs data](https://ahrefs.com/big-data?ref=ghost.org) makes up the very core of the Ghost Explore ranking algorithm, which makes it all possible. We tried... many... unsuccessful approaches to ranking independent Ghost sites before, and nothing came close to the quality of ahrefs data. [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-14.07.21@2x.png)](https://explore.ghost.org/p/tangle?ref=ghost.org) ## Featuring your testimonials As an added bonus, you can also [send us a testimonial](https://account.ghost.org/signin?r=settings/explore&ref=ghost.org) about your experience with Ghost and — if you do — we'll feature the testimonial on your Explore profile, as well as throughout the Ghost.org official website with your logo and a link to your site. [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-15.00.20@2x.png)](https://ghost.org/love/?ref=ghost.org) We've been blown away by the *hundreds* of wonderful testimonials already submitted by Ghost users from all over the world. Any time we're feeling a little low on motivation, the [Ghost Love](https://ghost.org/love?ref=ghost.org) page is a real nice pick-me-up. ## Explore the Social Web [In Ghost 6.0](https://ghost.org/changelog/6/) we launched native support for a new distribution channel in Ghost, called the social web. This allows you to turn your Ghost publication into a networked profile that can be followed and subscribed to by millions of people across Threads, Mastodon, Flipboard, Bluesky, WordPress, and many, many more. It's amazing technology but, like any network, it's hard to get started when you're not sure who to follow or how to find them. This week we shipped a [dedicated Social Web category](https://explore.ghost.org/social-web?ref=ghost.org) in Ghost Explore that allows people to find all the independent Ghost publications and newsletters out there on the Fediverse. [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-14.14.27@2x.png)](https://explore.ghost.org/social-web?ref=ghost.org) We've also added Ghost Explore data into the social web features inside Ghost Admin, so now it's easier than ever to discover your next favorite writer. Head over to [the network tab in Ghost](https://account.ghost.org/signin?r=activitypub/explore&ref=ghost.org) to surf the social web! [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-16.09.02@2x.png)](https://account.ghost.org/signin?r=activitypub/explore&ref=ghost.org) Ghost Explore helps readers discover publishers they might never find through Google or social media. It rewards creators who invest in quality and consistency over those who reach for controversy and clickbait. There's a big, wide, wonderful web out there — with so many amazing things to discover, whether you're looking for the latest viral recipes from Alison Roman... [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-14.13.02@2x.png)](https://explore.ghost.org/p/alison-roman?ref=ghost.org) Independent news from The Stanford Review... [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-14.08.24@2x.png)](https://explore.ghost.org/p/the-stanford-review?ref=ghost.org) Or the best new music picks from the team that brought you Pitchfork... [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-26-at-14.09.23@2x.png)](https://explore.ghost.org/p/hearing-things?ref=ghost.org) Ghost is home to an enormous number of incredible websites, and we're thrilled to now be able to play a small part in helping more people discover them. [Dive into Ghost Explore](https://explore.ghost.org/?ref=ghost.org) --- Ghost Explore is available in all versions of Ghost from 6.0 and up — there's nothing you need to do in order to enable it, but if you'd prefer not to be listed you can always toggle *off* [the Explore setting in Ghost Admin](https://account.ghost.org/signin?r=settings/explore&ref=ghost.org). Sites that run in private mode or on private networks are automatically excluded. ### Free domains on Ghost(Pro) URL: https://ghost.org/changelog/free-domains-on-ghost-pro/ Last updated: 2025-11-04T20:31:05.000Z Thanks to our friends at [Entri](https://www.entri.com/?ref=ghost.org) and [.link](https://nic.link/?ref=ghost.org) — setting up custom domains on Ghost is now faster and easier than ever before. Instead of manually going through the finicky process of buying a domain, manually creating DNS records, and validating that they work: Now you can just click a button to search for a new domain name, and Entri will set up everything automatically. Best of all, our friends at the .link registry are giving away free domains to Ghost(Pro) subscribers as a part of this new partnership, so you can have an address you own pointing to your home on the web. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/11/CleanShot-2025-11-04-at-16.21.51@2x.png) To get started, head over to your Ghost(Pro) settings area and click the **Purchase domain** button! --- Free 1-year registration of .link domains and automatic domain configuration are available as a part of all plans on [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) — if you're self-hosting Ghost, you should continue to follow our developer documentation for [domain configuration](https://docs.ghost.org/config?ref=ghost.org#url). ### One-time codes for sign in URL: https://ghost.org/changelog/one-time-codes-for-sign-in/ Last updated: 2025-10-22T15:30:59.000Z In Ghost, member sign-in has always been password-less. Instead of asking your readers to remember yet another password, we send them a secure magic link that gets them logged in instantly. That system isn't going anywhere, but we've heard from you that sometimes magic links can be a little awkward, especially on mobile devices where in-app browsers don't always play nice. So today we're adding a new option: one-time codes. 0:00 /0:17 1× Now when a member signs in, they'll receive both a magic link and a unique one-time code. They can choose whichever is more convenient — one-click login as usual, or simply type in the code right back where they started. 💡 Using a custom sign-in form in your Ghost theme? You can now enable one-time codes there, too. [Learn more](https://docs.ghost.org/themes/members?ref=ghost.org#sign-in-forms) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). ### Ghost 6.0 URL: https://ghost.org/changelog/6/ Last updated: 2025-08-11T13:08:17.000Z The next major version of Ghost has arrived, and our 6.0 release is packed full of more upgrades and improvements than you can shake a stick at. If you're short on time, and you just want the highlights: - Ghost publications are now connected with an open network. People can discover, follow, like and reply to your posts across Bluesky, Flipboard, Threads, Mastodon, WordPress, Ghost, and any other social web platform. Distribution is now built-in. - We're introducing a native analytics suite for Ghost, giving you detailed insights into how your content performs across web traffic, newsletters, and member subscriptions - all in real-time, all from the same place you publish everyday. - Collectively, publishers on Ghost have now earned over **$100M** in revenue to support their work. Indie media isn't just surviving, it's thriving. - We've shipped *thousands* of improvements and updates since Ghost 5.0 that make the product more powerful than ever before. - For developers: Ghost is moving to a new official Docker Compose env, and our production stack is now Ubuntu 24, Node 22, and MySQL8. If you want to try any of these things (and the many other improvements) go ahead and [sign up for a free trial on Ghost.org](https://account.ghost.org/?ref=ghost.org) and see for yourself. It's live now. Or, if you want all the details about everything that's new, keep reading! [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/08/CleanShot-2025-08-02-at-14.50.37@2x.png)](https://explore.ghost.org/?ref=ghost.org) When we [announced Ghost 5.0](https://ghost.org/changelog/5/) a few years ago, we were proud to share that Ghost's revenue had hit **$4M** – while publisher earnings had surpassed **$10M**. It felt great to have such a clear sign that our goal to create a sustainable business model for independent creators was succeeding. Today, Ghost's annual revenue is over **$8.5M** while total publisher earnings on Ghost have now surpassed **$100M**. While the dominant narrative in the media industry today is one of layoffs and cutbacks in a market saturated with clickbait and AI — Ghost publishers, whose revenue has grown dramatically in the past 3 years, are telling a different story. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/08/revenue.png) [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/08/CleanShot-2025-08-02-at-15.10.35@2x.png)](https://explore.ghost.org/?ref=ghost.org) --- These successful media businesses follow a simple model that's been around for a long time: They make money by directly serving readers, rather than advertisers. After more than a decade of clickbait undermining media credibility, subscription-based publishers are discovering a simple truth: Producing high quality content that readers genuinely value is a far better business than chasing low quality page views for diminishing ad revenue. And after more than a decade of watching questionable growth tactics from Big Tech™️ — Ghost itself proves that same simple truth when it comes to platforms. Unlike our venture-backed peers obsessed with growth at all costs, we're structured [as a non-profit foundation](https://ghost.org/about/?ref=ghost.org) that serves publishers directly with open source software. We believe independent media cannot be beholden to proprietary tech companies, so Ghost publishers don't just "own their email list" — they own the entire software stack that underpins their business, end to end. Not a centralized platform controlled by a single corporation, but open infrastructure that's shared by everyone. That's the dream of the open web, and the driving force behind everything we do. $100,000,000 later — we feel confident saying: It's working. --- # Grow faster, with the social web Ghost is the home of your publication on the web, and it has always had support for multiple open distribution channels to deliver new posts to your readers. - Ghost 1.0 started with publishing by web and RSS feeds - Ghost 3.0 added support for publishing by API and webhooks - Ghost 4.0 enabled publishing by email newsletter In Ghost 6.0 we're introducing another new distribution channel: The social web. Now, millions of people can discover, follow, like and reply to your posts from any supported social web client - including Bluesky, Mastodon, Threads, Flipboard, Ghost, WordPress, Surf, WriteFreely, and many more. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/07/sw-1.png) Just as people can visit your Ghost website in any browser, subscribe with any feed reader, or receive newsletters in any email client, they can now follow your Ghost publication from any social web client. Unlike closed platforms with restrictive algorithms, open web protocols create a direct connection between you and your subscribers which you have full control over. This direct relationship has been a major driver in the resurgence of email newsletters over the past few years. But, while email is a fantastic way of sending out updates, it’s a one way street. It doesn't, and can’t, have the network effects that are so powerful for generating growth, and reaching new people. The social web turns your Ghost publication into a networked social profile that people can find, follow, like, reply, repost and interact with from anywhere —bringing network effects directly to decentralized publishing. Popular posts can be shared, re-posted, and discussed by millions of social web users. What does that mean, in practice? You now have a social web reader in admin to follow and read long-form content from other Ghost, WordPress or Flipboard publications. You can also follow and share short-form notes with people across Threads, Bluesky, Mastodon and others. And, of course, others can discover and follow you. For the first time in Ghost, you can send and receive likes and replies, and interact with other creators from all over the world, and all over the web. Interactions like these have been the flywheel driving rapid growth for publishers and creators across closed platforms and social networks. Now they're built directly into Ghost on top of an open protocol called ActivityPub. No opaque algorithms. No suppression of links. No unhinged mechabots. If you've been around on the web for while, and you can remember back that far... you might even call it the return of the blogosphere. Our social web integration is completely free, and works on all Ghost 6.0 sites, whether on [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) or self-hosted. --- # Learn what's working, with Ghost Analytics Until now, we've had simple analytics in Ghost focused on memberships and newsletters. If you wanted to track page views, traffic sources, or visitor behavior on your site, you had to rely on third-party integrations. In Ghost 6.0, we're shipping detailed, first-party analytics directly in the product, no extra tools or setup required. And, unlike third-party providers, it's fully integrated with everything you publish, giving you a full picture of engagement across your entire audience — all from the same place you publish every day. Now you have the ability to filter all your data by audience to see what’s resonating across public visitors, free members, and paid members in real time, so you can understand what's working, and make informed decisions about what to publish next. And this is just the start. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/08/analytics.png) We've wanted to build something like this for a very long time, but up until now we didn't have a good way to create a system that could deal with storing, retrieving and filtering on huge numbers of events at scale. Delivering data insights like this is relatively straightforward in a centralized SaaS app, but much more complex in a distributed open source app that you can self-host. In fact, this feature was only made possible at all thanks to a deep partnership with our friends at [Tinybird](https://tbrd.co/ghost?ref=ghost.org). [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/08/image-1.png)](https://tbrd.co/ghost?ref=ghost.org) Over the past few years, Tinybird has become the default way to integrate analytics functionality into modern products in the same way that Stripe is the default way to integrate payments. They also have a wonderful habit of supporting open source products like [Ghost](https://github.com/TryGhost/Ghost?ref=ghost.org), [Dub](https://github.com/dubinc/dub?ref=ghost.org), [PaperMark](https://github.com/mfts/papermark?ref=ghost.org), [OpenStatus](https://github.com/openstatusHQ/openstatus?ref=ghost.org), and [LocalStack](https://github.com/localstack/localstack?ref=ghost.org). As a result, we were able to turn Ghost Analytics into a powerful, first-party, cookie-free data platform built on an open source [ClickHouse](https://clickhouse.com/?ref=ghost.org) database. On [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org), our new advanced analytics features are included for free on the Publisher plan and higher — with all data stored in EU regions. For developers who self-host Ghost, you can sign up for a free Tinybird account and bring your own API key to get things up and running following our [integration documentation](https://ghost.org/integrations/tinybird?ref=ghost.org). --- # Upgrades to existing features We've put an incredible amount of energy into ensuring that Ghost scales and remains reliable as our customers have grown from small blogs and websites, to successful media businesses with millions of subscribers, hundreds-of-millions of dollars in revenue, sending billions of emails. It doesn't matter how many new features you ship if they don't work well, so a huge amount of our focus goes into continuously updating, improving, and refining our product based on user feedback. ### Here's an overview of everything else new since 5.0 - We've done a complete rewrite of [Ghost Explore](https://explore.ghost.org/?ref=ghost.org), featuring top indie publications from all over the world. - Support for publishing in [over 60 different languages](https://ghost.org/changelog/internationalization/) with automatic translations for portal, newsletters, search, and comments. - Newsletters have been upgraded in a big way, with [custom design settings](https://ghost.org/changelog/newsletter-design/), new [conditional cards](https://ghost.org/changelog/custom-content-for-every-subscriber/) for advertising, [premium previews](https://ghost.org/changelog/email-public-previews/) for free subscribers, [subtitles](https://ghost.org/changelog/subtitles-in-newsletters/), [built-in spam protection](https://ghost.org/changelog/signup-spam-protection/), support for showing your [latest posts](https://ghost.org/changelog/latest-posts/), [subscriber details](https://ghost.org/changelog/subscription-details/), [audience feedback](https://ghost.org/changelog/audience-feedback/), [comment links](https://ghost.org/changelog/comment-cta/), [delivery troubleshooting](https://ghost.org/changelog/email-troubleshooting/), and [automatic list cleaning](https://ghost.org/changelog/automatic-list-cleaning/). You can even [edit links in newsletters](https://ghost.org/changelog/update-links/) after they've already been sent. - Our [recommendations feature](https://ghost.org/changelog/recommendations/) enables cross-promotion, so you can highlight your favorite publishers, and they can highlight you. - Improved payment experience with support for 135 currencies, [free trials](https://ghost.org/changelog/free-trials/), more [payment methods](https://ghost.org/changelog/additional-payment-methods-beta/) like Apple Pay, Google Pay, CashApp and iDEAL, as well as [automatic sales tax](https://ghost.org/changelog/sales-tax-on-autopilot-beta/), and support for one-time payments with [tips and donations](https://ghost.org/changelog/tips-donations/). - Multiple new themes including our new default [Source](https://ghost.org/changelog/the-source-theme/) theme for news sites, [Solo](https://ghost.org/changelog/solo/) for individual creators, [Taste](https://ghost.org/changelog/taste-episode/) for food writers, and [Episode](https://ghost.org/changelog/taste-episode/) for podcasters — all of which have support for new [custom typography](https://ghost.org/changelog/custom-fonts/). - We now have [bulk actions](https://ghost.org/changelog/bulk-actions/) for updating multiple posts at once, or [duplicating them](https://ghost.org/changelog/duplicating-posts/). - We completely rebuilt the [Ghost editor](https://ghost.org/changelog/new-editor/) from the ground up with a more intuitive, powerful writing experience, including [edit history](https://ghost.org/changelog/post-history/), [emoji autocomplete](https://ghost.org/changelog/emoji-picker/), [TK reminders](https://ghost.org/changelog/tk-reminders/), [internal linking](https://ghost.org/changelog/internal-linking/), an [inline image editor](https://ghost.org/changelog/image-editor/), and better support for [landing pages](https://ghost.org/changelog/create-landing-pages/) with [header cards](https://ghost.org/changelog/header-card-improvements/) and [signup cards](https://ghost.org/changelog/signup-cards/). - We built [integrated comments](https://ghost.org/changelog/native-comments/) functionality, allowing you to build a community with high-quality, members-only discussion on your posts, then we [upgraded it](https://ghost.org/changelog/upgraded-comments/) with more sorting, moderation and threaded replies. - One of our *most popular* additions: A new [announcement bar](https://ghost.org/changelog/announcement-bar/) lets you share breaking news or special offers prominently at the top of your site. - New [2FA and device verification](https://ghost.org/changelog/2fa/) to improve security for Ghost staff users, who now also have a [history log](https://ghost.org/changelog/history-log/), providing you with a full audit log of who-did-what, when. - We now have [native search](https://ghost.org/changelog/search/) built into Ghost, so your readers can dig through the archives and rediscover your best pieces of work. - [Embeddable signup forms](https://ghost.org/changelog/embeddable-signup-forms/) help grow your audience from anywhere on the web, and extra support for [custom signup terms](https://ghost.org/changelog/signup-terms/). - The [Ghost Bookmarker browser extension](https://ghost.org/changelog/bookmarker/) lets you bookmark any webpage in a draft post, ideal for saving link roundup newsletters. - [Email notifications](https://ghost.org/changelog/email-notifications/) alert you instantly when new members sign up or upgrade, keeping you connected with your audience growth. - A completely refreshed [Ghost settings interface](https://ghost.org/changelog/refreshed-settings/) makes site configuration easier than ever. Mostly because it now has search built-in. - Support for [more staff social links](https://ghost.org/changelog/social-links/) to connect with followers across other networks. --- # Pricing updates on Ghost(Pro) Alongside the launch of 6.0, we're making a handful of changes to pricing for new customers on our official [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) managed hosting. **First:** We've significantly reduced pricing for accounts with large numbers of subscribers. In some cases, prices have been reduced by as much as 50%. **Second:** We've increased pricing and adjusted limits on our cheapest plans. Previously they started at $9 and $25/mo, now they start at $15 and $29/mo. **Third:** We're introducing a launch offer for new customers, providing 50% off any plan for the first 3 months, making it more affordable than ever before to [start a new publication](https://account.ghost.org/signup?ref=ghost.org) with Ghost 6.0! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/08/pricing.png) If you're currently a customer, and these prices are *higher* than you currently pay, your pricing is **not** changing. We've always grandfathered all customers on pricing for the past 12 years, and this time is no different. You can keep your existing price and features. If you're currently a customer, and these prices are *lower* than you currently pay, you can change to one of the new plans and pay less. We'll also be proactively notifying all customers by email who fall into this category. A few quick answers to common questions: #### Why are you changing pricing, now? Like most businesses, we review and update our pricing regularly to make sure it's sustainable for us to operate, and be competitive within our market. This often coincides with major version launches introducing new features that have new associated costs. #### It's too expensive! Why isn't it free? [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) is a managed service with a full-time team of staff and servers who make it run. We're a [non-profit foundation](https://ghost.org/about/?ref=ghost.org) with no outside investors, so the only way we stay in business is if our unit economics are sustainable. We think it's pretty great value for creative professionals who want to save a ton of time with a high quality service that automatically scales with you as you grow. That said, [Ghost itself is free and open source](https://github.com/tryghost/ghost?ref=ghost.org), so you can host it anywhere you prefer if our managed service doesn't align with what you're looking for. #### I have a pricing question that isn't covered here Drop us an email any time on `support@ghost.org` and we'll get back to you as soon as possible. If you need help making an adjustment to your subscription, our team is more than happy to assist. --- # Developer changes On top of all the user-facing changes, we also have some exciting updates and changes for developers who build-on and work-with Ghost. Ghost 6.0 represents the beginning of a major improvement to how Ghost is deployed. Up until now, Ghost has been installed with Ghost-CLI as a single app that runs on a VPS with one MySQL database, but our new social web and analytics features have been built as independent services that run alongside Ghost. So, we're moving toward **Docker Compose** as the officially supported way to install, run and update Ghost. This is now available as a [developer preview](https://docs.ghost.org/install/docker?ref=ghost.org), and will become the default from Ghost 7.0 onward. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/08/docker-6.png) ### Other developer changes - Ghost's official production stack is now **Ubuntu 24, Node 22, and MySQL8** - *Footnote*: Ghost *does* work with other operating systems, node versions, and databases - but as a small team, we document, test and support one narrow stack that we know works really well. OSS contributions are always welcome. - We've shipped brand new [**Developer Documentation**](https://docs.ghost.org/?ref=ghost.org), which is once again [open source](https://github.com/tryghost/docs?ref=ghost.org) (contributions welcome) and has upgraded search, as well as brand new support for [llms.txt](https://docs.ghost.org/llms.txt?ref=ghost.org), so you can get Claude to do your bidding. - We also shipped a [**VS Code extension**](https://ghost.org/changelog/vscode-extension/) last year to streamline theme development with syntax highlighting and live preview - **Google AMP** support has been deprecated. 🪦 RIP. Won't miss you. - If you're a **theme developer**, [gscan](https://gscan.ghost.org/?ref=ghost.org) has been updated so you can test your theme for compatibility against 6.0. --- # How to get Ghost 6.0 ****All new sites on Ghost(Pro) are running 6.0** You can spin up a new site in a few clicks and try out all the latest features with a [14-day free trial](https://ghost.org/pricing/?ref=ghost.org) \- and a 50% discount on your first 3 months. [Launch in under 2 minutes → ](https://account.ghost.org/signup?ref=ghost.org) ****Already on Ghost(Pro)?** Log into Ghost.org and click the "Update to 6.0" link your admin panel, any time. Get in touch with support if you have any trouble, we're happy to help. [Log in to update → ](https://account.ghost.org/login?ref=ghost.org) ****Self-hosting Ghost?** Update to 6.0 following [the Ghost update guide](https://ghost.org/docs/update/?ref=ghost.org). Keep in mind, this is a major version with breaking changes. Please allow some extra time and make backups. [Read the docs → ](https://docs.ghost.org/update/?ref=ghost.org) --- # Want to help make the open web better than ever before? We're hiring! If you like the sound of everything you see here, we're actively hiring for more talented people to join Ghost. We're a fully remote team, located worldwide, with a passion for using technology as a force for good. [GhostWe’re hiring! Ghost is a proud non-profit organisation building open source technology for fiercely independent, professional publishers.![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/icon/favicon-6.ico)Ghost![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/a69c3c76-dbe9-4126-90a5-d77ed099f5c7.png)](https://careers.ghost.org/?ref=ghost.org) [![Ghost 6.0 - The open source product that generates $100M+ for creators | Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1001336&theme=light&t=1754296707331)](https://www.producthunt.com/products/ghost?embed=true&utm%5Fsource=badge-featured&utm%5Fmedium=badge&utm%5Fsource=badge-ghost-6-0) ### Newsletter design settings URL: https://ghost.org/changelog/newsletter-design/ Last updated: 2025-08-03T02:18:10.000Z To help you make your newsletters feel more like, ahem, *you*, we've upgraded Ghost’s newsletter templates with new design settings so your brand can stay consistent wherever your audience reads, from homepage to inbox, without touching a line of code. ### Colors 🎨 You know those carefully selected colors on your website ... the ones that feel exactly like your brand? With the new design settings, you can apply those exact colors across your newsletter's background, header, links, buttons, dividers, and titles. So whether you prefer bold, high-contrast designs or subtle, minimalist aesthetics, your newsletter can look like you. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/06/image.png) ### Look & Feel Beyond color palette, it's all the subtle little details that make your design feel cohesive and intentional. We've added more options for controlling visual style throughout your newsletter – things like adjusting heading weight to establish hierarchy, rounding corners on images for a more playful vibe, and matching your buttons to your site's CTA style. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/06/image-1.png) --- To get started with these new design options, go to **Settings > Newsletters** and select the newsletter you'd like to edit. [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it: [feedback@ghost.org](mailto:feedback@ghost.org). ### More staff social links URL: https://ghost.org/changelog/social-links/ Last updated: 2025-04-28T15:29:08.000Z Until now, staff profiles in Ghost only supported Facebook and X (Twitter). Many of you have been asking for more, so you can now add links to Bluesky, Threads, LinkedIn, Instagram, TikTok, YouTube and Mastodon. Edit your profile under: **Settings** → **Staff** → **Social Links** ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/04/Ghost-social-links-backend.png) This feature is supported by the latest versions of all [official Ghost themes](https://ghost.org/themes?tag=Official&ref=ghost.org). ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/04/Ghost-social-links-frontend.png) You can update your theme by visiting **Settings** → **Theme** → **Change theme** and reinstall your theme to [update to the latest version](https://ghost.org/help/update-official-theme/?ref=ghost.org). If you're using a custom theme, you can read the [developer docs](https://ghost.org/docs/themes/helpers/social%5Furl/?ref=ghost.org) to learn how to add support for this feature, or reach out to your theme developer for an updated version. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Device verification & email 2FA URL: https://ghost.org/changelog/2fa/ Last updated: 2025-04-22T15:21:36.000Z We've just introduced two simple security enhancements for staff user logins on Ghost: Device verification, and email-based two-factor authentication (2FA). Now, when any staff user signs in to Ghost from a new/unrecognized device for the first time, they'll be required to enter a 6-digit 2FA code sent to their registered email address. This extra layer of protection is automatically enabled on all Ghost sites. Optionally, site administrators can now also configure Ghost to send email 2FA codes as part of every staff user login, regardless of device. This new option can be found under **Settings → Staff users → Security**. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/04/CleanShot-2025-04-12-at-14.39.21@2x.png) ### Advanced security options As always: Users with sophisticated security requirements can configure network-based authentication for the entire `/ghost` route, covering both the admin panel and API, using a system such as [CloudFlare Access](https://www.cloudflare.com/zero-trust/products/access/?ref=ghost.org) in combination with third-party SSO providers or enterprise IDP integrations. More information about Ghost's security practices is available in our detailed developer documentation: [Ghost Security & PrivacyGhost is committed to developing secure, reliable products utilising all modern security best practices. Find out more about Ghost security and privacy.![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/icon/favicon-4.ico)Ghost - The Professional Publishing Platform![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/ghost-docs.png)](https://ghost.org/docs/security?ref=ghost.org) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Custom content for every subscriber URL: https://ghost.org/changelog/custom-content-for-every-subscriber/ Last updated: 2025-04-14T13:30:20.000Z Have you ever wanted to display sponsored content in your newsletter but not in the article? Or maybe you want to display content to free members but not paid? Now you can. 0:00 /0:21 1× ### What’s new? **Visibility settings** allow you to choose where the content displays. Like in your newsletter, article, or both. The same goes for who sees it — public visitors, free members, paid members, or any combination thereof. And you can preview your post accordingly before you publish. **Design settings** now include the option to add an image, change the background color, and choose the best layout. **Sponsor labels** are optional, editable, and can include a link. ProTip: Adding a link for advertisers to get in touch can invite more brand deals 💸 💡 ****Looking for even more flexibility?** We’ve also applied these visibility settings to our HTML card so you can create entirely unique experiences for different subscribers. To add a *Call to Action or HTML* card use the + button, which appears on new lines, or by typing / on a new line to trigger the card menu. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/04/Capture-2025-04-07-113521.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/04/Capture-2025-04-07-112107.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/04/Capture-2025-04-07-112956-1.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/04/Capture-2025-04-07-112235.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/04/CleanShot-2025-04-07-at-15.10.37@2x.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). ### Social web (beta) URL: https://ghost.org/changelog/social-web-beta/ Last updated: 2025-04-03T05:42:10.000Z One of the greatest advantages of centralized publishing platforms has always been that they have a network where creators can follow each other, massively increasing reach and distribution with a social graph. Independent blogs and websites, on the other hand, have been like little islands on the web that people can only discover via links and (ever-diminishing) search traffic. Last year we set out to build an open, decentralized system that would allow Ghost publishers to find, follow, and interact with one another for the first time – bringing network effects and discovery to independent publishing. Today, we're opening a public beta for [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) users to take it for a test drive. The best part? As always, we build open technology rather than closed systems, so this new functionality isn't limited to Ghost. You can find, follow and interact with people and publications across Ghost, WordPress, Threads, Mastodon, BlueSky, Flipboard, Tumblr (soon), and hundreds of other platforms that make up the open network known as The Fediverse. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/03/image-1.png) Now, when you publish something to the *open* web, it will also get published to the *social* web, where people can like, reply and repost your work – giving your website a built-in distribution mechanism. For the first time, you get to see realtime feedback on your posts from people all over the world, without having to worry about algorithms suppressing links or demoting your content. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/03/image-2.png) While most publishers we've talked to are excited about the ability to have followers and expose their work to a new audience, the secret to growth on all any network has always been to follow and engage with others. With that in mind, we built a social web reader that allows you to follow and subscribe to other creators and publications right inside Ghost Admin. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/03/image-3.png) This turns out to be a great way to keep up with your favorite beats, as a source of inspiration and reference for whatever you plan to create next. From using and testing this with a small number of publishers for the past few months, it's been interesting to observe how this has shifted the way people are using Ghost. They've told us that with the connection to the social web, the product has come to life in a way that feels familiar, yet refreshingly new. Keep in mind, though, this is a beta release! We're still actively working on building this, and there are a bunch of rough edges. --- ## How to get access To start, take a look through our detailed onboarding guide that covers everything to do with how this new feature works: [Social web (beta)💡Currently in public beta on Ghost(Pro) This feature is in active development, and is not yet complete. We’re welcoming early testers to give it a try and share their feedback, as we work on finalizing this experience for inclusion in Ghost 6.0\. Since 2013, Ghost has made it![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/icon/favicon-3.ico)Ghost Help CenterGhost![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/help-site-cover-1-1.png)](https://ghost.org/help/social-web/?ref=ghost.org) Once you're ready to take things for a test drive, [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) users can open Ghost Admin and head over to **Settings → Labs** to enable the beta. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/03/image.png) There are already several hundred sites and publishers that have enabled the beta and are actively following and connecting with one other, with more joining every day. We're looking forward to hearing what you think! --- ## What about self-hosting? For developers who run Ghost on their own infrastructure: The new social web integration is being built as an add-on for Ghost that runs alongside the core platform as a separate service. It's all open source, MIT licensed, and is [available on GitHub](https://github.com/TryGhost/ActivityPub?ref=ghost.org). While in beta, we're actively making multiple breaking-changes every single week, so while it can technically already be self-hosted, it's not recommended. We're running the beta on Ghost(Pro) so that we can deploy the service in a single place and iterate quickly based on user feedback, making any changes needed as we go. Once we've stabilized the codebase and it's ready to come out of beta later this summer, then we'll also be shipping detailed self-hosting docs. If you're interested in a behind-the-scenes look at how we're building our social web integration for Ghost using ActivityPub, you can subscribe to a dedicated weekly newsletter from the team working on it: [Building ActivityPubGhost is federating over ActivityPub to become part of the world’s largest publishing network![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/icon/ghost-orb-white-squircle-07-2.png)Building ActivityPub![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/appp-1-1.jpeg)](https://activitypub.ghost.org/?ref=ghost.org) ### Signup spam protection URL: https://ghost.org/changelog/signup-spam-protection/ Last updated: 2025-03-12T14:39:44.000Z Recently, many publishers have noticed an increase in bulk signup-spam from SMS services such as `txt.att.net` – leading to large numbers of fake member accounts being registered on their websites. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/02/image--2-.png) On [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) we proactively monitor and block spam signups like this automatically as a part of our managed service whenever we spot patterns of abuse across our network. Now, we've also introduced a new spam filtering as a setting in Ghost – allowing publishers direct control to block signups at an individual site level. So, if you spot a bunch of bogus members appearing on your site, you can quickly halt them in their tracks. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2025/02/CleanShot-2025-02-05-at-14.30.41@2x.png) Some platforms deliberately allow fake signups through because they make growth charts go up and to the right 📈 but at Ghost, we believe in quality over quantity. Subscriber growth isn't worth much if the subscribers aren't real! --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Upgraded comments URL: https://ghost.org/changelog/upgraded-comments/ Last updated: 2024-12-19T10:49:04.000Z Two years ago, we launched native Comments in Ghost. By creating a space specifically for registered members to engage with publishers and each other, we enabled community building in a way that wasn’t previously possible in Ghost. Fast forward to today, and we’ve seen the impact of these communities firsthand — from small, highly engaged groups to publications with tens of thousands comments. With that growth, and feedback from you and your readers in mind, it’s time for an upgrade. ## What’s new? **Replies-to-replies →** People can now reply directly to a reply (meta, we know), enabling clearer, deeper conversations and more engagement — all in a way that doesn’t result in your comments section zig-zagging down the page. 0:00 /0:11 1× **Sorting →** Many of you told us that the most vibrant comments and discussions should be the first thing people see. Now, there's an option to sort comments by best, newest, and oldest first — with best (measured by likes) as the default. 0:00 /0:10 1× **Call to action at the top →** An invitation to join the discussion now sits at the top of the comments section, helping to convert new readers into members, and free members into paying subscribers. Plus, hitting the ❤️ or Reply button now prompts readers to sign up or upgrade to leave a comment. 0:00 /0:08 1× **Hidden and deleted comments →** Comments without replies will now disappear entirely when hidden or deleted. No more annoying placeholders. --- If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it! — Reach out on `feedback@ghost.org` ### Custom fonts URL: https://ghost.org/changelog/custom-fonts/ Last updated: 2024-12-17T08:04:34.000Z Ghost offers hundreds of [beautifully designed themes](https://ghost.org/themes?ref=ghost.org) out of the box. Whether you've built a news website, company blog, creator library or weekly newsletter, there's something tailored to your personal needs. And now, with the addition of native support for custom fonts in Ghost, we're taking personalization one step further. We've carefully curated a diverse set of typefaces to choose from that work well across almost any theme, aiming for quality over quantity. 0:00 /0:15 1× ## How to customize fonts To change your publication's fonts, open your **Design** settings. Under **Brand**, scroll down to **Typography**. This feature is supported by the latest versions of all [official Ghost themes](https://ghost.org/themes?tag=Official&ref=ghost.org). Go to **Settings** → **Theme** → **Change theme** and reinstall your theme to [update to the latest version](https://ghost.org/help/update-official-theme/?ref=ghost.org). If you're using a custom theme, you can read the [developer docs for custom fonts](https://ghost.org/docs/themes/custom-settings/?ref=ghost.org#setting-up-support-for-custom-fonts) to learn how to add support for this feature, or reach out to your theme developer for an updated version. --- If you have feedback on this feature or requests for specific typefaces, feel free to let us know on **`feedback@ghost.org`**. ### Internationalization 🌏 URL: https://ghost.org/changelog/internationalization/ Last updated: 2024-11-05T16:25:34.000Z Ghost is used by people all over the world to publish their thoughts, stories and ideas on the internet in a large number of different languages. Until now, though, any text output by Ghost to generate user interfaces on websites has been limited to English. These include the signup/login portal, search, comments and a few pieces of text in newsletter templates (like the unsubscribe link). Last year we launched a beta program to ask people to help us translate these areas of Ghost into different languages and, after a huge number of contributions, we're now ready to launch this publicly for **60** different languages! Starting *next week*, all public-facing components generated by Ghost will be automatically translated into the language that you have configured in Ghost under **Settings → Publication Language**. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2024/11/image-1.png) [https://www.monplateau.info](https://www.monplateau.info/?ref=ghost.org) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2024/11/image.png) [https://eigoism.com](https://eigoism.com/?ref=ghost.org) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2024/11/image-2.png) [https://nucleo.jor.br/especiais/](https://nucleo.jor.br/especiais/?ref=ghost.org) If you want to turn it on **right now**, you can do that, too! Just enable the beta flag under **Settings → Labs → Portal translation**. Popular languages have been fully translated, but if you spot any English text still showing up on your site — the translations for the language you're using may not yet be complete. We're still actively looking for people to help translate any missing strings! Here's a guide for [how to contribute translations](https://www.youtube.com/watch?v=xs8QesgTOIo&ref=ghost.org). Read more and get community support on [our forum](https://forum.ghost.org/t/help-translate-ghost-beta/37461?ref=ghost.org). ## Special thanks Translations in Ghost have been created 100% by the Ghost community. It's the largest piece of work we've ever released that the Ghost core team has *not* worked on! We owe a huge debt of gratitude to everyone who has graciously spent time helping to submit new translations to make this possible. There's one person in particular who deserves a special mention: [Cathy Sarisky](https://github.com/cathysarisky?ref=ghost.org). Cathy — an independent Ghost developer who helps publishers with web design and development via her agency, [Spectral Web Services](https://www.spectralwebservices.com/?ref=ghost.org) — has been leading our translation efforts for the past few months. It's entirely thanks to her that this is finally coming out of beta! Thank you Cathy 🙏 ### Sales tax on autopilot (beta) URL: https://ghost.org/changelog/sales-tax-on-autopilot-beta/ Last updated: 2024-09-17T17:25:06.000Z With the new Stripe Tax integration (beta) in Ghost, you can now effortlessly handle sales tax, VAT, or GST directly at checkout for new paid subscriptions (or [tips and donations](https://ghost.org/changelog/tips-donations/)!), based on what makes sense for your business. [Stripe Tax](https://stripe.com/tax?ref=ghost.org) is a paid add-on for Stripe that helps you monitor where you need to collect taxes, automatically calculates and collects the right amount for new customers, and provides you the reports needed to file returns. Once the integration is enabled, new paid members going through Stripe Checkout will see an additional field to enter their address. If they live in a location in which you’re registered to collect tax, it will be automatically calculated at the appropriate rate. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2024/09/CleanShot-2024-09-16-at-16.43.51@2x-1.png) ## Beta testing We've been testing the new Stripe Tax integration in private with a small group of publishers across the United States, Canada and Europe for the past few months, and it's working great! Taxes have a long tail of different cases and nuances, though, so we're rolling this beta out manually and working with publishers directly to enable it on their sites. ## How to get access Prior to turning on the integration in Ghost, you'll need to opt-in to the Stripe Tax add-on and configure it via your Stripe dashboard. The process involves several steps, so we've written up a helpful guide to walk you through the full setup: [Stripe Tax Integration (Beta)Stripe Tax allows you to automatically calculate and collect tax when your subscribers checkout for paid membership.![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/icon/favicon-1.ico)Ghost Help CenterGhost![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/thumbnail/help-site-cover-1.png)](https://ghost.org/help/stripe-tax/?ref=ghost.org) --- If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). ### Tips & donations URL: https://ghost.org/changelog/tips-donations/ Last updated: 2024-09-03T17:02:41.000Z Subscriptions give your members a way to support your work with a consistent, recurring cadence — but what if someone wants to send you a one-off payment to support your work? While it’s always been *possible* to take one-time payments in Ghost, it hasn't been *easy*. In fact, from chatting with publishers, we discovered no fewer than nine (9!) different methods for doing so. ![](https://media.tenor.com/ejlTXLAEQ6UAAAAC/brady-enough-already.gif) So, we decided to add support for tips and donations natively in Ghost to make this a whole lot easier. Starting today, any Ghost publication with an active [Stripe connection](https://ghost.org/help/stripe/?ref=ghost.org) can have a dedicated payment link that allows your audience to send you a one-time payment. 0:00 /0:14 1× Find it under **Settings → Growth → Tips & Donations.** You’ll be able to set a suggested amount for people to tip, and use your payment link anywhere across your Ghost site; like in buttons, headers, email CTAs, or anywhere else that comes to mind. Tips & donations can be made by members and non-members alike, and any time someone makes a payment, you'll receive an email notification to let you know. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2024/09/Ghost-tips-donations-3-1.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. If there are ways you think this feature could be more valuable based on the way you use Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). ### Internal linking URL: https://ghost.org/changelog/internal-linking/ Last updated: 2024-06-25T13:42:34.000Z In the past, if you wanted to link to one of your old posts you’d need to open a new tab, visit your website, track down the post, copy the URL, and paste it back into the Ghost editor. You told us that was just too many steps, and too many tabs. (Agreed) Now when you create a link in Ghost, you can search old posts to link to right there in the editor. It works on pages, tags and authors, too. No more context switches to interrupt your writing flow. 🪄 To speed things up even more, just hit `@` and start typing to quickly find and add a link to any of your work. 0:00 /0:30 1× The Ghost Editor is where you live everyday — so we’ve taken our time to get this feature right. First by testing with a small group (thank you all!), and later expanding to over 400 publishers kicking the tires during a beta period. So far, the feedback we’ve received has been overwhelmingly positive. Turns out writing *is* faster with less interruptions. That said, your workflow is exactly that, yours. So if there are ways you think this feature could be more valuable based on the way write in Ghost, we’d like to hear it — [feedback@ghost.org](mailto:feedback@ghost.org). --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Additional payment methods (beta) URL: https://ghost.org/changelog/additional-payment-methods-beta/ Last updated: 2024-06-21T12:22:15.000Z By default, Ghost supports payments from members via Credit Card, Apple Pay and Google Pay. Now, with the Additional Payment Methods (beta), you’ll be able to offer your members the option to checkout via CashApp, iDEAL, Wechat, Revolut, AmazonPay, Direct Debit, ACH, and a long list of other payment methods supported by Stripe. ## **Why set up additional payment methods** Different payment methods are popular in different parts of the world. In the US it's common to pay for things online with a credit card. In The Netherlands almost nobody uses credit cards, people there prefer iDEAL, a payment system that connects directly to their bank account. In China, AliPay and WeChat Pay are much more popular payment methods than any other. Unsurprisingly, when a site supports the payment method their customers are most accustomed to and comfortable with, their conversion rates tend to be much higher. If your audience is predominantly based in a specific region, you will likely want to make sure you support that region's most popular payment methods. If your audience is international, you may want to consider supporting a wide range of payment methods to appeal to different demographics. ## **Why a beta?** While we’ve done our best to test and iron out all the bugs, the number of payment method setups you can achieve creates a long tail of different cases. So, we’ve been taking a better safe than sorry approach. So far, we’ve had over 300 publishers turn on the beta and setup the payment methods that make sense for their audience. Now, after a few months of finding and fixing all the little nuances that have surfaced, we’re ready (and confident) to welcome anyone interested in trying it out. ## How to get access The setup involves changes both in Ghost and Stripe, so we’ve written up a helpful guide to walk you through the process: [Additional payment methods (beta)By default Ghost supports payments from members via Credit Card, Apple Pay and Google Pay. Enabling the Additional Payment Methods (beta) in Ghost → Settings → Labs will allow you to select more payment methods your members can use from within your Stripe Dashboard. You must enable the setting in Ghost first![](https://ghost.org/favicon.ico)Ghost Help CenterGhost![](https://ghost.org/help/content/images/size/w1200/2023/05/help-site-cover-1.png)](https://ghost.org/help/payment-methods/?ref=ghost.org) --- 👉 ****Find an issue?** Please report them over on [https://forum.ghost.org](https://forum.ghost.org/?ref=ghost.org). Or, if you’re a Ghost(Pro) customer, email us at support@ghost.org. [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Subtitles in newsletters URL: https://ghost.org/changelog/subtitles-in-newsletters/ Last updated: 2024-06-06T18:52:32.000Z Lots of Ghost themes use the excerpt field as a subtitle on posts, including our default Source theme. After listening to feedback from publishers, we’ve added an optional setting in the newsletter template to include the post excerpt. Now it's simple for your newsletter to match your site. **Here's how to enable it:** Navigate to **Settings → Newsletters → Design** and toggle on the "Post excerpt" field. 0:00 /0:07 1× --- **P.S.** –We’re experimenting with ways for you to customize the editor based on how *you* like to write — starting with adding the excerpt inline as a subtitle. To try it, navigate to **Settings → Labs** to toggle on the beta feature. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2024/06/CleanShot-2024-06-06-at-10.19.05@2x.png) Feedback on this? Are there other customizations that would make your writing experience better? Let us know at **feedback@ghost.org**. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Joining the ActivityPub network URL: https://ghost.org/changelog/activitypub-alpha/ Last updated: 2024-04-22T21:04:14.000Z For the past few years, networked publishing has become an increasingly hot topic. Various platforms have allowed writers to follow, like and reply to posts from one another - making writing on the internet an altogether more *social* experience. The problem, though, has always been that those networks have been closed, proprietary, and limited in their utility and longevity. We've all seen what happens when networks either run out of money, or get commandeered by people with... too much money. At Ghost we've been interested in publishing networks for a long time, but as you have come to expect from us after over a decade of releasing open, decentralized technology that puts people first: We're doing things in our own way. [Building ActivityPubGhost is federating over ActivityPub to become part of the world’s largest publishing network.![](https://activitypub.ghost.org/content/images/size/w256h256/2024/04/ghost-favicon48.png)Building ActivityPub![](https://activitypub.ghost.org/content/images/size/w1200/2024/04/appp-1.jpeg)](https://activitypub.ghost.org/?ref=ghost.org) We're excited to share that we've started work on bringing ActivityPub support to Ghost, making it possible for all Ghost publishers to distribute their work across to the largest decentralized network in the world. It's going to take some time for us to ramp up our efforts here, but we're going to be sharing our build diary and all the details with you as we go. [We've put together a full overview of what this means for you](https://activitypub.ghost.org/?ref=ghost.org), and we're looking forward to hearing what you think! ### TK reminders URL: https://ghost.org/changelog/tk-reminders/ Last updated: 2024-03-20T21:52:52.000Z Busy authors who file a lot of stories often make heavy use of **`TK`** as a placeholder for content which is still "[To Come](https://en.wikipedia.org/wiki/To%5Fcome%5F%28publishing%29?ref=ghost.org#:~:text=%22To%20come%22%20is%20a%20printing,It%20is%20used%20without%20periods.)". It's the editorial equivalent of `//TODO`. But what happens when you go to publish, and you need to make sure you've finished off all those TK todos? In the past, you would realize only after it was already too late and tens of thousands of newsletters were flying across the internet on their way to reader inboxes. Now, Ghost helps by highlighting any instances of TK in the editor margins and warning you if it looks like you're about to publish a post that's still missing some key details. 0:00 /0:26 1× It's a small detail designed to save you from frustrating mistakes, so you can publish with confidence. Didn't even need AI for this one. [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2024/03/brandbird.jpg)](https://twitter.com/tylergold/status/1770484868868145337?ref=ghost.org) The whole Ghost team has been working on quality and performance improvements for the first few months of 2024 — and we've made some pretty dramatic upgrades (and plans) that we're excited to share with you soon. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### ✨ Emoji autocomplete ✨ URL: https://ghost.org/changelog/emoji-picker/ Last updated: 2023-11-16T14:34:12.000Z For those of us that like an emoji or two in their posts 🙋 the Ghost Editor just got a little more streamlined. Now, you can add any emoji by simply pressing `:` and continuing to type. No more fiddling with emoji pickers, and no more interruptions to your creative flow as you write 🥳 ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/11/CleanShot-2023-11-15-at-13.40.46@2x-1.png) [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start adding emojis right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Recommendations (beta) URL: https://ghost.org/changelog/recommendations/ Last updated: 2023-11-01T13:04:39.000Z We're introducing a simple cross-promotion mechanism for all publishers, on any platform. Ghost now includes the first native Recommendations feature that's compatible with the entire open web. In the past couple of years Recommendations have become a super popular way for publishers to support and amplify each other's work — and for good reason! They're a very effective way to grow your audience, so we've had a lot of demand from users to make this possible on Ghost. The dirty secret about Recommendations, though, is that most platforms have designed them primarily to boost their *own* growth. You can't recommend anything you like, you can only recommend other people who use their product. We wanted to give publishers the ability to benefit from cross promotion without limits or hidden incentives, so we decided to do things differently. We built a full Recommendations system for Ghost that's compatible with any platform, website, or publisher out there — so you can recommend whoever you like. When you share favourite movies with friends, you probably don't limit your recommendations exclusively to titles available on Netflix. ## Here's how it works Get started by curating a list of your favourite publishers and sites. Ghost will show recommendations to new members on signup, and give you simple stats so you can see how recommendations are performing — and who's recommending you. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/10/recs.png) Recommendations in Ghost work automatically with any site — but also have extra features available, depending on platform support. Where available, Ghost will deliver notifications to other publishers when you start recommending them, with an invitation to recommend you back. Ghost will also automatically show 1-click subscribe buttons for any platforms that have support for it. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/10/Threads-Ghost.png) These features are [based on open standards](https://ghost.org/docs/recommendations/?ref=ghost.org), which *any* platform can adopt and integrate with to become part of the largest network in the world: **The open web**. --- ## About the beta We've been trialing recommendations privately with a handful of publishers, and now we're opening it up to everyone. We're releasing this now as a public beta, which means anyone can use it, but we're still working on it. Expect to see more iterations and improvements, as we learn from how this feature is used once adopted by a larger audience. Finally, of course, what would a post about Recommendations be without sharing some of our own? You can add a link to show Recommendations anywhere on your site like this: [Our Recommendations →](#/portal/recommendations) Recommendations can also be natively integrated into your Ghost theme. Our official themes already have support built-in, and theme developers can explore our new [Recommendations Developer Docs](https://ghost.org/docs/themes/helpers/recommendations/?ref=ghost.org). --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! You can create and manage recommendations under `Settings → Recommendations` If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Refreshed settings URL: https://ghost.org/changelog/refreshed-settings/ Last updated: 2023-10-30T17:07:07.000Z With autumn in full swing, we've just finished doing some spring cleaning. Ghost Admin's settings area has had an overhaul and a refresh. Many new features have been added to Ghost in the past couple of years and, as we introduced new concepts, it became difficult to organise their settings. Multiple workflows required clicking in and out of multiple different screens, just to get one thing done. Now, we've unified Ghost settings in a single screen with dedicated navigation and search. It's simpler to browse *all* settings by scrolling to discover them, and it's faster to find a *specific* setting by searching to find it. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/10/adminx-stgs.png) We do know moving settings around can be disruptive to existing workflows, so thanks for your patience with re-training some muscle memory. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### The new Ghost editor URL: https://ghost.org/changelog/new-editor/ Last updated: 2023-10-25T10:00:57.000Z Faster and more robust than ever before, we just shipped a complete rewrite of the Ghost editor. This is our third major iteration of the Ghost editor, packed with new features, including: - [**Native image editing**](https://ghost.org/changelog/image-editor/) \- so you can adjust photos on the fly - [**Post history**](https://ghost.org/changelog/post-history/) \- so you can see who edited what, when, and restore old versions - [**Landing page cards**](https://ghost.org/changelog/create-landing-pages/) \- so you can build beautiful custom experiences - [**Bookmarking**](https://ghost.org/changelog/bookmarker/) \- so you can collect links from around the web for your posts And some fixes for longstanding issues with our previous editor, like: - **Faster overall performance** \- things just feel more *snappy* - **Improved handling of very large posts** \- which, in the past, was... painful - **Better undo/redo chaining** \- a smoother experience when fixing mistakes - **Much improved mobile editing** \- so you can write on the go in iOS / Android - **Nested lists** \- for structuring your bulleted thoughts - Which wasn't possible before - But is now - **More keyboard shortcuts** \- find the full list in the post settings menu The new editor is now available across all Ghost installs. [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log into their sites to give it a try. If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. --- ## Developer changes Keep reading below if you're curious about the technical details behind the new editor, and what it means if you're building API integrations with Ghost. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/10/Frame-1--4-.png) As we worked on this new editor, one of our main goals was to keep things the same. We made a few visual tweaks here and there, but for the most part it's still the same editor you know and love... it just works better than it did before. Under the hood, though, the technical changes we've made to the editor unlock exciting possibilities for the future. Ghost's editor, called Koenig, was previously built in [Ember.js](https://emberjs.com/?ref=ghost.org) on an open JSON-based document storage format called [MobileDoc](https://github.com/bustle/mobiledoc-kit?ref=ghost.org). We loved how it worked, but MobileDoc never became widely adopted, so the technology underpinning our editor became a bit stagnant. This limited our ability to build new features, or solve frustrating core bugs (like better mobile support). Koenig has now been rebuilt on a new stack: [React.js](https://react.dev/?ref=ghost.org) and [Lexical](https://lexical.dev/?ref=ghost.org) — both of which are open source frameworks developed by Meta. So, Ghost is now using the same underlying technology that powers every single editor, comment box, or user input for billions of users across Facebook and Instagram. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/10/Screenshot-2023-10-23-at-16.44.43@2x.png) Try the new Koenig editor for yourself — [https://koenig.ghost.org](https://koenig.ghost.org/?ref=ghost.org) Ghost is the first independent company outside of Meta to build a full-scale dynamic editor on top of Lexical, and we worked directly with the Lexical core team to make it happen. Today's announcement reflects over a year of quiet, dedicated work by both teams to get to where we are now. We have lots of plans for continuing to improve Ghost's editing experience, and this shift in architecture has opened a lot of new doors for what's possible next. For developers building integrations with Ghost, check out our updated API docs, which cover how to interact with Lexical content stored in the database: [Ghost Admin API DocumentationManage content via Ghost’s Admin API, with secure role-based authentication. Read more on Ghost Docs 👉![](https://ghost.org/favicon.ico)Ghost - The Professional Publishing Platform![](https://ghost.org/images/meta/ghost-docs.png)](https://ghost.org/docs/admin-api/?ref=ghost.org#posts) ### Ghost Bookmarker URL: https://ghost.org/changelog/bookmarker/ Last updated: 2023-10-23T18:05:14.000Z Ever find yourself scrambling to remember that great link you found this week to include in your latest post or newsletter? You know subscribers would love to see it... if only you could find your way back to that remote corner of the internet. Meet the new Ghost Bookmarker browser extension for [Chrome](https://www.google.com/chrome/?ref=ghost.org) & [Arc](https://arc.net/?ref=ghost.org), which allows you to drop any webpage into a draft post in Ghost with a single click. *Ok, fine, 2 clicks.* ## Here's how it works: You're reading something you want to drop into a draft post for later, so you click on the Ghost icon in your browser toolbar. That's it. 0:00 /0:28 1× The Bookmarker extension will automatically insert new links into the same draft post in Ghost. Once you publish the post and bookmark a new link, the Bookmarker extension will simply start a new draft. This makes it really easy to gather together links for a weekly roundup newsletter. [Install Ghost Bookmarker](https://chrome.google.com/webstore/detail/ghost-bookmarker/aakhcgcbiehjpkmhngjjommcdhnobpho?ref=ghost.org) Once you've added the extension to your browser, enter your Ghost site URL and a personal staff token (found at the bottom of your user profile settings in Ghost Admin) to get started. If you need help getting things set up, check out our integration guide, here: [Official Ghost + Ghost Bookmarker IntegrationAn official Chrome extension to curate links from around the web and send them to your Ghost site.![](https://ghost.org/favicon.ico)Ghost - The Professional Publishing Platform![](https://ghost.org/images/meta/ghost-integrations.png)](https://ghost.org/integrations/bookmarker/?ref=ghost.org) --- We're dedicating this feature to our friends **Martijn** & **Mohamed** from **Revue** (Acquired by Twitter, RIP) who used to have an amazing bookmarking extension — which is where the idea for Ghost Bookmarker came from. ### Post history URL: https://ghost.org/changelog/post-history/ Last updated: 2023-10-17T16:16:56.000Z Ghost stores multiple versions of your posts as you edit them, in the background, so if you make a mistake or lose some work — you have a handy backup. Previously, though, recovering post versions was a bit of a manual process. Now, we've introduced a simple new UI so you can browse through your post's edit history and see who edited what, when, and restore any version with a single click. If we were funny this would be a good spot for a gag about time travel, but we're not funny so here's a video of the new post history feature instead: 0:00 /0:16 1× --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Native image editing URL: https://ghost.org/changelog/image-editor/ Last updated: 2023-10-24T15:14:20.000Z Ghost now has a built-in, native image editor, so you can make quick adjustments to uploaded media without interrupting your flow. Sometimes you might upload a photo to a post and find that it's almost perfect... if only you could just *tweak* it a little bit with a simple crop and a filter. In the past that would have involved downloading the image, opening another app to adjust things, exporting it, then uploading it to Ghost again. Now, all it takes is a few clicks to adjust the image right inside the editor: 0:00 /0:27 1× Once complete, the edited image is automatically saved and you can pick right back up where you left off. No extra apps required. Simple edits are fun, but more powerful annotations and adjustments are also possible. For example, if you publish content with screenshots, you might want to highlight certain areas and make sure that a white background on your image doesn't blend into the white background of your site. By adding a zoom, arrow and border, it's possible to quickly draw attention to the area of the image you want people to focus on: 0:00 /0:43 1× Ghost's new image editor comes thanks to a new partnership with [Pintura](https://pqina.nl/pintura/?ref=ghost.org), the creators of the editing interface. For [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) customers, the image editor is automatically enabled and included with every plan — for free! Just sign in to your site to start using it. For developers who self-host Ghost on their own servers, the [Pintura integration](https://ghost.org/docs/config/?ref=ghost.org#pintura) can be enabled by purchasing a [Pintura license](https://pqina.nl/pintura/?ref=ghost.org) and entering your license information inside Ghost Admin to enable the image editing functionality. ### Source: Our new default theme URL: https://ghost.org/changelog/the-source-theme/ Last updated: 2023-10-24T15:14:12.000Z We just released a brand new theme called **Source**, which is the new default theme packaged with every new install of Ghost. Source represents a clean, functional design suited to modern publications and newsletters. It comes with simple layout and styling options included, so you can quickly launch a custom site that perfectly matches your brand — without writing a single line of code. [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/10/Screenshot-2023-10-02-at-10.28.26@2x.png)](https://source.ghost.io/?ref=ghost.org) The Highlight Layout [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/10/Screenshot-2023-10-02-at-14.10.47@2x.png)](https://source-magazine.ghost.io/?ref=ghost.org) The Magazine Layout [![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/10/Screenshot-2023-10-02-at-10.28.02@2x.png)](https://source-newsletter.ghost.io/?ref=ghost.org) The Landing Page Layout Our goal with the Source theme was to make it as straightforward as possible for new publishers to get started with Ghost, giving them easy access to a range of design settings that cover the most common use-cases we see. Ghost's previous default theme, [Casper](https://ghost.org/themes/casper/?ref=ghost.org), is still available and can be installed from the Ghost Marketplace. --- **Source** is automatically included in all new Ghost installations. If you already have a Ghost site and you'd like to give it a try, Source can be installed directly from the [Ghost Marketplace](https://ghost.org/themes/?ref=ghost.org). ### Header card improvements URL: https://ghost.org/changelog/header-card-improvements/ Last updated: 2023-10-24T15:14:05.000Z The improved header card in the editor now gives you even more power and flexibility to create beautiful pages and posts. Now with new layouts including small, wide, full, and side-by-side, you can create drastically different headers for your content. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/08/Screen-Shot-2023-08-17-at-17.42.07.jpg) --- ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/08/Screen-Shot-2023-08-17-at-17.48.24.jpg) --- ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/08/Screen-Shot-2023-08-17-at-17.51.22.jpg) --- ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/08/Screen-Shot-2023-08-17-at-17.53.26.jpg) Full-width header cards are also stackable now, allowing you to build dynamic landing pages, like this: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/08/Screen-Shot-2023-08-17-at-17.57.09.jpg) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. The updated header cards are available to those using our new [****Beta Editor**](https://ghost.org/changelog/editor-beta/). Any header cards that you have previously created will remain unchanged. ### Build better landing pages URL: https://ghost.org/changelog/create-landing-pages/ Last updated: 2023-10-24T15:13:24.000Z For those using our new [**Beta Editor**](https://ghost.org/changelog/editor-beta/), it's now possible to remove the title and feature image from any page you're building in Ghost — so you can make your pages look radically different, no coding required. To hide the title and feature image from a page, all you need to do is click the toggle in the page settings: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/07/toggle-title-feature-image.png) Once that's done, you can use a combination of dynamic cards in the editor to make your landing page look the part, with headers, calls-to-action to [attract new signups](https://ghost.org/changelog/signup-cards/), images, toggles, copy, and more! Here's some examples of what's possible: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/07/Ghost-landing-page-3.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/07/Ghost-landing-page-1.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/07/Ghost-landing-page-2.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. This feature is supported by the latest versions of all [official Ghost themes](https://ghost.org/themes?tag=Official&ref=ghost.org). Go to ****Settings** → ****Design** → ****Change theme** and reinstall your theme to [update to the latest version](https://ghost.org/help/update-official-theme/?ref=ghost.org). If you're using a custom theme, reach out to your theme developer, or visit the [docs](https://ghost.org/docs/themes/helpers/page?ref=ghost.org). ### Signup cards URL: https://ghost.org/changelog/signup-cards/ Last updated: 2023-06-27T14:48:18.000Z For those using the new [Ghost Editor (beta)](https://ghost.org/changelog/editor-beta/), we've just released a brand new editor card that gives you new ways to grow your audience across your publication. Following on from the release of [embeddable signup forms](https://ghost.org/help/embeddable-signup-forms/?ref=ghost.org) that gives you the tools to embed signup forms anywhere on the web, the new **Signup card** allows you to do the very same thing from your Ghost publication, without ever needing to leave the editor. Signup cards are directly integrated with Ghost memberships so they'll be shown when it makes sense, and hidden when it doesn't. These forms will only be seen by logged out visitors on your site, making sure your existing members are never confused. ## Adding a new signup form To get started, select the Signup card from the `+` card menu, or by typing `/` on a new line. Click on any text within the card and start typing to edit the copy, then use the customizable card editor to choose your layout, alignment, background color or image, button color and text, and add labels to track how many new members your form attracts. 0:00 /0:24 1× ## Forms to suit your brand Whether you're attracting new members from a published post, a landing page, or your about page, the signup form has got you covered with customization options that allow you to style your form however you need. Here are some examples of how to make your signup cards look the part: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/delicious-food-signup.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/publisher-weekly-signup-2.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying the signup card right away with the [new Ghost editor (beta)](https://ghost.org/changelog/editor-beta/) enabled. If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. The signup card is supported by the latest versions of all [official Ghost themes](https://ghost.org/themes?tag=Official&ref=ghost.org). Go to ****Settings** → ****Design** → ****Change theme** and reinstall your theme to update to the latest version. If you're using a custom theme, reach out to your theme developer, or visit the [docs](https://ghost.org/docs/themes/content?ref=ghost.org#signup-card). ### Embeddable signup forms URL: https://ghost.org/changelog/embeddable-signup-forms/ Last updated: 2023-06-14T15:30:24.000Z Start growing your audience from anywhere on the web, using the new embeddable signup forms. It's now even easier attract new subscribers from any website, while keeping Ghost as the hub for your memberships. ### Branded ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/embed-form.png) Include your logo, publication name, and description in your signup form, and optionally select a custom background color to fully promote your brand. ### Minimal ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/minimal-embed-form.png) If you prefer to keep it simple, use the minimal form to add a subscribe bar to any site. Both forms allow you to assign labels at signup, so you can keep track of how much audience growth comes from each embedded form. To get started, head to **Settings** → **Membership**, select a layout, and color, apply your labels, then simply copy the embed code for use anywhere on the web, like this: --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Portal translations (beta) URL: https://ghost.org/changelog/portal-translations/ Last updated: 2023-06-12T15:51:32.000Z By popular demand, we’ve introduced translatable components for the membership and email features in Ghost. **Previously:** Your entire site is in Spanish, but the Portal signup UI and login emails are in English. **Now:** Show those elements in your chosen language so your members have a consistent experience. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/portal-spanish-3.jpg) The following areas of Ghost can now be translated: - **Portal** — the member signup, signin, and account management experience. - **System emails** — the signup/login emails sent to members. - **Injected theme components** — for example, “*You need to be a paid member to read this post*”. Thanks to our generous open-source community, we already support 33 languages and counting 🎉 ## Turn translations on for your publication To take Portal translations for a spin, enable the feature from the **Labs** menu, and ensure you have set the correct publication language from the **General settings** page. If your language is supported, you'll see translated content across the membership features of your site. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/portal-translation.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/publication-language.png) --- ## Call for translators Want to help expand the number of translations available in Ghost? We’ve put together a complete tutorial for anyone who wants to get involved by adding new translations, or improving existing ones: You can see which languages have already been added on [GitHub](https://github.com/TryGhost/Ghost/tree/main/ghost/i18n/locales?ref=ghost.org), listed by [locale codes](https://www.w3schools.com/tags/ref%5Flanguage%5Fcodes.asp%2024?ref=ghost.org). Read more and get community support on [our forum](https://forum.ghost.org/t/help-translate-ghost-beta/37461?ref=ghost.org). --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### The new Ghost editor (beta) URL: https://ghost.org/changelog/editor-beta/ Last updated: 2023-10-23T18:13:27.000Z We just released the beta version of the latest iteration of the Ghost editor. Over the past few months, our team has been working hard on rebuilding our editor from the ground up using new technology that will help pave the way for the future. **The good news:** It’s the same editor you know and love with all of the same functionality and dynamic cards. **The even better news:** The new editor has allowed us to introduce additional brand-new features that you can start using today. --- ## Image editing Ever dropped an image into your content and wished you could quickly make a few tweaks to make it pop, or crop it slightly? Well now you can, with the new image editing features inside Ghost, thanks to our friends at [Pintura](https://pqina.nl/pintura/?ref=ghost.org). ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/image-editor.jpg) When adding any image or feature image to a post, click the image edit button to get access to the ability to: - Rotate, flip, and crop - Apply filters and effects - Finetune the exposure, brightness, contrast, clarity, and more - Redact sensitive information with a blur tool - Add annotations like arrows, lines, or text - Add a frame to the image - Add stickers by uploading any image 💡 Pintura image editing is automatically included and enabled on all [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) plans by default! Self-hosted users can [purchase their own license](https://pqina.nl/pintura/?ref=ghost.org) to use Pintura inside Ghost. --- ## Post history The new editor now provides a helpful post history of each time your post was edited, saved, and updated. 0:00 / 1× You can find post history in the settings menu from any post in the editor, and click on each revision to return to that version of the post. If you need to revert to a previous version for any reason, all you need to do is click **Restore** 🪄 --- ## Bookmarker extension For many publishers, curating inspiration and reference points from around the web is a fundamental part of the creative process. To help speed this process up, we built a brand new Chrome extension called the Ghost Bookmarker. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/bookmarker-setup.png) With the Ghost Bookmarker installed, you can send links from anywhere on the web into a draft in Ghost as a bookmark card, along with optional notes. Once the post is published, bookmarked links will be added to a new draft. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/bookmarker-add-a-link-1.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/06/bookmarked-links.png) Once you add a link to Ghost, you can continue reading and browsing, and find your saved bookmarks later in a draft post. It's great for creating roundup newsletters and aggregating stories that you've been reading. To get started, follow the steps below to turn on the beta of the new Ghost editor, and install the Chrome extension here: [Get the Ghost Bookmarker](https://chrome.google.com/webstore/detail/ghost-bookmarker/aakhcgcbiehjpkmhngjjommcdhnobpho?ref=ghost.org) --- ## How to enable the new editor (beta) To access the beta version of the new Ghost editor, along with all of the latest features it offers, log in to your site’s admin and turn the beta on from the **Labs** page in Ghost Admin **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users can log in and opt into the beta right away. If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version first. ### We want your feedback We’d love to hear how you’re finding the new Ghost editor. All you need to do is click the Feedback link in the bottom left corner of the editor and let us know what you think 💬 ### Duplicating posts URL: https://ghost.org/changelog/duplicating-posts/ Last updated: 2023-05-17T15:50:04.000Z It's now possible to duplicate any post in Ghost, so you can speed up your writing workflows, segment emails to your audience with ease, and create reusable templates. All you need to do is `right-click` on a post to open the edit menu and select **Duplicate**. 0:00 / 1× This time-saving shortcut is useful if you want to deliver the same email with a few minor tweaks to a different audience segment, or if you have a template for a recurring newsletter with the same content structure, tags, post access, and author information. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Bulk actions on posts URL: https://ghost.org/changelog/bulk-actions/ Last updated: 2023-05-03T15:42:56.000Z It's now possible to update multiple posts at once using the new bulk actions shortcuts in Ghost Admin. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/04/bulk-action-menu-2.png) To make bulk actions, select the posts you'd like to edit by holding `shift` or `cmd` and clicking to select which posts you'd like to update, then `right-click` to open the bulk edit menu. From here you can perform actions such as adding tags, changing post access, adding or removing the featured status, or unpublishing multiple posts at once. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Announcement bar URL: https://ghost.org/changelog/announcement-bar/ Last updated: 2023-05-02T13:54:42.000Z Share big stories, special offers, or breaking news at the top of your site with the new announcement bar feature. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/04/announcement-bar.png) To add an announcement to every page of your site, go to **Settings** → **Announcement bar** and add your announcement copy, pick a background color, and select the visibility of your announcement: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/04/announcement-bar-settings.png) The visibility options allow you to share different types of announcements based on what makes sense for your audience. For example: - Highlight breaking news for everyone on your site - Share a special offer for your paid tiers just with new visitors and free members - Exclusively invite your paid members to join your community Announcements can be removed at any time by either removing the message or toggling off visibility for everyone in your settings and hitting **Save**. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Add signup terms to Portal URL: https://ghost.org/changelog/signup-terms/ Last updated: 2023-04-13T14:00:34.000Z Ever wanted to ask your audience to read your community guidelines, agree to your terms of service, or give explicit consent to receive emails from you? Great news — now you can by adding custom text and a checkbox to your signup form in Portal. This new feature provides a flexible method of adding signup terms for new subscribers. Head to **Portal settings** to add your own terms: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/04/signup-terms-portal-settings-2.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Post analytics exports URL: https://ghost.org/changelog/post-analytics-exports/ Last updated: 2023-04-18T09:19:01.000Z Ghost now allows you to easily export all of the analytics associated with your posts, so that you can perform deeper analysis of your content. Post analytics exports include all available information for each of your published posts in a CSV format, making it easy to analyze your data in the spreadsheet tool of your choice. This allows you to slice and dice the data in any way that you see fit, and gain deeper insight into how your content is performing 📊 To get an export of your post metrics, all you need to do is navigate to Settings → Analytics and click **Export post analytics**: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/04/CleanShot-2023-04-04-at-15.32.53@2x-8.png) Now you can do things like: - Filter your content by tag, access level, or authors to analyze different segments of your content independently - Find out what posts drive the most growth with data on how many free signups and paid subscriptions your posts have converted - Discover what content resonates and see which posts received the most positive feedback from your audience - Dig into email stats and filter posts by the highest (or lowest) open rates and click-through rates. ![](https://media.tenor.com/IQ6Z-aPhr1wAAAAC/date-everywhere-data.gif) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Include latest posts in newsletters URL: https://ghost.org/changelog/latest-posts/ Last updated: 2023-03-29T16:19:35.000Z Encourage reader engagement by sharing your latest posts in each newsletter issue! The new latest posts feature automatically adds the latest three published posts to the bottom of your newsletters, so you can invite subscribers to explore more of your content and encourage them to visit your site as logged-in members. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/03/latest-posts-in-email.png) If email is the primary way you interact with your audience but you have lots of published content on your site, this new feature is a perfect fit to increase engagement and click-through rates **📊** Turn on the latest posts section in your email settings: 0:00 / 1× Now all you have to do is bring the juicy content! ![](https://media.tenor.com/Vucu5O0U4FAAAAAC/cat-kitten.gif) ### Add subscription details to newsletters URL: https://ghost.org/changelog/subscription-details/ Last updated: 2023-03-28T16:40:48.000Z Be more transparent with your audience using the new subscription details feature and make sure your readers understand why they are receiving emails from you! Now you can add personalized subscription information at the bottom of each newsletter, so your members can see what email address they subscribed with, the date they subscribed, and the renewal date for paid members. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/03/subscriber-details-preview.png) This helps promote trust with your audience and manages their expectations: - Avoid spam reports by reminding readers why they're getting emails from you - Reduce support by reminding paid members what they're paying for, and how to manage their subscription All you need to do is turn the feature on in your email settings: 0:00 / 1× --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Invite members to reply in the comments URL: https://ghost.org/changelog/comment-cta/ Last updated: 2026-05-21T17:40:57.000Z Invite readers to engage with your work directly from your newsletter with the new comment call to action in emails. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/03/Comments-cta-in-email.png) Developing a deeper relationship with your audience is essential to building an independent publishing business. Enabling [comments](https://ghost.org/changelog/native-comments/) on your posts encourages your readers to get involved in the conversation, and now they can dive in even if they're reading your content in their inbox. When a reader clicks the **comment** link in your emails, they'll be directed to the comments section of the post on your site. This feature is switched on by default for sites with comments enabled and can be toggled off in the newsletter settings. 0:00 / 1× --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Minimalist newsletter settings URL: https://ghost.org/changelog/minimalist-newsletter-settings/ Last updated: 2023-03-21T14:58:42.000Z By popular demand, we made it possible to remove the post title and author info from email newsletters in Ghost, giving you more control over the types of emails you can deliver to your audience. Now you can send different kinds of emails that look the part, such as: ### Simple emails Need an email to look more like a personal letter? No problem! Send quick notes, informal emails, or survey invites. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/03/Removing-post-title-newsletter-1-1.jpg) ### Announcements or marketing emails Promote your paid subscriptions and special offers, or send any kind of announcement. (*Pro tip: Header cards are great for this*). ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/03/Removing-post-title-newsletter-2-1.jpg) ### Roundup emails Share a roundup of your latest posts or curated articles from around the web. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/03/Removing-post-title-newsletter-3-1.jpg) All you need to do is toggle the post title off in the email design settings, and then start creating your emails! 0:00 / 1× --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Email troubleshooting URL: https://ghost.org/changelog/email-troubleshooting/ Last updated: 2023-02-15T16:25:51.000Z Email newsletters are a fantastic distribution mechanism for content. But no matter how great your deliverability is, a universal truth is that a small percentage of emails can get caught up in the wrong place due to overzealous spam filters, or arbitrary email client algorithms. While it's not possible to avoid these problems *completely*, it is now easier to get your subscribers help with the most common solutions for deliverability issues. The member account area is now populated with dynamically customized tips and suggestions for anyone who's having trouble receiving emails. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/01/learn-more.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/01/not-receiving-emails.png) This information is at the fingertips of each of your subscribers, so they understand how to get to the bottom of any issues. We've also put together an abbreviated version of this that you can save as a template in most email clients if any members contact you to ask about email delivery issues. #### 📩 Saved reply template (copy this) Sorry to hear you're having trouble! Here are a few things to check, to start: **Check spam & promotions folders** Make sure emails aren't accidentally ending up in the Spam or Promotions folders of your inbox. If they are, click on "Mark as not spam" and/or "Move to inbox". **Create a new contact** In your email client add our address to your contacts list. This signals to your mail provider that emails sent from this address should be trusted. **Reply to newsletters** When you respond to an email you receive, your inbox treats that as a signal that emails to-and-from this address should be trusted. **Check with your mail provider** If you have a corporate or government email account, reach out to your IT department and ask them to allow emails to be received from our address. If you've done all this and you're still having trouble, let me know. If you use Gmail, here's how to access saved replies: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/01/email-templates-settings-gmail.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/01/Screenshot-2023-01-26-at-13.23.34@2x.png) Ghost does some heavy lifting for you to [keep your email list clean](https://ghost.org/changelog/automatic-list-cleaning/) and delivery rates high — but there's also several things you can do to ensure your awesome newsletters land in inboxes as often as possible. Here's three bonus tips: 1. **Use a free spam checker tool** [like this one](https://glockapps.com/spam-testing/?ref=ghost.org) to check your email content before hitting send.The content of your email plays a huge role in how any email client (not just Gmail) decides to filter your emails. These tools are useful pre-send checks to prevent newsletters from being flagged as spam. 2. **Ask new members to save your newsletter sender address** as a saved contact on your [welcome page](https://ghost.org/help/welcome-pages/?ref=ghost.org), right when a new member signs up. 3. **Encourage your audience to respond to your newsletters** by asking questions, or requesting feedback. Every time someone replies to your email, it helps send positive trust signals. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Ghost VS Code extension URL: https://ghost.org/changelog/vscode-extension/ Last updated: 2023-01-30T16:51:03.000Z We've released an official [VS Code extension](https://marketplace.visualstudio.com/items?itemName=TryGhost.ghost&ref=ghost.org) to help make Ghost theme editing and creation as easy as possible. Whether you're a seasoned theme developer or an occasional theme tinkerer, you're going to want to check out this free tool 🔧 ## A guided tour A fantastic way to learn how to build Ghost themes is to see how others have already done it. All of Ghost’s [official themes](https://ghost.org/themes/?tag=Official&ref=ghost.org) are open source and [available to download](https://github.com/tryghost/?ref=ghost.org), be studied, and modified. The new VS Code extension can help you on this journey by providing explanations for what’s going on in a theme. 0:00 / 1× Hover over any Ghost syntax to get a quick explanation, example, and link to the docs for more information. This feature is enabled automatically for any Ghost template file you open in VS Code! ## Keep focused on the code You’ve got your theme opened in the editor. You’re making great progress on your post template. You’re in an absolute flow state. But you can’t remember how to customize the output of a post’s tags. Rather than leaving your editor, searching on Google for the answer, and returning to your theme — now you can search and access Ghost’s official docs right from the editor. Open VS Code’s command palette and search for `ghost` or `docs`. Choose **Search Ghost’s documentation** and enter your search term. Select what you’re looking for, and it’ll open right there in the editor 🪄 0:00 / 1× ## You autocomplete me Both newbies and power users will appreciate the autocomplete feature. Start typing any Ghost helper like `if` or `for`, and the extension will autocomplete your code with the proper syntax and prompt you to choose from relevant options. Autocomplete speeds up your development process and helps you to recall options for more complex helpers like `{{#get}}`. 0:00 / 1× What’s more, the extension also supports dynamic autocompletes that use your theme’s `package.json` configuration to generate custom snippets for [responsive images](https://ghost.org/docs/themes/assets/?ref=ghost.org) and [custom settings](https://ghost.org/docs/themes/custom-settings/?ref=ghost.org). --- The Ghost VS Code extension is like having a course in Ghost theme development with a bunch of time-saving shortcuts, all in one place, where you need it the most. Discover all of the neat features for yourself 👇 [Download the extension](https://marketplace.visualstudio.com/items?itemName=TryGhost.ghost&ref=ghost.org) ![](https://media.tenor.com/bQCHJwgCNuMAAAAC/kitten-cat.gif) **Looking for more developer resources?** Check out the [tutorials](https://ghost.org/tutorials?ref=ghost.org) and [sign up for the Build with Ghost newsletter](https://ghost.org/tutorials/?ref=ghost.org#/portal/signup) to keep up to date with the latest tips and tricks in Ghost development. ### Automatic list cleaning URL: https://ghost.org/changelog/automatic-list-cleaning/ Last updated: 2023-01-17T13:55:07.000Z Ghost now helps to keep your email list clean and your deliverability rates high, with automatic list cleaning. If emails sent to a member consistently fail, or are marked as spam, then emails for that account will be automatically disabled. In the event that emails are mistakenly disabled for a member, they can easily re-enable them directly within their account settings. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/01/email-disabled-1.png) Staff users in Ghost can also [view and manage disabled emails](https://ghost.org/help/disabled-emails?ref=ghost.org) from within admin. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Taste and Episode themes URL: https://ghost.org/changelog/taste-episode/ Last updated: 2022-12-15T01:45:44.000Z We just released two brand new official themes. Designed specifically for food writing and podcast creators, the Taste and Episode themes are free and available to install today! ## Taste Taste is an elegant, minimalist Ghost theme focused on food writing, that is integrated with memberships, newsletters, comments, search, and everything else you need to share recipes on a food blog. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/12/food-theme-playful.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/12/taste.ghost.io_--4-.jpg) Taste is fully responsive and styled, and can be easily adjusted to suit your brand in the design settings in Admin. [Preview this theme](https://ghost.org/themes/taste?ref=ghost.org) ## Episode The Episode theme allows podcasters to create a website to showcase the latest episodes, and give listeners the opportunity to support their work directly through memberships. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/12/episode.ghost.io_--6-.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/12/episode.ghost.io_--7-.jpg) With Episode, you can quickly add your own custom styles and background colors, and add links to popular external platforms like Apple Podcasts, Google Podcasts, and Spotify. [Preview this theme](https://ghost.org/themes/episode?ref=ghost.org) ### Audience feedback URL: https://ghost.org/changelog/audience-feedback/ Last updated: 2022-11-02T16:29:38.000Z The new audience feedback feature gives your readers the opportunity to react to your content directly at the bottom of a newsletter. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/10/Email-Screenshot.png) Now you can establish a direct connection with your audience when it matters most — and gain a better understanding of the types of content that are resonating with your audience (and those that aren't). 0:00 / 1× Audience feedback can be enabled in the newsletter settings, and the reactions of your audience can be found in the post analytics for each individual newsletter. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/10/Post-Analytics-More-Like-This.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying audience feedback right away! If you're a developer, self-hosting Ghost, you'll need to [](https://ghost.org/docs/update/?ref=ghost.org)[upd](https://ghost.org/docs/update/?ref=ghost.org)ate to the latest version to get access to everything that's new. ### Member growth sources URL: https://ghost.org/changelog/member-growth/ Last updated: 2023-08-28T10:09:14.000Z Analytics in Ghost just got a major update, giving you the tools you need to understand how your audience is growing! The new member growth features allow you to understand the most popular referral sources where people discover your work, as well as which post or page people were reading at the time they decided to signup. Let's take a look at the new analytics you can find in Ghost Admin, starting today. ## Top sources On the dashboard, you can now see the top sources driving audience growth from around the web. These stats are filterable by 7, 30, and 90 days, and show top sources for both free and paid signups. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/10/top-sources-widget.png) This gives you an overview of how many of your member signups are being driven from social media, referrals from other websites, from your SEO efforts, or any other type of external source. Read more about [how to create a custom source](https://ghost.org/help/custom-sources/?ref=ghost.org). ## Post analytics Over on your post analytics, you can now see the number of free signups and paid conversions generated by that specific post, along with the referral sources where those members came from — giving you a deeper understanding of how successful each piece of content is, and how people are finding your work. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/10/post-analytics.png) If you want to see exactly which members signed up from a specific post, you can also use a filter on the members list. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/10/filtering-members-source-1.png) ## Individual member stats For every new free member signup, and every new paid subscription, Ghost now shows you where on the web that person came from as well as what post or page they were on when they converted, right on the member profile page. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/10/member-profile-signup-info-highlighted-border.png) --- A major benefit of having memberships on a content website is turning anonymous visitors into logged-in members, which in turn means you get access to *reliable* data about where your audience comes from, and what content converts the most people. This provides new ways to understand your business: - Being able to see which of your marketing efforts are paying off through growth sources allows you to decide where to focus your efforts. - Knowing which content is converting the most provides valuable insights about what content to produce next. There's no need to install any integrations, or setup goals for member signups. In Ghost, member growth sources are tracked automatically, and presented to you exactly where you need it. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying member growth sources right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Update links in email newsletters URL: https://ghost.org/changelog/update-links/ Last updated: 2022-10-24T17:11:41.000Z Have you ever delivered an email newsletter only to find you included a broken link? Whether it was a typo, or a link to a tweet that has since been deleted, it happens — we've all been there. Wouldn't it be nice if you could fix links in email newsletters in the same way you can on a published post? Well, now you can. The latest updates in Ghost make it possible to edit any link in a newsletter, even after it has been delivered to your audience. Now you never have to worry about broken links in emails again. 0:00 / 1× All you need to do is click into the post analytics, find the link that needs to be updated, and click to edit 🔮 --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Newsletter click analytics URL: https://ghost.org/changelog/newsletter-clicks/ Last updated: 2022-10-19T20:51:42.000Z By popular demand, we just shipped email newsletter click analytics, which means every post sent as a newsletter shows both opens and clicks, directly on your post list. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/09/Post-List-Screenshot.png) You can also dig deeper into which links are being clicked, and how many times, by viewing the post analytics page for each newsletter. This shows the total number of unique members that clicked on any link, plus a full breakdown of how many members clicked each individual link in your newsletter ✨ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/09/Post-Analytics-Screenshot-1.png) Want to drill down even further? No problem. Click any metric in the engagement section to get a full breakdown of exactly which members opened or clicked your newsletter. 0:00 / 1× Email click analytics is enabled by default, and can be optionally disabled in the settings in Ghost Admin. Read more about [newsletter click analytics](https://ghost.org/help/post-analytics/?ref=ghost.org) in Ghost. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying email click analytics right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to access everything that's new. ### History log URL: https://ghost.org/changelog/history-log/ Last updated: 2022-10-19T20:52:01.000Z The new history log in Ghost Admin allows you to see all staff user events that take place on your site in one place. Perfect for staying in the loop about when data is added, updated or changed by your team. Starting today, you can see changes made to posts, pages, tags, integrations, tiers, offers, settings, and staff member profiles, with more coming soon! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/09/history-screenshot.png) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and check out their History logs right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Solo theme URL: https://ghost.org/changelog/solo/ Last updated: 2022-09-13T17:56:11.000Z We've released a brand new theme focused on showcasing the work of an individual writer or creator. The [Solo theme](https://ghost.org/themes/solo?ref=ghost.org) is fully integrated with memberships, newsletters, comments, search, and everything else available with Ghost out-of-the-box. It also comes with thoughtful design settings that allow individual publishers to make the theme their own, with custom styles. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/09/solo-changelog-1.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/09/solo-changelog-2.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/09/solo-changelog-3-1.jpg) Get started today by taking the Solo theme for a spin on your Ghost site. [Install the Solo theme](https://ghost.org/themes/solo?ref=ghost.org) ### Email notifications URL: https://ghost.org/changelog/email-notifications/ Last updated: 2022-10-19T20:52:26.000Z Ever wished you could get a quick email alert to let you know when you have a new signup, paid subscription, or cancellation? Now you can, with email notifications built directly into Ghost. Staff users can choose which notifications they'd like to receive from within their profile settings: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/Screenshot-2022-08-29-at-10.51.32@2x.png) \- And, notification emails contain helpful context about what just happened: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/notification-1.png) This should make it easier for you to keep track of what's happening with your site and your audience, without needing to log in to see check if something changed. For larger sites with many members where email notifications might be overwhelming, you can always set up more powerful custom automated notifications to go anywhere you like, [using Zapier](https://ghost.org/integrations/zapier/?ref=ghost.org). --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Free trials of premium content URL: https://ghost.org/changelog/free-trials/ Last updated: 2026-02-04T21:59:57.000Z Today we're making it even easier for publishers and creators to gain new paid subscribers to their premium content, with the introduction of free trials. We just shipped **three** new ways to offer free trials natively in Ghost, depending on your audience and your preferences. ## Free trials for tiers You can now add a free trial to any premium tier in Ghost, which will be enabled for all new signups, collecting a credit card on signup - and then charging once the free trial is over. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/add-free-trial.png) ## Free trials using special offers If you don't want free trials on for *all* new signups, you can still create a special offer in Ghost offering a free trial to a limited set of users, or for a limited time, to encourage new signups. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/free-trial-offer.png) ## Time limits & upgrades on complimentary plans It's always been possible to give a members complimentary access to a Ghost site. So far, though, comp status hasn't had any limits or settings, effectively always giving people free lifetime access. Now, you can set an expiry date on comped subscriptions, giving you a way to offer a different type of free trial to members that *does not* require a credit card — and, members on complimentary subscriptions are able to change their plan to a paid subscription if they'd like to. 0:00 / 1× Upgrading from a Complimentary plan to a paid plan using Portal Read more about how to implement free trials in your publication: [Free trials in GhostOffering free trials to your members is a great way to grow your paid audience, by giving them the chance to try out your premium content for free before committing to a subscription. There are three ways to offer free trials natively in Ghost, depending on what you are hoping![](https://ghost.org/help/content/images/size/w256h256/2021/03/favicon.png)Ghost Help CenterTeam Ghost![](https://ghost.org/help/content/images/2020/12/topography-1.svg)](https://ghost.org/help/free-trials/?ref=ghost.org) --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [upgrade](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Comments for Ghost URL: https://ghost.org/changelog/native-comments/ Last updated: 2026-05-21T17:41:15.000Z Today we're introducing native commenting in Ghost, so you can invite your members to participate in community discussions directly on your publication. After [Search](https://ghost.org/changelog/search/), this was one of our most requested features of-all-time, so as well as giving you a first look at the feature, we've included a longer behind the scenes section at the end of this post about how (and why!) this was made. 0:00 / 1× Any Ghost publication with comments enabled displays a commenting area at the bottom of each post, where members are prompted to start or join the conversation by subscribing or signing in. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/start-conversation-1.png) Members who are creating their first comment will be asked to fill out their name and expertise, to add more context and depth to each contribution. ![Add expertise to Ghost comment profile](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2023/02/CleanShot-2023-02-08-at-16.36.01.png) Members can reply to comments, like comments, and edit or delete their own comments. To help increase engagement, there are also built-in email notifications every time someone replies to a members comment, which can be toggled on or off from the member profile page in Portal 🔥 Authors also receive email notifications when conversations are happening on posts they have published. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/comments-in-ghost-1.png) --- ### Community moderation We built Ghost Comments with features to help you keep your community healthy. - **On-page moderations tools** — Staff users with the owner or administrator role can moderate comments right from the comment thread. - **Comment reporting** — Site owners are emailed when any comment is reported by another member. - **Member-only comments** — Comments can only be created by logged-in members, which helps protect you from spam and negativity. Before introducing comments on your publication, it's a good idea to put together some community guidelines for your members. We've put together a short guide and template that you can steal and modify: [Community guidelines — fostering valuable contributionsLaunching a community around your creative work? Get a head start with this adaptable Community Guidelines template & promote valuable contributions.![](https://ghost.org/resources/content/images/size/w256h256/2021/10/ghost-orb-pink-transparent-01-1.png)Ghost NewsletterKym Ellis![](https://images.unsplash.com/photo-1577563908411-5077b6dc7624?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGRpc2N1c3Npb258ZW58MHx8fHwxNjYwMTY1NDUx&ixlib=rb-1.2.1&q=80&w=2000)](https://ghost.org/resources/community-guidelines-template/?ref=ghost.org) --- ### Get started with comments 💬 [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [upgrade](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. Comments are already integrated into all official themes (you'll need to [update](https://ghost.org/help/update-official-theme/?ref=ghost.org) to the latest version of your theme). Then, all you need to do is [turn commenting on](https://ghost.org/help/commenting?ref=ghost.org) from the `Settings → Membership` page in Ghost Admin. If you're using a premium or custom theme, comments can be added to the `post.hbs` template using the new `{{comments}}` Handlebars helper — read more in the [theme docs](https://ghost.org/docs/themes/helpers/comments/?ref=ghost.org). Read more about free trial signup strategies: [How to grow a creator business with free trial signupsFind out how to approach a free trial acquisition model for your independent publishing business, including how to implement a free trial.![](https://ghost.org/resources/content/images/size/w256h256/2021/10/ghost-orb-pink-transparent-01-1.png)Ghost NewsletterKym Ellis![](https://images.unsplash.com/photo-1541701494587-cb58502866ab?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDl8fGFic3RyYWN0fGVufDB8fHx8MTY2MTM1NjM0NQ&ixlib=rb-1.2.1&q=80&w=2000)](https://ghost.org/resources/free-trials-for-publishers/?ref=ghost.org) --- ## Behind the scenes: Building comments For those of you that have been using Ghost for a while, and can remember all the way back to 2012, [the very first blog post about Ghost](https://john.onolan.org/ghost/?ref=ghost.org) touted "no comments!" as a key product decision. Even in the years since then, we've been pretty consistent about saying "no" when people requested it. So, what changed? Two big things. **First** — As Ghost has evolved over the last few years to handle memberships, premium subscriptions and email newsletters, *community* has become a much more important aspects of what creators and publishers are looking for in a platform. Today, there are a huge number of Ghost sites popping up around all sorts of different niches, but one thing they all have in common is communities of highly engaged audiences with similar interests. This is a very different perspective to the traditional "random stranger on the internet comments on blog post" model of the past. **Second** — The biggest problem with building comments, historically, has been automated spam. It was the #1 reason that comments was excluded from the original idea of Ghost, because forms on the internet fundamentally get abused by spammers and it takes a Goliath amount of time and energy to (largely unsuccessfully) prevent it. There are entire companies devoted to trying to prevent comment spam. Fortunately, we're now able to get around this problem entirely thanks to member authentication that already exists in Ghost. The feature is not exposed publicly to strangers (and bots) on the internet, it can only be used by registered, verified members of a Ghost site. Based on these two things we changed our mind about the idea of building comments, and decided to take a swing at building something beautiful and minimal for all Ghost publishers. The first versions of both Search and Comments were built in the space of 5 days by two product teams when we all got together for a team retreat last month (our first since 2019). But... that's not quite the whole story. It actually took us many (many) cycles of building APIs, UI components, membership authentication, and email subscriptions to get all the pieces in place that *allowed* us to take only 5 days at the end to put together these two features. 10 years to overnight success and all that. As with Search, we're very aware of the fact that a simple/minimal approach we've taken with Comments won't be enough for every type of publisher — so we've built it with extensibility in mind. The new `{{comments}}` helper provides an ideal hook for external integrations to embed their own code, and we're working towards making it possible to completely replace Ghost comments with powerful 3rd party systems like [Cove](https://cove.chat/?ref=ghost.org) or [Discourse](https://www.discourse.org/?ref=ghost.org). --- For now, though, we're looking forward to seeing how you use comments within all your respective communities! More updates on the way. 💬 ### Ghost Explore URL: https://ghost.org/changelog/explore/ Last updated: 2022-08-11T19:49:02.000Z We're really excited to announce the launch of a brand new directory to showcase the work of creators from all over the world. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/ghost-explore-2.png) [Ghost Explore](https://ghost.org/explore?ref=ghost.org) is the new home of the Ghost creator network — built to give creators and readers alike a place to discover their favourite publications. Whether you're looking for your next read, or looking for inspiration, there is something here for everyone. ## How can I get featured? Anyone running a website using Ghost (at least version **5.8** or higher) can add themselves to Explore. It takes just a few minutes to get featured prominently on Ghost.org, and throughout the wider Ghost ecosystem. All you need to do is click **Add my site** at [ghost.org/explore](https://ghost.org/explore?ref=ghost.org), and follow the steps provided. Once you grant permission to create a connection to your website, Explore will pull in data to populate the directory, and give you the choice to decide what data is shared publicly on Ghost Explore. Sites that choose to share more data (like number of members and/or revenue) are featured more prominently, at the top of the Ghost Explore directory. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/ghost-1.jpg) #### Ghost Explore The official directory of Ghost creators from all over the world. Add your publication to the Ghost Explore directory. [Submit your site](https://ghost.org/explore?ref=ghost.org) For more details about how to add your site, how sites are ranked, and terms of service, check out the [Explore about page](https://ghost.org/explore/about/?ref=ghost.org). ## Growing an indie business Building an independent publishing business using open source software like Ghost means having full ownership of your brand, ultimate flexibility over your work, and less reliance on social networks that can change the rules on a whim. We built the Explore directory to create a network effect, giving you more tools to grow your business, and promote your work far and wide. This is just the beginning of the Ghost creator network — with plans to build more new features to help you grow an audience and track where your visitors and members are coming from 👀 ### Premium previews for email newsletters URL: https://ghost.org/changelog/email-public-previews/ Last updated: 2022-10-19T20:52:55.000Z Encourage free members to upgrade to a paid subscription. Now, when you deliver a paid-members-only post to a someone without a subscription, they'll be able to read a free preview right in their inbox. At the end of the preview, free members will be invited to subscribe to continue reading. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/Untitled-2.webp) All you need to do is insert the public preview divider line in your post to control where the free preview cut-off should be, and you're all set. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/08/preview.webp) Paid members will see the full post content, while free members will only see the content above the public preview line — both in email and on the web. 💡 **Pro-tip —** If you're trying to encourage free members to consider upgrading to a paid subscription: *Longer* free previews typically have a higher conversion rate, as people usually become more invested the more they read. --- [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) users can log in and start enjoying all of this right away! If you're a developer, self-hosting Ghost, you'll need to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version to get access to everything that's new. ### Native search URL: https://ghost.org/changelog/search/ Last updated: 2022-07-14T03:49:24.000Z We've just introduced native Search in Ghost to give your readers fast and intuitive access to find content anywhere across your publication. First, a quick overview of how this new feature works. After that, a few more details about how (and why) we built and released this feature, for those amongst you who have been around for a while and asking us to create it! --- Ghost Search works out-of-the-box with *any* theme, and allows your readers to search across all published posts, tags and authors. 0:00 / 1× Adding Search to a Ghost site is easy, and can be done in two ways: 1. Add a `#/search` link to your site navigation in Ghost Admin, and you'll have a clickable navigation link that opens the search interface. Read more in our [help docs](https://ghost.org/help/search?ref=ghost.org). 2. Add a `data-ghost-search` attribute to any element in your theme (a 🔎 icon, perhaps?), and you'll have a clickable button to open the search interface. Read more in our [developer docs](https://ghost.org/docs/themes/search?ref=ghost.org). Once added, people visiting your site will easily be able to find what they're looking for with a single click — or even open the search UI directly by using the `Ctrl/Cmd` \+ `K` keyboard shortcut! All [official Ghost themes](https://ghost.org/themes/?category=official&ref=ghost.org) have been updated to support Search. All **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** sites already have access to Search, and self-hosted users can [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version using Ghost-CLI. --- ## Behind the scenes: Why did it take so long to build Search? A Search function has been our most requested feature of-all-time, over [on the Ghost forum](https://forum.ghost.org/c/ideas/5?ref=ghost.org). Everyone has been asking for it, for nearly 10 years. So, why didn't we do it sooner? For developers and technical users, here's a bit of history. Search is one of those features where if it works well, it's fantastic, but if it works poorly — it's worse than having no search feature at all. Anyone who has used the search function in older open source content management systems will remember all too well how often you would search for an exact post title and get hundreds of results back... except for the post you were searching for. There are entire companies with *thousands* of developers dedicated to doing search well, like [Google](https://google.com/?ref=ghost.org), [DuckDuckGo](https://duckduckgo.com/?ref=ghost.org), and [Algolia](https://algolia.com/?ref=ghost.org) — so for a long time, with a product team of (until very recently) only *4* product engineers, we didn't feel we could deliver search to a high enough standard to be useful. We also didn't like the idea of every single theme having to implement a custom, inconsistent UI for search results - which is a poor experience on lots of other platforms. The last thing we want to do is ship something half baked that people have been asking for, only to be overwhelmed with complaints about how bad it is. A few things have changed in the last couple of years. First, we built a [Content API](https://ghost.org/docs/content-api/?ref=ghost.org) for Ghost which makes it easy to interact programmatically with a site's full content archive. After that, we added [custom integrations](https://ghost.org/integrations/?ref=ghost.org), so 3rd party services could generate their own API keys to work with Ghost content and settings. Then, we figured out how to build embedded UI components for the front-end of Ghost, which could sit cleanly alongside any theme - eg. our [Members Portal](https://ghost.org/changelog/portal/). Eventually, all that was missing was a link to connect these different concepts together. The Ghost front-end is rendered server-side, and didn't have its own Content API key to be able to talk to the Ghost back-end. A handful of clever, well-implemented [3rd party search plugins](https://github.com/jamwise/ghostHunter?ref=ghost.org) for Ghost had popped up — but they all had the same limitation: The site owner would have to go and manually generate an API key, then edit their theme files manually, and paste in the key to get Search working. Not the best experience. This all changed in [Ghost 5.0](https://ghost.org/changelog/5/) — as we added a default Content API key, included automatically and by default in every Ghost front-end. Finally, the whole Ghost team got together last week for the first time in 3 years(!) for a retreat in sunny Spain, and we set out to build a simple, high-quality search function that would work across any Ghost site. That's what we're launching today. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/07/DSCF2803.jpg) It still comes with a few limitations, though. The search feature indexes post titles, excerpts, authors and tags - but it does not search across post content, and it can only index 10,000 posts to make sure the performance is blazing-fast. These limitations are where the difficulty of implementing a search feature goes from "*relatively easy*" to "*oh shit*". Our plan for the next iteration of Search is to make it extensible, so the UI remains largely the same - but it will be possible to completely replace the back-end search functionality and index with something more technically sophisticated (like [Algolia](https://algolia.com/?ref=ghost.org)) for large/hungry publishers who need even more power. For the vast majority of publishers and creators, though, the native Search implementation launched today will be everything they need. --- **A very special thanks to Ghost team member: Sodo.** In 2020 [we acquired](https://ghost.org/changelog/iveel/) a very popular Ghost theme company called IVEEL, whose founder—Sodo—joined the team and immediately took over the care, maintenance and development of all our official Ghost themes. Sodo had written his own custom search feature in all IVEEL's themes before joining Ghost, and it was that code that formed the basis (and now the core) of the official Search feature in Ghost. --- Thanks for your patience while we worked hard to get this right! And, of course... Search was not the only highly-requested feature that we worked on during our team retreat. Stay tuned! ### Ghost 5.0 URL: https://ghost.org/changelog/5/ Last updated: 2025-08-03T00:43:05.000Z We released the first prototype of Ghost on April 29th in 2013\. Today, almost exactly 9 years later, we're releasing Ghost 5.0\. **So what's new?** Well. There's a short version and a long version, and we wrote down both so you can either save time, or go deep. Choose your own adventure. --- # The short version If you just want the highlights of what the deal with 5.0 is, here's the lowdown: - In the last 2 major versions of Ghost we introduced (first beta, then public) memberships, premium subscriptions, and email newsletters. In Ghost 5.0 we've significantly expanded those capabilities with support for custom premium tiers, multiple newsletters, special offers, detailed audience segmenting, and expanded analytics. - In the last year we added (lots) more custom cards to the editor, now with native support for videos, podcasts, gifs, products, callouts, headers, and even NFTs (though that last one turned out to be pretty marmite). It's the same clean, signature Ghost editor — but now it can support much more diverse types of content. - We've upgraded existing themes and introduced some powerful new themes, including one particularly nice one for news sites called [Headline](https://headline.ghost.io/?ref=ghost.org). - As well as design improvements throughout admin, we also added design settings for themes as well as email newsletters right inside Ghost - so it's even easier to make quick changes without needing to touch any code. - Speed. Overall performance under load is up 20%+ while resource use is down 22%. Ghost was already really fast, but we've made quite a few optimisations that have continued to make things faster. - For developers: Ghost's production stack is now Ubuntu 20, Node 16, MySQL8\. If you want to try any of these things (and the many more smaller improvements) go ahead and sign up for a free trial on Ghost.org and see for yourself. It's live now. Or, if you want the long version and some of the story behind Ghost, keep reading. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/05/dashboard.png) Ghost 5.0 # The long version Last month Ghost turned 9, and now feels like a good time for a little reflection on the journey so far. We've learned so much after building this thing for almost a decade, and have never been more proud of the product or the team behind it than today. Ghost's mission from the start has been to create a focused platform for professional publishers, and that mission remains as strong as it ever has been, though the product has evolved significantly from [humble beginnings](https://john.onolan.org/ghost/?ref=ghost.org). Back in 2015, a full 7 years ago, we tried to imagine what the future might mean for "professional publishers" on the internet. Medium was as popular as it had ever been, had recently launched an iOS app, and was constantly touting big name authors who they were paying large sums of money to write on their site. We got compared to them a lot, but never shared their vision of a future where all the best writing on the internet lives under a single ubiquitous Silicon Valley brand. So we ignored the blogging-social-network holy war, and instead focused on making a better product. In the end, we mapped out where we thought things were headed, summarised here in the form of a (very bad) 7 year old keynote slide. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/05/Screenshot-2022-05-22-at-23.00.37@2x.png) We'd solved the top of the diagram with a modern CMS and a great editor, but so had about 10 other products with increasing popularity. We needed a bigger purpose for Ghost, and this diagram has been the map we've used to find that purpose ever since. The "find and drive profitable action" language grates a little, in hindsight. We were looking closely at early movers in subscription publishing like Ben Thompson and [Stratechery](https://stratechery.com/?ref=ghost.org), but we also imagined that there could be companies whose publishing motivation is content marketing, or free publications like [Wirecutter](https://www.nytimes.com/wirecutter/?ref=ghost.org) who might care more about affiliate revenue. "Profitable action" was the rather ugly catch-all term. So, with our new plan in place, we started building. Sort of. In 2015 Ghost had 3 product engineers, $36k MRR, and no other funding. There was no way to "take a big swing" or throw lots of people at the idea. We had to be content with quiet, slow, incremental, unglamorous progress. It took us 3 years of work improving the existing product before we could afford to hire more product engineers to take on new ideas, and a further 2 years to build and launch a [first beta version](https://ghost.org/changelog/3-0/) of memberships inside Ghost — by which point the creator economy was *just* starting to take off, and funded startups were starting to appear in the space. Then, last year, after an incredible amount of work, we finally launched the [first public version](https://ghost.org/changelog/4/) of the Ghost we had imagined all those years ago, designed for the full lifecycle of professional publishing. We launched and then waited to see if we'd been right about where the future of publishing was headed. Our measure of success to decide whether or not it was worth continuing down this path was whether we could turn Ghost into a "platform" according to the Bill Gates definition: > A platform is when the economic value of everybody that uses it, exceeds the value of the company that creates it. Then it’s a platform. We didn't have to wait long. --- > This time last year — we set a goal to have revenue generated by [@Ghost](https://twitter.com/Ghost?ref%5Fsrc=twsrc%5Etfw&ref=ghost.org) for others, exceed our own. Now, 12 months later, we've hit that goal and gone even further. 📈 > > Today, Ghost revenue: > $4,200,000 ARR > > Creator revenue, generated \*using\* Ghost: > $10,200,000 ARR > > 2022 LFG 🤘 [pic.twitter.com/NAIW2Kjsmg](https://t.co/NAIW2Kjsmg?ref=ghost.org) > > — John O'Nolan 🏴‍☠️ (@JohnONolan) [January 7, 2022](https://twitter.com/JohnONolan/status/1479484112729739264?ref%5Fsrc=twsrc%5Etfw&ref=ghost.org) As of today, that number is now somewhere North of $12M ARR — and the rate at which new creators and publishers are growing on Ghost is accelerating. Fast. Which leads us to... # Ghost 5.0 Almost all of our work since the last major release has been a sprint to keep up with overwhelming demand. Now, we don't just have new creators on Ghost, but established brands and publishers with multi-million dollar revenue streams looking to grow their businesses. So, the focus of Ghost 5.0 has been on expanding the foundations of memberships and subscriptions to meet the needs of those publishers, and helping them build healthy, sustainable businesses around their audience. From world-famous publishers like David Sirota, to YouTubers with millions of subscribers like Ali Abdaal, to forward thinking startups like Buffer who specialise in incredible brand journalism. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/05/Screenshot-2022-05-23-at-00.07.28@2x.png) --- Based on the feedback we've had in the last year, we've heavily expanded Ghost to meet the needs of those publishers and make it work better for them. # Here's a rundown of what's new - Last year we finally made the **dashboard**! This year we made it much better. Now there are detailed audience analytics and insights to help you better understand how your publication is performing (with more on the way). - **Multiple newsletters.** Now you can create multiple different newsletters for a single site, and allow your members to choose which they would like to receive. You can customise the design and branding for each one, individually. - The **publishing flow** has been completely redesigned, making it easier for editors to publish or schedule content, deliver newsletters, or a combination of the two. It's both simpler and more powerful than it was before. - **Custom tiers** mean you can offer more ways for your audience to become paid subscribers, at different levels with monthly and yearly billing intervals. - You can also now create **offers** to incentivise new paid subscribers with special promotions and discounts. - **Public preview dividers** allow you to givelogged-out visitors a preview of protected content, of any length you desire. - Advanced **member filtering** means you can segment your audience in lots of different ways to understand them better, and deliver newsletters to exactly the right people. - **Bulk actions** are new in the members dashboard, so you can apply labels, export, or unsubscribe groups of members with a few clicks. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/05/offers.png) - New **design settings for email** help you keep your newsletters on-brand, and swanky AF. - Plus, you can deliver an email without publishing content on your website. Perfect for weekly roundups, special offers, surveys, or private news. - You can also create **invite-only communities** by turning open member signups off, so only people you manually invite can join your site. - Free email newsletters can now contain calls-to-action to promote premium subscriptions to free members. - There are 12 new **editor cards**, including gifs, buttons, callouts, audio, video, downloadable files, products, and more. - **Grammarly** is now supported natively, so you can easily copy-edit your work as you write, right inside the Ghost editor. - Ghost theme developers can define their own **custom design settings**, so you can update the look and feel of your site right inside admin. - We released several brand **new themes** for news publishers and newsletters, including: Journal, Digest, Bulletin, and Headline. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/05/headline.png) # Developer changes On top of all the user-facing changes, we also have some exciting updates and changes for developers who build-on and work-with Ghost: - We've made a brand new space for [**developer tutorials**](https://ghost.org/tutorials?ref=ghost.org), to help people who are building with Ghost get up to speed. We're adding lots of new content here, from beginner level all the way through to advanced guides. - **Members and Tiers** are both out of beta, with stable APIs and expanded documentation. We'll be expanding these even further in the coming months. - Ghost **performance** has been boosted in a pretty big way. Number of reqs/sec is up 20%, with 15% less memory usage at boot, 22% less at peak, and 16% faster boot time. More features with less overhead is always nice. - Ghost's official production stack is now **Ubuntu 20, Node 16, and MySQL 8**. The big change here is the database layer. We used to support both SQLite and MySQL 5 in production, now we're all-in on MySQL 8 so we can double down on performance optimizations. Ghost stores a hell of a lot more data than it used to, and this change is really important to keep the architecture stable. - *Footnote about other environments*: Ghost *can* work with other operating systems, node versions, and databases (particularly those supported by [Knex](https://github.com/knex/knex?ref=ghost.org)) - but as a small team, we only document and support one narrow stack that we know works really well. As always in open source: Contributions welcome. - If you're a **theme developer**, [gscan](https://gscan.ghost.org/?ref=ghost.org) has been updated so you can test your theme for compatibility against 5.0. - In Ghost 5.0 there are no longer different API versions in a single install. For the most part the API is stable with only additions and changes to newer features. Breaking changes are always made in majors. [More details here](https://ghost.org/docs/changes?ref=ghost.org). --- # What's next? Well, for a start we're going to take a breather for a bit. It's been a pretty crazy few months here, and the whole team has earned some rest. After that we'll come back, take stock of all your feedback, and get back to work. We're a team of 31 people now, spread all over the world, and Ghost's own revenue is now about $5M/year (up almost $2M from this time last year). We're still an independent, self-funded nonprofit organisation that can never be bought or sold. And, everything we do is still decentralised and open source. Can't count how many people said "that will never work" - but we're still here. Each year there seems to be a new hype-cycle competitor that pays wild sums of money to get people to use their product, tries to centralise creators under a proprietary iOS app, and convince everyone that their closed network is going to solve everything – but each year we stick to the same thing we've always stuck to: Just quietly making a better product. If that sounds like the sort of work you'd enjoy, we're [actively hiring JavaScript developers](https://careers.ghost.org/?ref=ghost.org) to join the open source product team and help build what's next. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/05/team.jpg) The team that made 5.0 possible + Not pictured: Rish, Djordje, Bob, Simon & Emily --- # How to get Ghost 5.0 **All new sites on Ghost(Pro) are running 5.0\.** You can spin up a new site in a few clicks and access all of the latest features with a [14-day free trial](https://ghost.org/pricing/?ref=ghost.org). **Already on Ghost(Pro)?** Log into Ghost.org and click the "Update to 5.0" link your admin panel, any time. Get in touch with support if you have any trouble. **Self-hosting Ghost?** Update to 5.0 using Ghost-CLI — [here's the Ghost update guide](https://ghost.org/docs/update/?ref=ghost.org). Keep in mind, this is a major version with breaking changes. Please allow some extra time and make backups. --- [![Ghost 5.0 - Publishing, newsletters, memberships & subscriptions | Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=347190&theme=dark&period=daily)](https://www.producthunt.com/posts/ghost-5-0?utm%5Fsource=badge-top-post-badge&utm%5Fmedium=badge&utm%5Fsouce=badge-ghost-5-0) ### Custom sender names for newsletters URL: https://ghost.org/changelog/custom-sender-name/ Last updated: 2022-05-03T15:35:27.000Z In the latest release, we've added the ability to set a custom sender name for your email newsletters. Your sender name can now be set from the newsletter settings page in Ghost Admin. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/04/sender-name-in-ghost.png) This gives you full control of the sender name that appears in your subscribers inboxes, to help improve open rates and add a personal touch to your newsletter. Learn more about sender name best practices in this resource: [Email sender name best practices for newslettersFind out how to set the best sender name for your newsletter and increase your open rates.![](https://ghost.org/resources/favicon.png)Ghost NewsletterKym Ellis![](https://ghost.org/resources/content/images/2022/04/hello-i-m-nik-MAgPyHRO0AA-unsplash.jpg)](https://ghost.org/resources/email-sender-names/?ref=ghost.org) ### Local news theme URL: https://ghost.org/changelog/local-news-theme/ Last updated: 2022-03-29T13:47:55.000Z We've released a brand new Ghost theme for local news publishers that is free and ready to use. The [Headline](https://ghost.org/themes/headline/?ref=ghost.org) theme takes a thoughtful approach to displaying large amounts of content across various areas of coverage, and can be adapted to showcase your most popular topics. With a few small setting changes, Headline can be adapted to suit almost any style of news publication, so you can still make it your own. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/headline-1-1.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/headline-2-1.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/headline-3-1.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/headline-4-1.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/headline-5.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/headline-6.png) Get started today by installing Headline on your Ghost site and taking it for a test drive. [Install Headline](https://ghost.org/themes/headline/?ref=ghost.org) ### Activity feed updates URL: https://ghost.org/changelog/activity-feed/ Last updated: 2022-03-21T20:43:02.000Z In the latest release, we've expanded upon the member activity events shown on the dashboard, giving you full access to all of your site's events. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/activity-feed-3.png) The activity feed can be accessed from the dashboard, or from any individual member profile, and includes all events such as new signups, paid subscriptions, email subscription events and more. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/activity-feed-member-profile-1.png) The feed can be filtered by event type to allow you to drill down even further into your member events, and better understand how your members are interacting with your content. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/activity-feed-filters.png) ### Membership tiers URL: https://ghost.org/changelog/membership-tiers/ Last updated: 2022-03-16T15:53:52.000Z Membership tiers make it possible to offer more options for your audience to become paid subscribers. Each tier can have its own price points, benefits, and content access levels. With tiers you can: - Create tiers for different types of content (e.g. newsletter and podcast) - Offer a Bronze, Silver, and Gold model, each with different benefits - Offer a high-price tier for people who want to fund your work - Include benefits such as access to communities, courses, ebooks and more - Match tiers that you already offer on other platforms such as Patreon ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/Tiers-Screenshot@2x-3.png) Since we introduced the ability to offer multiple tiers as a [beta feature](https://ghost.org/changelog/tiers-beta/), many publishers using Ghost have been able to grow their business and revenue. Today, we're bringing tiers in Ghost to the forefront as the feature comes out of beta, with several improvements. The latest updates allow you to: - Archive tiers that are no longer needed, and reactivate any time - Filter members based on their tier on the member dashboard - Customize description and benefits, including your free offering ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/single-tier.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/free-tier-descriptions.png) Portal works out of the box with all subscription configurations, so you can offer tiers to visitors across your publication. Read more about [setting up your own tiers](https://ghost.org/help/tiers?ref=ghost.org). --- Ghost(Pro) customers already have access to the latest updates. Self-hosted users can [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version of Ghost to access the latest features. ### Member engagement filtering URL: https://ghost.org/changelog/engagement-filtering/ Last updated: 2022-03-14T20:14:25.000Z Along with the recent addition of [date-based member filtering](https://ghost.org/changelog/date-based-filtering/), you can now filter your members based on their engagement with your content. The new **last seen** filter updates each time a free or paid member interacts with your content, whether that is opening an email, or browsing content on your site. This allows you to find out who your most (*and least*) engaged members are. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/CleanShot-2022-03-11-at-14.15.30@2x.png) For example, you can quickly discover: - How many people engaged with my content today? In the past week? Past month? - How many paid subscribers have zero engagement over the past 30 days? - How many free members haven't engaged in over 60 days? These new filtering options give you more powerful ways to manage your audience, clean your subscriber list, or create segmented campaigns with [offers](https://ghost.org/help/offers/?ref=ghost.org). 🎁 **Bonus:** Name and Email filters are now also available. ### Date-based member filtering URL: https://ghost.org/changelog/date-based-filtering/ Last updated: 2022-03-08T15:03:22.000Z The member dashboard now has new and improved filtering options. Now it's possible to filter your members list by the date their member profile was created, the date their paid subscription started, or by their next billing date. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2022/03/date-based-member-filters-2.png) These new filters allow you toquickly create segments and better understand your subscribers. For example, you can discover: - How many new members were created in the past 30 days? - How many new paid subscribers have I got since \[date\]? - How many paid subscribers renew in the next 14 days? ### Header cards URL: https://ghost.org/changelog/headers/ Last updated: 2021-12-17T15:25:10.000Z Make a statement with bold section headers in your posts and pages. ## MADE YOU LOOK Insert a header card to add a full width divider that can include a title, subheading, accent color or image background, and a button. Now you can create visual section dividers, or add a big call to action: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/Marketing-Image-For-Headers-1.png) ### Media uploads, toggles, products, GIFs and more... [See all 12 days of Cardmas](https://ghost.org/changelog/cardmas) ### File uploads URL: https://ghost.org/changelog/file-uploads/ Last updated: 2021-12-16T13:53:24.000Z Following [audio](https://ghost.org/changelog/audio-cards) and [video](https://ghost.org/changelog/video-cards) cards, now you can add downloadable files to your posts in Ghost. File uploads can be used to share multiple types of content with your audience, for example: - Share bonus downloadable content with paid members - Include swipe files or templates for your readers to download - Give out photography or videography presets/filters - Grow your audience with a [lead magnet](https://ghost.org/resources/lead-magnets/?ref=ghost.org) - Give members access to download an ebook you've created Files display in your content with a custom name and caption, like this: [ Merry Cardmas — From the Ghost team🎄 A Cardmas Card from our team to yours Cardmas 2021.pdf 902 KB download-circle ](https://ghost.org/changelog/content/files/2021/12/Cardmas-2021.pdf "Download") And that's all there is to it! 🖇️ File upload cards support files of up to 50mb depending on your [Ghost(Pro) plan](https://ghost.org/pricing?ref=ghost.org), and accept any filetype. [See all 12 days of Cardmas →](https://ghost.org/changelog/cardmas) ### Video cards URL: https://ghost.org/changelog/video-cards/ Last updated: 2021-12-15T21:33:46.000Z As a follow up from [audio cards](https://ghost.org/changelog/audio-cards), you can now upload videos to your content in Ghost. Once uploaded, your video content renders in a beautiful video player: 0:00 / 1× Now you can share bonus video content for paid members, screenshares, demos, or clips from a full length feature. Videos can be set to loop, have their own custom thumbnails, and display in three different widths using the editor toolbar. 0:00 / 1× 🎬 Video cards support files of up to **50mb** depending on your [Ghost(Pro) plan](https://ghost.org/pricing?ref=ghost.org), and accept `.mp4`, `WebM`, and `.ogg` filetypes. [See all 12 days of Cardmas →](https://ghost.org/changelog/cardmas) ### Audio cards URL: https://ghost.org/changelog/audio-cards/ Last updated: 2023-08-31T11:03:06.000Z It's now possible to upload audio files directly to your posts! This means you can share audio content with your audience, with a beautiful media player that nests into your posts and emails seamlessly. ![audio-thumbnail](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/media/2021/12/Jingle-Bells_thumb.png?v=1639496088918) Jingle Bells — 2021 Cardmas Edition 0:00 /2:32 1× Now you can share bonus content for paid members, interviews, clips from a podcast, or music. 🎧 Audio card file size support will depend on your [Ghost(Pro) plan](https://ghost.org/pricing?ref=ghost.org), and the card accepts `.mp3`, `.wav`, and `.ogg` file types. [See all 12 days of Cardmas →](https://ghost.org/changelog/cardmas) ### Product cards URL: https://ghost.org/changelog/product-cards/ Last updated: 2021-12-14T06:16:32.000Z Display products beautifully with custom content including an image, description, button or rating, so you can add your favorite recommendations to any post... ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/Russels_Reserve-1.jpg) #### Russell's Reserve – 6yr Rye This rye is hot at first and then settles into a nice, soft finish. Vanilla, caramel, and that classic rye spice at the end. [$64.99 on Bevmo](https://www.bevmo.com/shop/spirits/whiskey/bourbon/russell%5Fs%5Freserve%5Fsingle%5Fbarrel%5F750%5Fml/p/1564405684704499855?ref=ghost.org) Showcase your best recipes... ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/risotto-2.png) #### Mushroom Risotto It takes a little time, but this risotto recipe is worth it! **Ingredients:** - 1.25L (5 cups) water - 2 vegetable or chicken stock cubes, crumbled - 1 tbsp olive oil - 1 onion, finely chopped - 1 tbsp fresh rosemary leaves, chopped - 200g button mushrooms - 100g brown mushrooms - 330g (1 1/2 cups) arborio rice - 1 tbsp fresh lemon juice - 40g (1/2 cup) shredded parmesan **Directions:** 1. Bring water and stock cubes to the boil in a saucepan over medium heat, then reduce heat to low. 2. Heat the oil in a large saucepan over medium heat. Add the onion and cook, stirring, for 2 minutes or until soft. Add the rosemary and combined mushroom, and cook, stirring, for 3 minutes or until the mushroom is soft. 3. Add the rice and cook, stirring, for 1 minute or until the grains appear glassy. Add a ladleful (about 125ml/1/2 cup) of the simmering stock to the rice mixture and stir with a wooden spoon until the liquid is absorbed. Add the stock, a ladleful at a time, stirring constantly and allowing liquid to be absorbed before adding the next ladleful. Continue for 25 minutes or until rice is just tender and risotto is creamy. 4. Stir in the lemon juice, and half the parmesan and half the parsley. Top with remaining parmesan and remaining parsley. Or highlight a great location: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/sd-1.jpeg) #### Soggy Dollar Beach Bar A sunny place for shady people on Jost Van Dyke's White Bay in the British Virgin Islands. Try the Painkiller. [See more →](https://www.soggydollar.com/?ref=ghost.org) See all the the latest features in the Ghost editor → [12 days of Cardmas](https://ghost.org/changelog/cardmas). ### Twitter embeds URL: https://ghost.org/changelog/twitter-embeds/ Last updated: 2021-12-09T14:58:24.000Z Embeds are rich content from other services that bring dynamic flavour to any blog post, and one of the most common embeds that publishers use is content from Twitter. In the browser this has always worked great, but in email clients are a whole different can of worms, and so until now any Tweets shared in an email newsletter would only appear as a basic blockquote. No colours. No fancy styles. That changes today. Now, Tweets in newsletters are automatically rendered to look how you would expect; both on the web as well as in email clients. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/CleanShot-2021-12-09-at-10.47.25@2x.png) [See all 12 days of Cardmas →](https://ghost.org/changelog/cardmas) ### Quotes URL: https://ghost.org/changelog/quotes/ Last updated: 2021-12-08T19:37:35.000Z Now you can make quotes stand out with extra blockquote styles that can be applied directly in the editor. In addition to the original quote style, which is minimal and left-aligned... > The way to get started is to quit talking and begin doing – Walt Disney Now there's a second style that you can use for larger, bold quotes. > The only impossible journey is the one you never begin — Tony Robbins Custom themes can also [implement](https://ghost.org/docs/themes/content/?ref=ghost.org#alternative-blockquote-style) alternative blockquote styles. [See all 12 days of Cardmas →](https://ghost.org/changelog/cardmas) ### Toggles URL: https://ghost.org/changelog/toggles/ Last updated: 2021-12-07T17:13:50.000Z Use the new Toggle cards to create collapsible sections of text in your posts and pages. Great for creating distinct sections in your content, or adding an FAQ section. #### When should I use Toggles? Toggles allow you to create collapsible sections of content which is a great way to make your content less overwhelming and easy to navigate. A common example is an FAQ section, like this one. #### Where can I take Ghost for a spin? Start a free 14-day trial **[here](https://ghost.org/pricing?ref=ghost.org)**. You won't be billed at the end, and you'll have access to all features. #### Is it still Cardmas? It is 🎄 see the full [**12 days of Cardmas**](https://ghost.org/changelog/cardmas) ### Callout cards URL: https://ghost.org/changelog/callouts/ Last updated: 2021-12-06T18:57:42.000Z Ever find yourself wanting to add extra styling to important information in your posts? Well, now you can with callout cards. 💡 Check out our [**library of resources**](https://ghost.org/resources?ref=ghost.org) to help you grow your audience, and build an independent subscription business. Each callout card can include an emoji, any length of text with styles and links, and a custom background colour. 🎄 Make your posts sparkle with new dynamic cards in Ghost → See all **[12 days of Cardmas](https://ghost.org/changelog/cardmas)** ### NFT embeds URL: https://ghost.org/changelog/nfts/ Last updated: 2021-12-06T17:03:00.000Z gm. Ghost just got a new embed. Just like when you share links from YouTube, Soundcloud, and Spotify, OpenSea links now get a beautiful card to make it easier for you to showcase your digital art. [ ![](https://lh3.googleusercontent.com/M8AUbgTlaOl6gMTDHh0maDiUXiyKFGlOPjspVoPDTs_Cd5Xujttwk7lvi4FFkCJXREND3edb99cERHc4wKpP4tiGMMekH-_Eva_R9A) #2180 ![](https://static.ghost.org/v4.0.0/images/opensea-logo.png) Created by BoredApeYachtClub• Bored Ape Yacht Club ](https://opensea.io/assets/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d/2180?ref=ghost.org) [See all 12 days of Cardmas →](https://ghost.org/changelog/cardmas) ### Button cards URL: https://ghost.org/changelog/buttons/ Last updated: 2021-12-02T15:44:53.000Z Add call to action buttons to your posts using button cards. Buttons can be center or left aligned, include custom button text, and link to any URL. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/buttons-ghost.png) This means you can direct visitors to your subscribe page using a Portal link, or link to any external URL or resource. Here's an example of a button: [See all 12 days of Cardmas →](https://ghost.org/changelog/cardmas) ### GIFs in Ghost URL: https://ghost.org/changelog/gifs/ Last updated: 2021-12-03T14:11:51.000Z It's the moment you've been waiting for — the Ghost editor now supports GIF cards. Type `/gif` to get started, then search for the perfect GIF for your post. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/GIFs-in-ghost.gif) Click the GIF you'd like to add and it will exist in your post in all it's glory. GIFs also work in email newsletters 😎 Here's one now: ![](https://media.tenor.com/images/437855c8c4fdd9903e5f324fe019f3ec/tenor.gif) [See all 12 days of Cardmas →](https://ghost.org/changelog/cardmas) ### 12 days of Cardmas URL: https://ghost.org/changelog/cardmas/ Last updated: 2025-09-17T07:27:19.000Z As we approach the end of the year, we're excited to share that we've been working behind the scenes on some powerful new cards for the Ghost editor — and we're going to release all of them before the year is out! Consider it a special gift from us to you. It's officially Cardmas 🎄 (sorry). As a team, we wanted to work on some of the most highly requested features publishers have been asking for, and so we're wrapping up (*sorry*) the year with a flurry of fun additions. These new cards are going to provide you with many more ways to include dynamic content in your posts and email newsletters — including buttons, NFT embeds, GIFs, interactive lists, Tweets, media uploads, and more 🤫 We'll announce each new card throughout the month of December. The first of which is one that's launching today, and has been a long time coming... [ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/11/gif-1.png) GIFs in Ghost If a picture is worth a thousand words then a GIF is worth a thousand pictures. Express yourself with moving cats and talking dogs in Ghost. Read more → ](https://ghost.org/changelog/gifs)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/button.png) Buttons Add a call to action in any post with button cards. Share your subscribe page, or link to an external resource. Read more → ](https://ghost.org/changelog/buttons)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/nft.png) NFT cards Share digital art everywhere using OpenSea embeds in Ghost. Read more → ](https://ghost.org/changelog/nfts)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/callout.png) Callouts Highlight important information in your content with Emoji callout cards. Read more → ](https://ghost.org/changelog/callouts)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/toggle.png) Toggles Create collapsible sections of content with toggles. Perfect for the FAQ section you've been thinking about adding! Read more → ](https://ghost.org/changelog/toggles)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/quotes.png) Quotes Share quotes in style with new and beautiful blockquotes in the Ghost editor. Read more → ](https://ghost.org/changelog/quotes)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/twitter-embeds.png) Tweets in emails Embed Twitter content that works smoothly across both the web and email newsletters. Read more → ](https://ghost.org/changelog/twitter-embeds)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/products.png) Products Now you can share products, recipes, locations and more with embeddable product cards. Read more → ](https://ghost.org/changelog/product-cards)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/audio.png) Audio Upload audio files and share podcasts or music directly on your Ghost site. Read more → ](https://ghost.org/changelog/audio-cards)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/video.png) Video Upload videos and provide bonus content for paid members, or share clips with visitors to your site. Read more → ](https://ghost.org/changelog/video-cards)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/file.png) File uploads Share bonus content, templates, presets, ebooks and more with file upload cards. Read more → ](https://ghost.org/changelog/file-uploads)[ ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/12/headers.png) Headers Add visual headers to your content to create bold, attention-grabbing section headers. Read more → ](https://ghost.org/changelog/headers) ### Custom design settings URL: https://ghost.org/changelog/custom-design-settings/ Last updated: 2021-11-24T14:37:38.000Z The design settings inside Ghost Admin have been extended. Now, themes can define their own custom design settings — so you can update the look and feel of your site in the space of a few clicks. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/11/theme-settings-1.gif) With these new controls, each Ghost theme is now able to have its own custom options, allowing you adjust colors, fonts, layout options and elements to better suit your personal style or brand. All [Official Ghost themes](https://ghost.org/themes/?category=official&ref=ghost.org) have been updated with new design settings for you to choose from. Read more about [installing and updating your theme](https://ghost.org/help/installing-a-theme/?ref=ghost.org) in Ghost. If you're a Ghost theme developer, check out the [documentation](https://ghost.org/docs/themes/custom-settings/?ref=ghost.org) for details about implementing custom settings into one of your themes. ### Create offers & discounts URL: https://ghost.org/changelog/offers/ Last updated: 2021-11-12T16:08:59.000Z Trying to figure out how to get more paying subscribers? The offers feature in Ghost allows you run promotions for premium subscriptions and easily share special offers with your audience. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/10/offers-in-ghost-3.png) This flexible system can be used to create different types of promotions, with percentage or dollar discounts. Offers can be applied once, over multiple months, or set to last for the duration of a subscription. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/10/offer-portal-ghost.png) An example of an offers landing page. Once created, offers can be shared with your audience via a custom link, allowing you to: - Include a link to your offer in a newsletter sent to your free members, or a segment of your audience, using an [email call to action card](https://ghost.org/changelog/email-cta/). - Mention your offer in a podcast episode or video - Share your offer link across other platforms or social media - Work with partners to share *your* offers with *their* audience. Like when you're listening to a podcast or video and you hear: *"SeatGeek is an amazing app that helps you buy tickets in the easiest way possible. Go to Seatgeek dot com slash DAVID to get 10% off your first order."* To get started, learn more about [**creating your first offer in Ghost**](https://ghost.org/help/offers/?ref=ghost.org). ### Send emails without publishing URL: https://ghost.org/changelog/email-without-publishing/ Last updated: 2021-10-11T19:03:28.000Z You can now choose whether or not to publish a post on your website, when sending an email newsletter to members. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/10/email-without-publishing.png) Now you can send emails to your audience with private content that won't appear anywhere else, for example: - A special offer to incentivize free members to upgrade to a paid account - A weekly roundup of trending stories published previously - A survey to inform your upcoming content roadmap ### Segment members with advanced filtering URL: https://ghost.org/changelog/filtering/ Last updated: 2021-10-07T08:42:06.000Z We've just added powerful filtering tools to the member dashboard, allowing you to create segments and carry out bulk actions such as adding or removing labels. It's now possible to **filter your members** by label, email subscription status, member status, billing period, emails opened, emails sent, email open rates, and more. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/09/filtering-members.png) **Member filtering allows you to:** - Find out who your most engaged members are - Add labels to a filtered list so you can deliver emails to specific segments of your audience - Unsubscribe unengaged members from receiving emails to improve your email deliverability - Export segments of your audience to use in other tools. ### Promote premium subscriptions to free members URL: https://ghost.org/changelog/email-cta/ Last updated: 2021-09-22T15:54:17.000Z We've just released a brand new email card in the editor that allows you to send call to action content to free or paid members in your email newsletters. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/09/email-call-to-action.png) **Email call to action cards** can be quickly added to your content using the dynamic card menu. They can include dividers, center or left alignment, formatted text, and a button. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/09/email-cta-example-1.png) This means you can include custom content in your emails and invite your audience to take action. Here's some common examples: - Promote premium memberships in Ghost, with a direct link to the signup page in Portal. - Promote other products you sell, with a direct link to a landing page or checkout page. - Ask members to participate in a survey to encourage audience participation. ### Offer members multiple premium tiers (beta) URL: https://ghost.org/changelog/tiers-beta/ Last updated: 2021-09-20T13:55:53.000Z It's now possible to create multiple tiers and offer your audience more options to become paid subscribers. Our new tiers feature allows you to create tiered subscriptions each with their own price points, benefits, and content access levels. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/09/Tiers-Screenshot@2x-3.png) Tiers make it possible to: - Create tiers for different types of content (e.g. newsletter and podcast) - Offer a Bronze, Silver, and Gold model, each with different benefits - Offer a high-price tier for people who want to fund your work - Include benefits such as access to communities, courses, ebooks and more - Match tiers that you already offer on other platforms such as Patreon Check out the **[Tiers user guide](https://ghost.org/help/tiers?ref=ghost.org)** to find out how to enable the beta feature for your publication and start creating your own tiered products. --- **[Ghost(Pro)](https://ghost.org/pricing?ref=ghost.org)** customers already have access to Tiers. Self-hosted users can [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version of Ghost to access the latest features. ### Free newsletter themes URL: https://ghost.org/changelog/free-newsletter-themes/ Last updated: 2021-08-16T06:00:00.000Z We've shipped three brand new Ghost themes for newsletter creators that are ready to use today for free. [**Journal**](https://ghost.org/themes/journal/?ref=ghost.org), [**Digest**](https://ghost.org/themes/digest/?ref=ghost.org), and [**Bulletin**](https://ghost.org/themes/bulletin/?ref=ghost.org) are the latest official themes to be added to the Ghost theme marketplace, each with slick purpose-built designs suitable for newsletters. Combined with the native membership and subscription features, it's possible to launch a free or premium newsletter using one of these themes in just a few clicks. All themes are fully open-source, free, and extensible, available on our **[Marketplace](https://ghost.org/themes/?ref=ghost.org)**, and the source is on **[GitHub](https://github.com/tryghost?ref=ghost.org)**. ### Add captions to feature images URL: https://ghost.org/changelog/feature-image-captions/ Last updated: 2021-08-09T06:00:00.000Z Now you can add captions to your feature images in every post — so you can credit the author, cite a source, or write anything else. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/07/feature-image-captions.png) Feature images have also moved directly above the heading in the editor for a more seamless publishing experience. ### More email design options URL: https://ghost.org/changelog/email-design-settings/ Last updated: 2021-08-02T05:59:59.000Z We just added more new email design settings for your newsletters, including: - Add a custom header image to all emails - Customise the publication icon and title independently - Pick a typography style and alignment for the header - Disable post feature images in emails ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/07/email-design-new.png) Email newsletters in Ghost are delivered with a beautiful HTML template that is optimized for popular email clients — all you need to do is pick your design settings and start sending. ### Invite-only communities URL: https://ghost.org/changelog/invite-only-communities/ Last updated: 2021-06-30T06:00:00.000Z Now you can create a private, invite-only membership website with Ghost using the new subscription access feature, which allows you to decide who should be able to subscribe to your site. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/06/private-communities.png) This is a great way to share member-only content privately, here's some common examples of how publishers use this feature: - Create a personal blog for a small group of people you know. - Ask visitors to fill out a form, or email you personally, to gain access to your archive of content. - Import an existing email list and give everyone immediate access to the content on your branded Ghost website. - Sync members from other platforms using Zapier — for example, to give existing supporters on Patreon access to your membership website. ### Segmented email newsletters URL: https://ghost.org/changelog/segmented-email-newsletters/ Last updated: 2021-06-23T06:00:00.000Z It's now possible to deliver email newsletters to a specific group of members using custom segments, so you can provide an engaging and personalised experience to your audience. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/06/segmented-email.png) The new options in the publishing menu allow you decide if your post is delivered by email to all members, free members, paid members or a specific group of people using labels. ### Grammarly support URL: https://ghost.org/changelog/grammarly/ Last updated: 2021-06-15T00:56:08.000Z The Ghost editor now has official support for Grammarly. All you need to do is install the Grammarly extension for your preferred [browser](https://support.grammarly.com/hc/en-us/articles/115000091552-Install-the-Grammarly-browser-extension?ref=ghost.org) and you can start using the AI powered writing assistant inside Ghost, to improve your writing as you type. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/06/grammarly-in-ghost.png) ### Public previews URL: https://ghost.org/changelog/public-previews/ Last updated: 2021-04-05T16:01:11.000Z We recently released public previews directly in the editor as part of the [Ghost 4.0 launch](https://ghost.org/changelog/4), giving the flexibility to include **public** and **protected** **content** within the same post, without needing to write code or update theme files. --- ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/03/public-previews-3.gif) --- Public preview dividers can be added from the card menu in the editor anywhere within a post or page, allowing you to decide where the member signup or paywall appears on each post. This means you can: - Convert more anonymous visitors into members by including teaser content of any length and requiring a member signup to access the full article. - Save the best until last and place gated content at the end of an article — such as access to a spreadsheet, a video embed, a podcast or a tutorial. - Include more crawlable content on member-only URLs, to give posts a greater chance of being shared or ranking in the search engines. Read more about [using public previews](https://ghost.org/help/public-previews/?ref=ghost.org) and get started with your own custom previews. ### Ghost 4.0 URL: https://ghost.org/changelog/4/ Last updated: 2021-03-16T21:26:30.000Z Almost exactly 8 years ago, we announced the first prototype of Ghost on Kickstarter. Today, over 20,000 commits later we're releasing [Ghost 4.0](https://ghost.org/features/?ref=ghost.org), the latest major version of the product, as well as small refresh of our brand. **If you're short on time, here are the abbreviated highlights of what's new:** - We made the **dashboard**! Get detailed insights into how content and members are performing so you can understand what's working. - **Memberships and subscriptions** are now natively part of the core platform - no longer in beta. Publishers who started sites with Ghost last year are now making more than $2Million per year in revenue from the platform. - **Email newsletters** are now natively built into Ghost. This time last year we sent about 6,000 emails per month on Ghost(Pro). Today it's several million. - We launched a brand **new post-preview** UI, showing you what your post will look like on web, mobile, email, social and search - all in one place. - Premium subscriptions with Stripe now work in **135 currencies**, with support for **Apple Pay**, **Google Pay**, and **0%** payment fees . - We've created an embedded memberships and subscriptions UI, called **Portal**, which works with every Ghost theme. Past, present and future. - **Member management** now includes the ability to impersonate users for support, generate single-use authentication links, and collect cancellation feedback. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/03/7-Members-analytics.png) - Our new **members importer** can migrate data from all other email and member platforms, including payments, making it super easy to switch to Ghost. - Speaking of switching to Ghost, we created a new **concierge team** in charge of helping people migrate from other platforms (for free). [Docs and more details here](https://ghost.org/docs/migration/?ref=ghost.org). - We added a new **quick-start setup flow** for new Ghost users, with a streamlined way to enter all the most common settings needed to launch a new site. - Those settings include a brand new **Brand Color** option, which allows site owners to customise their site, UI and theme with injected color variables. - We acquired the most popular theme company for Ghost, **IVEEL**, and released all their **premium themes** as official, free and open source. Including our first dedicated newsletter theme. - We also re-built the Ghost [Theme directory](https://ghost.org/themes/?ref=ghost.org), including live previews and automatic installs - so you no longer have to download/upload zips for our official themes. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/03/themes.png) - We made a brand new [Experts directory](https://ghost.org/experts/?ref=ghost.org), for people who are looking to hire developers to help build them custom Ghost sites. - We massively improved our [Zapier app](https://zapier.com/apps/ghost/integrations?ref=ghost.org) with members features, overhauled our [Integrations Directory](https://ghost.org/integrations/?ref=ghost.org), and created a new global [Marketplace](https://ghost.org/marketplace/?ref=ghost.org) that brings all these things together. - On the subject of **integrations**, we built a [native integration](https://ghost.org/integrations/firstpromoter/?ref=ghost.org) with [FirstPromoter](https://firstpromoter.com/?ref=ghost.org) into Ghost core. Now you can launch advanced referral and affiliate programs for your members. Enter your API key to enable the integration, and all the tracking is handled for you automatically. - We added [content snippets](https://ghost.org/changelog/content-snippets/#:~:text=any%20new%20post.-,Create%20re%2Dusable%20snippets%20of%20content%20that%20can%20be%20quickly,you%20want%20to%20use%20again.) \- now you can turn any piece of content in Ghost into a re-usable snippet to power your publishing workflows. Forget media library, this is an everything-library. - Ghost now outputs **automatic responsive, lazy-loading images**. Everywhere. Average front-end performance jumped by more than 50%. Ghost was already extraordinarily fast, but now it's pretty trivial to hit 99-100 speed scores on LightHouse - on par with static sites. - Major refactors of Ghost's codebase have also improved **overall performance** in terms of requests-per-second by 40%, reduced latency by 30%, and made serving requests after start/restart faster by 300%. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/03/4-Public-preview.png) - We launched a new **$9 Starter plan** on [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org), to make easier and better value to get started with Ghost than ever before. - We also **rebuilt** all our Ghost.org systems for signup, signin, billing, account management, documentation, help center and refreshed our blog. All of those have significantly improved. - Ghost is now a team of **21** people with **$3.3M** annual revenue, and over **$7M** lifetime revenue. We're still a fully independent non-profit organisation with no outside funding or shareholders, building the best product we can for our users, giving away all our intellectual property under a free, open source license. - In the last 12 months our growth rate has increased by **200%**, and we now serve a billion requests each month on **Ghost(Pro)**. - **[We're hiring!](https://careers.ghost.org/?ref=ghost.org)** Especially for infrastructure engineers, designers and full-stack product engineers. We employ people full-time to build open source software and help empower the first major generation of the creator economy. Seriously. This is the *abbreviated* highlights. Our last major release was in October 2019, so it's been quite a while since Ghost 3.0\. The team is twice the size now as it was then, and we've been shipping more than ever before. I've never been more proud of the product we've built or the team that makes it. Memberships, subscriptions and the creator economy as a whole is a *noisy* space right now. Many companies building products in this space weren't around 8 years ago, and most won't be around 8 years from now. We will be. Decentralised, open source technology is methodical, powerful, and inevitable. --- ## How to get Ghost 4.0 **All new sites on Ghost(Pro) are running Ghost 4.0.** You can spin up a new site in a few clicks with an unrestricted [14 day free trial](https://ghost.org/pricing/?ref=ghost.org). If you haven’t used Ghost for a while, now’s a great time to give it another try. **Already got a site on Ghost(Pro)?** Log into [Ghost.org](https://ghost.org/?ref=ghost.org) and click the “Update to 4.0” link in your admin panel, any time. **Self-hosting Ghost?** Updating to 4.0 is very straightforward with Ghost-CLI and should take about 15 mins — [here's the Ghost update guide](https://ghost.org/docs/update/?ref=ghost.org). --- ## What's next? If you're still here and still reading, you might be wondering what's next. That's how these things usually go. You spend a couple of years baking a magnificent cake and you say "here is our cake, behold the icing in all its splendour, would you like some?" - and invariably the response is "what will be in the next cake". Fair enough. The next cake is custom plans. Right now Ghost has monthly, yearly and complimentary plans built-in by default, but soon you will be able to define any plan you like with custom properties. Nice. After that, who knows. Maybe a croissant. --- ![Ghost 4.0 - Newsletters, memberships, subscriptions - all in one place | Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=288355&theme=light&period=daily) ### Launch your own referral program URL: https://ghost.org/changelog/firstpromoter-integration/ Last updated: 2021-10-07T10:29:14.000Z We've partnered with [FirstPromoter](https://firstpromoter.com/?fpr=ghost&ref=ghost.org) to allow you to launch a referral program, with a new native Ghost integration so your biggest fans can promote your work in return for a reward or commission. Now, all you need to do is grab your FirstPromoter ID and paste it into the [Integration](https://ghost.org/integrations/firstpromoter?ref=ghost.org) inside Ghost Admin: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/02/firstpromoter-integration-admin.png) Learn more about how to launch your own newsletter referral program: [Newsletter referral programs explainedA rewards program isn’t a silver bullet for growth, and requires a lot of resources.![](https://ghost.org/resources/favicon.png)Ghost NewsletterKym Ellis![](https://images.unsplash.com/photo-1584438784894-089d6a62b8fa?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MXwxMTc3M3wwfDF8c2VhcmNofDJ8fG5ld3NsZXR0ZXJ8ZW58MHx8fA&ixlib=rb-1.2.1&q=80&w=2000)](https://ghost.org/resources/newsletter-referral-programs/?ref=ghost.org) ### Email newsletter stats URL: https://ghost.org/changelog/email-stats/ Last updated: 2021-01-13T10:00:00.000Z See how your email newsletters perform with our latest new feature: Email stats! Now you can see the open rate for posts which are delivered as email newsletters at a glance inside Ghost Admin. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/email-stats-1.png) Your posts automatically display how many people the email was delivered to and the percentage open rate. Plus, Member profile pages now include some stats too, with an average open rate per member, number of emails received and a member activity feed. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/member-feed-2.png) ### Redirect new members on signup URL: https://ghost.org/changelog/welcome-content/ Last updated: 2021-01-11T09:45:00.000Z Create custom welcome content for new members when they sign up using sensible redirects! We've introduced a no-code redirect feature in Ghost Admin, which means you're able to decide where new members land on your site when they first sign up and click the confirmation link in their email. To get started, enter the URL into the welcome page fields — you can use different welcome pages for free signups and paid signups: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/welcome-page.png) **This feature allows you to:** - Display custom welcome content for free + paid members - Include additional content on signup (welcome videos, free downloads) - Embed an incentivised survey to find out more about your audience - Implement referral programs - Share links to other member perks such as private communities ### Cancellation feedback URL: https://ghost.org/changelog/cancellation-feedback/ Last updated: 2021-01-06T09:18:29.000Z Find out why your members cancel their subscription and start improving your churn rates with a brand new cancellation feature! Portal now supports a cancellation reason field when ever a member decides to cancel their subscription to your publication. This data is stored in the member profile in Ghost Admin, and as meta data inside your Stripe account. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/12/cancel-reason.png) ### Newsletter design settings URL: https://ghost.org/changelog/newsletter-design-settings/ Last updated: 2021-11-25T22:03:25.000Z It's now possible to edit email newsletter design settings, including the header, footer and typography. Email newsletters in Ghost are delivered with a beautiful HTML template which is optimised for popular email clients — now with extra design settings. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/Kapture-2020-12-08-at-14.32.38-1.gif) Now you can: - Remove your site title and icon from the header - Choose a typographic style for your newsletters - Include content in the footer, like legal info or an address — highlight text to add formatting or links. ### Send emails to free members URL: https://ghost.org/changelog/free-member-email/ Last updated: 2021-01-08T12:02:17.000Z It's now possible to segment your email newsletters and deliver content to free members of your Ghost publication. Previously, you could deliver emails to *all* members, or paid-members only. Now it's possible to send content to your free audience as well. When publishing any post, you'll see the option to decide whether to send as an email, and to which audience. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-38.png) Now you can: - Send different content to free and paid members - Change email frequency, for example, send free members an update once per month, and paid members an update once per week - Promote premium content to your free audience - Run sponsorships or ad placements in your free emails, while keeping paid newsletters ad-free ### Extend your publication with Zapier URL: https://ghost.org/changelog/new-automations-zapier/ Last updated: 2022-08-15T20:56:56.000Z Today we're releasing a major update to our Zapier app, making it more powerful and useful than ever before. We've added new **actions** for finding and updating both members and staff users, as well as new **triggers** when members are updated or deleted, and when posts are scheduled. These new features make it possible to sync and update member attributes, enabling thousands of new potential automations. Here are a few examples to give you some inspiration to get started: ### Protect your email delivery performance Verify all new members using an integration with ZeroBounce. If verification fails, you can use the **Update Member** action to unsubscribe that member from email and protect your site's email delivery rates. ### Integrate with external payment gateways The new **Find a Member in Ghost** action step allows you to find a specific member based on a trigger event, and then apply an action to *only* that member. An example of this in action would be an integration with external payment gateways such as PayPal. Now you're able to add new Members in Ghost when someone subscribes via your PayPal buttons, and also update that member if they cancel their subscription in PayPal. ### Update email subscription status The **Update Member** action allows you to update member attributes in Ghost when someone unsubscribes from email in another tool, or vice versa. This means you can use Ghost to run your (free or paid) email newsletter and use email automation tools to send dedicated marketing emails, or automated sequences. ### Create a custom sign up experience Updates to our **Create Member** action allow you to implement a custom forms and collect extra information about members during sign up and store it inside Ghost as a note. ### Automate audience segmentation with labels We've also added new **data attributes** in this release, which means you can identify when a member's information has changed using the Zapier filter step. For example, if you wanted to apply a label of `unsubscribed` when a member opts out of your email newsletter, apply a filter step for the current subscribed status *and* the previous subscribed status. Any members who match the filter will move to the next action step, and have a label applied. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/Member-updated_o.png) ### Getting started Set up your own Ghost automations and integrations using one of the new templates in this post, or create your own zaps with more than 1,000+ tools inside [Zapier](https://zapier.com/?ref=ghost.org)! ### Content snippets URL: https://ghost.org/changelog/content-snippets/ Last updated: 2021-07-02T11:11:38.000Z Create re-usable snippets of content that can be quickly accessed and inserted into any new post. Content snippets are a useful way to store pieces of content you want to use in other posts, such as an image, a company logo, a newsletter template, an embed — or anything else that you want to use again. New snippets can be created from any piece of content in the editor, by highlighting content and using the new snippet button: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/11/create-snippet.gif) When you're ready to use the snippet again, snippets can be recalled in any other post from the card menu: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/11/include-snippet.gif) ### Introducing Portal (beta) URL: https://ghost.org/changelog/portal/ Last updated: 2021-01-07T03:56:45.000Z When we launched the beta Members feature, member sign up, login and subscriptions were all handled by the site's theme. This means to get started you needed to download a theme with this functionality already built-in, or build something custom. The latest addition to our beta Members feature is Portal — an embeddable user interface that can be inserted on *any* Ghost site, using *any* theme, without needing to write code or edit your theme templates. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/11/portal-popup-w.gif) ### Get started with Members, no code required Portal can be implemented in a few clicks directly inside Ghost Admin. The Portal settings menu allows you to customise the sign up options you offer on your site, and the design of the Portal UI. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/11/Portal_Settings_-_Account.png) Beyond member sign up and login, Portal handles the full membership experience, with carefully designed validation, notifications and account management for your subscribers. Using Portal also means you'll get access to new features in Members in the future, without needing up upgrade your theme. --- Getting started with memberships in Ghost is now easier than ever. To give these new features a try, check out the [Members setup guide](https://ghost.org/docs/members/setup/?ref=ghost.org). **Ghost(Pro)* customers already have access to Portal. Self-hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to install the latest release!* ### Ghost + IVEEL URL: https://ghost.org/changelog/iveel/ Last updated: 2020-10-20T05:23:50.000Z Ghost has acquired [IVEEL](https://iveel.co/?ref=ghost.org), one of the most popular premium theme companies making beautiful templates for Ghost. With this acquisition IVEEL founder Sodbileg Gansukh has joined to lead our brand new theme-team. All IVEEL themes have been updated, optimised, and are being released today as **free and open source** under the MIT license. This includes the extremely popular Dawn theme, for newsletter authors. These beautiful themes are designed to support modern publishing, including dedicated themes for paid newsletters, podcasts, photography, and fashion. All are available today on our [Marketplace](https://ghost.org/marketplace/?ref=ghost.org), and the source is on [GitHub](https://github.com/tryghost?ref=ghost.org). --- ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/dawn.jpg) **Dawn** — [demo](https://dawn.ghost.io/?ref=ghost.org) / [download](https://github.com/tryghost/dawn?ref=ghost.org) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/alto.jpg) **Alto** — [demo](https://alto.ghost.io/?ref=ghost.org) / [download](https://github.com/tryghost/alto?ref=ghost.org) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/edge.jpg) **Edge** — [demo](https://edge.ghost.io/?ref=ghost.org) / [download](https://github.com/tryghost/edge?ref=ghost.org) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/ease.jpg) **Ease** — [demo](https://ease.ghost.io/?ref=ghost.org) / [download](https://github.com/tryghost/ease?ref=ghost.org) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/ruby.jpg) **Ruby** — [demo](https://ruby.ghost.io/?ref=ghost.org) / [download](https://github.com/tryghost/ruby?ref=ghost.org) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/dope.jpg) **Dope** — [demo](https://dope.ghost.io/?ref=ghost.org) / [download](https://github.com/tryghost/ruby?ref=ghost.org) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/wave.jpg) **Wave** — [demo](https://wave.ghost.io/?ref=ghost.org) / [download](https://github.com/tryghost/wave?ref=ghost.org) --- We're very excited to see what you build with these new designs, and can't wait to show you some of the other projects that we have coming up. # Questions & answers Here are some extra details to go with this announcement: ### How do I download/install one of these themes? Click on the "download" link under any of the themes above, then download the zip file from the green button on GitHub, and upload the zip to Ghost in the **Design** area in Ghost Admin. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/image.png) ### Do these themes work with Ghost memberships/subscriptions All IVEEL themes are optimised to work with upcoming Ghost memberships and subscriptions functionality. At present this requires some code knowledge, however in the next few weeks we'll be launching some changes that will mean all of these themes will work automatically with members/subscriptions without any code required. ### I'm an IVEEL customer, what does this mean for me? The themes released today are *new*, open source versions of the premium themes sold previously — with fewer options and customisations compared to their premium counterparts. If you purchased an IVEEL theme previously, you can continue to use and enjoy it under the terms of your original license. There won't be further updates to the premium version of these themes, but they will continue to be supported alongside all other themes in Ghost. There are no other changes. ### New member importer URL: https://ghost.org/changelog/new-member-importer/ Last updated: 2020-10-14T10:18:09.000Z The new member importer allows you to match your CSV data to the correct fields, and review your import before you run it. You can also add tags to imports with ease! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/importer-members.gif) ### Member support URL: https://ghost.org/changelog/member-support/ Last updated: 2020-10-14T10:16:05.000Z ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/10/Impersonate-Feature-Image.png) Support your members with ease using the impersonation feature. Authentication links are now single-use, and have been extended to 24 hours validity. They can be shared directly with any members who are having login issues, or trouble receiving emails. ### June Updates: What's New URL: https://ghost.org/changelog/updates-june-2020/ Last updated: 2020-06-29T16:58:50.000Z We've been hard at work during lockdown, updating Ghost and working on many of your most requested features ✨ ## Custom from-addresses for email newsletters When we first launched *Beta* [email newsletters](https://ghost.org/docs/members/email-newsletters/?ref=ghost.org) in Ghost, it was only possible to change the first part of the from address - the bit before the `@` \- to prevent Ghost being used for spam / with unauthorised domains. Now, after verifying your email, you can send newsletters from any address! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/06/from-address.jpg) --- ## Improved content organisation You can now filter posts by access level, to browse and edit content that has been created for different segments of your audience. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/06/access-level-filter.jpg) This unlocks custom views based on access level too, to create quick links in the sidebar that your team can use to navigate content quickly. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/06/Custom-views.png) --- ## INR currency support You can also now sell premium subscriptions to membership sites in Indian Rupees (INR), as well as USD, GBP, EUR, AUD and CAD. More currencies are coming soon 💸 ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/06/inr-support.jpg) Select your currency from the dropdown menu in Members settings – Ghost takes care of the rest by automatically creating those pricing plans in your Stripe account. Yep, still no extra transaction fees. None! --- ## Membership referral programs We heard from people running membership businesses about how important referral program are – so we've developed an [integration with FirstPromoter](https://ghost.org/integrations/firstpromoter/?ref=ghost.org). Now you can ask your biggest fans to promote your work to other people in return for rewards, commissions or payouts, using a custom welcome page on your Ghost site to track referrals. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/06/Custom-welcome-page-1.jpg) --- ## Automatic responsive images Ghost now generates automatic responsive assets for images in your post content, which means image-heavy posts now load much faster! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/06/Performance.png) --- ## Buffer is now powered by Ghost We just finished helping the world's most popular startup blog migrate to Ghost! All of Buffer's different [blogs](https://buffer.com/resources/?ref=ghost.org) and [resources](https://buffer.com/library/?ref=ghost.org) are now faster and more beautiful than ever. We've always been big fans of Buffer, and it's been great to get a chance to work with them for the last few months. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/06/Buffer-2.png) Buffer are the latest in a [growing list](https://ghost.org/customers/?ref=ghost.org) of independent companies, creators, journalists and publishers who are all using Ghost to power their content. ### Personalise newsletters with email cards URL: https://ghost.org/changelog/email-cards/ Last updated: 2021-01-07T03:56:46.000Z Ghost makes it possible to deliver new posts directly to your subscribed members inboxes in a couple of clicks. But what about when you want to personalise your email with unique content that doesn't appear in your published post? That's where email cards come in! Quickly add content directly to the editor that will *only* be visible in emails, unlocking the ability to add a personal touch, or share unique email specific content. ![image.png](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/slite-api-files-production/files/0d127fe7-7081-43e8-9847-4129936c6471/image.png) Email is still the most effective method for engaging your audience and now you can personalise your emails and improve your members' experience. Read more about email cards in our [members user guide](https://ghost.org/docs/members/email-newsletters/?ref=ghost.org#email-card). --- **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users can start using email cards right away! Self-hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to update to the latest version. ### Members now supports 5 currencies URL: https://ghost.org/changelog/supported-currencies/ Last updated: 2021-01-04T04:26:57.000Z The [Members](https://ghost.org/members/?ref=ghost.org) feature in Ghost launched with support for USD. We've now added support for four additional currencies: CAD, AUD, GBP, EUR. Select your chosen currency for your subscriptions from the Members Settings, and set your pricing tiers: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/03/Custom-Currency---Labs-1.png) Then you're all set. When you enter your currency and pricing in Ghost, it automatically creates those plans in Stripe in the correct currency. Now your readers can support your work with monthly or annual subscriptions in your chosen currency. --- For more information about outputting currencies and price in your theme, check out our [documentation](https://ghost.org/docs/themes/members/?ref=ghost.org#checkout-buttons). ### Improved member accounts URL: https://ghost.org/changelog/member-account-page/ Last updated: 2020-03-05T09:29:13.000Z ### Member Gravatars We've now added support to be able to add Gravatars into your Ghost theme, to provide a more personalised experience when people are logged in to your membership publication, or visit their account page. ### Edit billing info We also rolled out support for editing billing information directly from a member account page, to make it easier for your members to manage their subscriptions to your content. This feature has already been added to our Members theme [Lyra](https://lyra.ghost.io/?ref=ghost.org) with an "Edit billing info" button that opens Stripe checkout. If you're using the Lyra theme, update it to access all of the latest features. --- To find out more about implementing a personalised account page for your members within a custom theme, [check out our documentation](https://ghost.org/docs/members/member-data/?ref=ghost.org). ### Member impersonation URL: https://ghost.org/changelog/member-impersonation/ Last updated: 2020-03-03T15:32:05.000Z It's now possible to log in to your membership publication as one of your members. This means you can provide better support if your member is facing any technical issues, or test the design implementation of your member-only content without having to log in manually. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/03/impersonate.gif) ### Member location in Ghost Admin URL: https://ghost.org/changelog/member-location/ Last updated: 2020-03-03T14:36:42.000Z Ghost now registers the location your members sign up from, so you can see your members location on their member profile page in Ghost Admin. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/03/member-location-detail.png) Understand your audience better, segment your members using [member labels](https://ghost.org/changelog/member-labels/) and build more relevant content for your readers! ### Segment subscribers with member labels URL: https://ghost.org/changelog/member-labels/ Last updated: 2021-01-04T04:16:36.000Z This gives you even more options to manage your members effectively. You can use member labels in a number of ways: - Manually apply a label to your members directly from the member dashboard - Apply labels to imported members automatically via our [Zapier integration](https://ghost.org/integrations/zapier/?ref=ghost.org) - Apply labels automatically via the API in your [themes signup form](https://ghost.org/docs/themes/members/?ref=ghost.org#apply-labels-from-a-form), for example, you could apply a label to members who sign up from a specific landing page. Labels unlocks the ability to keep track of your VIP members, imported members from other platforms, or members who signed up from a specific marketing promotion, and much more! **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users already have access to member labels. Self-hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to install the latest version. ### Filter posts with sidebar views URL: https://ghost.org/changelog/sidebar-views-filter/ Last updated: 2021-01-07T03:56:45.000Z The default views appear under Posts which include **Drafts**, **Scheduled** and **Published** \- and it's possible to create custom views using any combination of post filters and saving it with a name and colour. For example, you can create a view based on an author or a tag: ![how to add a custom side view filter in Ghost](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/02/sidebar-views.gif) **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** usershave access to sidebar views already. Self-hosted users can access this feature by [installing](https://ghost.org/docs/ghost-cli/?ref=ghost.org) the latest version. ### Complimentary premium plans URL: https://ghost.org/changelog/complimentary-subscriptions/ Last updated: 2020-02-24T11:20:44.000Z It's now possible to offer complimentary subscriptions to your members in a couple of clicks. This means you can give your colleagues, friends or family access to paid-member only content in Ghost, without them needing to sign up or enter any credit card details. Simply navigate to the member profile you'd like to provide free access to, and toggle "Complimentary premium plan" ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/02/complimentary-premium-plans.png) ### Improved members dashboard URL: https://ghost.org/changelog/member-management/ Last updated: 2020-02-24T11:22:47.000Z We introduced some improvements to the member management dashboard to make it easier to manage your members, and keep track of how your membership business is growing over time 📈 - It's now possible to add members individually directly from the member dashboard, making it easy to add colleagues, friends or people you meet in person as a member of your site - You can now see Gravatars for your member list when available, so you can put names to faces - A new member growth chart shows your membership growth at a glance within a selected timeframe ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2020/01/Member-growth-chart.png) ### Subscription management for members URL: https://ghost.org/changelog/subscription-management/ Last updated: 2021-01-11T02:39:09.000Z Your members can now self-manage subscriptions for any [membership publication](https://ghost.org/features/?ref=ghost.org) built with Ghost, with a new helper to cancel or continue billing for any plan. --- ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/12/subscription-management.png) --- To find out how to introduce subscription management to your Ghost site, check out the [members docs](https://ghost.org/docs/themes/members/?ref=ghost.org#cancel-links). If you're using the members-enabled theme, [Lyra](https://lyra.ghost.io/?ref=ghost.org), you can install the [latest version](https://github.com/TryGhost/Lyra?ref=ghost.org) of this theme to get access to this feature. ### Ghost + Pico URL: https://ghost.org/changelog/acquiring-pico/ Last updated: 2019-12-11T20:08:35.000Z Last year our good friends [Paul](https://twitter.com/pjrvs?ref=ghost.org) and [Jack](https://twitter.com/JackEllis?ref=ghost.org) started working on a new personal publishing platform called [Pico](https://ohpico.com/?ref=ghost.org). Today I'm pleased to share the Ghost has acquired Pico, and releasing it as open source. You might know Paul Jarvis for his bestselling book, [Company of One](https://www.amazon.com/Company-One-Staying-Small-Business-ebook/dp/B078962RHQ/ref=tmm%5Fkin%5Fswatch%5F0?%5Fencoding=UTF8&qid=1576071184&sr=8-1&ref=ghost.org), his wildly popular [MailChimp course](https://chimpessentials.com/?ref=ghost.org), or the independent analytics platform he created with co-conspirator Jack Ellis: [Fathom Analytics](https://usefathom.com/?ref=ghost.org). [Fathom, simple analytics for bloggers & businessesSimple, GDPR compliant website analytics, no cookie notice required. No tracking or storing personal data of your users.![](https://usefathom.com/assets/apple-touch-icon.png)![](https://usefathom.com/assets/fathom-analytics.png)](https://usefathom.com/?ref=ghost.org) Paul is a prolific newsletter writer and blogger, so many people were excited when last year he announced a new project to build a minimal publishing platform with memberships and subscriptions built in at the core to help writers fund their work. The anticipation was palpable! > I love when great developers, > who are also great humans, > build great software, > with a great business model. > > Excited for [@pjrvs](https://twitter.com/pjrvs?ref%5Fsrc=twsrc%5Etfw&ref=ghost.org) and his new writing (and reading) platform, Pico.[https://t.co/nXqLsMqaur](https://t.co/nXqLsMqaur?ref=ghost.org) > > — Clay Hebert (@clayhebert) [May 31, 2018](https://twitter.com/clayhebert/status/1002287265031311360?ref%5Fsrc=twsrc%5Etfw&ref=ghost.org) But then something else happened. Fathom Analytics [took off](https://usefathom.com/news/v2?ref=ghost.org), and we launched [Ghost 3.0](https://ghost.org/3/?ref=ghost.org) with native support for memberships and subscriptions, free and open source for everyone to use with full ownership of all your data. The timing seemed to work out *just right* and after a quick chat between our teams, it seemed like a really natural fit for Ghost to acquire Pico and turn Paul and Jack's prototype into a reality using Ghost's new functionality. So, today we're thrilled to share **[Pico](https://pico.ghost.io/?ref=ghost.org)** \- a new open source premium publishing membership theme for Ghost, with Stripe subscriptions at its core. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/12/pico.png) Pico: [Demo](https://pico.ghost.io/?ref=ghost.org) / [Download](https://github.com/tryghost/pico/?ref=ghost.org) The theme is released under the MIT license, just like Ghost itself, and is available right away for use by anyone - fulfilling the original promise of Pico - as Paul and Jack continue to focus on Fathom Analytics. In addition, we've created a special **50% off** offer on **Ghost(Pro)** for everyone who was on the Pico waiting list, to make it even easier to get started. If you were on the list, you'll receive an email from us shortly with all the details of how to claim the special pricing. We don't even do black friday, so this is a very rare thing for us! We'll continue to maintain and evolve the Pico theme on top of Ghost to bring the original product vision to life, now as a completely open source product. A big thanks to Paul, Jack and everyone else involved in making this happen. We can't wait to see what you publish. ### Secondary navigation URL: https://ghost.org/changelog/secondary-navigation/ Last updated: 2021-01-07T03:45:29.000Z Ghost Admin now supports secondary navigation, making it fast and simple to add or update links to your site's navigation menus. Head to the Design settings page in Ghost Admin to add your secondary navigation links: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/12/secondary-navigation.png) This means you can create a menu in your site's footer, or in the top right-hand corner. Find out how to add secondary navigation support in your theme in the [Handlebars Theme docs](https://ghost.org/docs/themes/helpers/navigation/?ref=ghost.org). ### Email newsletters for Ghost (beta) URL: https://ghost.org/changelog/native-email/ Last updated: 2021-02-27T16:59:56.000Z It's now possible to send email newsletters directly from Ghost. Save time, keep everything in one place and let your subscribers know when you've published new content in a couple of clicks. Last month we launched the [Members & Subscriptions](https://ghost.org/features/?ref=ghost.org) as part of the Ghost 3.0 release and, after listening to feedback from the first people to try out the new functionality, it was clear that solving email was the most important thing on everyone's mind! Building a trusted relationship with an audience is important and email newsletters are one of [the](https://localnewsinitiative.northwestern.edu/posts/2019/10/23/newsletters-subscriber-only/index.html?ref=ghost.org) [most](https://www.twipemobile.com/growing-your-subscribers-with-newsletters/?ref=ghost.org) [popular](https://whatsnewinpublishing.com/how-newsletter-innovations-are-driving-publisher-revenue?ref=ghost.org) (and stable) ways to do it. When the whole Ghost team got together in Thailand for one of our retreats a few weeks later (ps. we're hiring), we decided to put our heads together and create a first version of native email newsletter support inside Ghost. Now when you go to publish a post, you can also deliver it directly to your members via email. --- ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/12/image.png) \- --- Of course you can also set a custom subject line, see a preview, and send yourself a test email before actually publishing to make sure everything is just right. A beautiful new Ghost email template is included by default and supports as many different permutations of content from within the Ghost editor as possible, so you can focus on what matters most: *The content*. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/12/image-1.png) Last week's [Rediverge](https://rediverge.com/about/?ref=ghost.org) newsletter Emails are automatically targeted based on your post access level, so if you set a post to be 'Paid Members Only' then it will only be emailed to the paying subset of your audience. Each email is sent with an automatic unsubscribe link, and you can see/manage individual members subscription status from their profile. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/12/image-3.png) And, of course, each email contains a link to the web version - which is your published post! We've been testing this feature in production for about a month now, and we're really excited about how simple and fun it is to be able to *just write* and send a post to members from directly inside Ghost. ## Getting started In order to send email newsletters with Ghost, you need to enable the [Members](https://ghost.org/help/members-introduction/?ref=ghost.org) feature. Ghost connects with a bulk email API to handle sending your content. If you're using **Ghost(Pro)** email setup is done for you. For self-hosted installs, get the ball rolling with some API [configuration](https://ghost.org/help/members-requirements/?ref=ghost.org#setting-up-email-newsletters). Read more about native email in the Members [documentation](https://ghost.org/help/members-introduction/?ref=ghost.org) and check out these developer [recipes](https://ghost.org/help/members-introduction/?ref=ghost.org) from the theme docs to get further ideas about how you can use this feature alongside your Ghost publication. This is still very much a *beta* feature, so do keep that in mind as you're testing it. We'd love to hear your thoughts and feedback over on the [Ghost community forum](https://forum.ghost.org/c/members?ref=ghost.org)! --- **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users have already been upgraded and can start using this right away! Self-hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to [update](https://ghost.org/docs/update/?ref=ghost.org) to the latest version, and connect an email provider to start sending emails today. ### Accept payments with Google Pay URL: https://ghost.org/changelog/accept-google-pay/ Last updated: 2021-01-07T03:56:46.000Z Great news! Your readers can now support your creative work using Google Pay to subscribe to one of your premium plans. All Ghost members sites now have Google Pay support via our integration with Stripe. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/11/Google-Pay.png) Learn more about [creating a membership and subscription business](https://ghost.org/docs/members/introduction/?ref=ghost.org) using Ghost. **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users already have access to Google Pay payments. Self-hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to install the latest version. ### New theme helpers URL: https://ghost.org/changelog/new-theme-helpers/ Last updated: 2022-01-16T17:19:49.000Z Just before [Ghost 3.0](https://ghost.org/changelog/3-0/) went live we made an update to our handlebars templating to help with generating navigational links and combining values together: - `[link](https://ghost.org/docs/themes/helpers/link/?ref=ghost.org)` \- Create HTML links with dynamic classes - `[link_class](https://ghost.org/docs/themes/helpers/link%5Fclass/?ref=ghost.org)` \- Apply dynamic classes to elements depending on the current page - `[concat](https://ghost.org/docs/themes/helpers/concat/?ref=ghost.org)` \- Concatenate and link multiple things together such as template values and strings of text More information can be found in our theme documentation: [Ghost Handlebars Themes - Building a custom Ghost theme - DocsOur handlebars theme templating framework works with the Ghost API to build flexible publishing websites. Get all the tools you need to start building your custom theme here!![](https://ghost.org/icons/icon-512x512.png?v=188b8b6d743c6338ba2eab2e35bab4f5)GhostGhost![](https://ghost.org/images/meta/Ghost-Docs.jpg)](https://ghost.org/docs/themes/?ref=ghost.org) **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users already have access to these new helpers. Self-hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to install the latest release! ### Ghost 3.0 URL: https://ghost.org/changelog/3-0/ Last updated: 2021-01-11T02:43:23.000Z Today we released the third major version of Ghost, representing a total of more than 15,000 commits across almost 300 releases. The product is as fast and stable as it has ever been, and now it also has support for memberships, subscription revenue, and API driven modern site architectures. But you might be wondering about about the "$5M" thing. About 6 years ago we came up with an unconventional funding idea. We decided that rather than selling share capital and control of a business in return for money to operate, we would instead sell goods and services in return for money to operate. As a result of this choice, we were very fortunate to attract some of the world's most forward thinking investors to help steer the company: Our customers. **To date, Ghost has made $5,000,000 in customer revenue whilst maintaining complete independence and giving away 0% of the business.** Ghost is now used by the likes of Apple, DuckDuckGo, OpenAI, The Stanford Review, Mozilla, Cloudflare, Digital Ocean, and many, many more — all whilst operating as an independent non-profit organisation releasing open source software. We care a lot about making great publishing software, but we also care about proving that it's possible to build a company which is fundamentally good. If you're just looking for the highlights of what's new: check out our [3.0 launch page](https://ghost.org/features/?ref=ghost.org). What follows below is the extended story of how it all came to be, and everything that went into it. ## Ghost 3.0 — The Story ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/10/image.png) Ghost 3.0 is far and away the biggest release we've ever done, in terms of scale. We announced more today in one go than at any other point in our history - and more people were involved in this release than ever before. --- ## Memberships & subscriptions About three years ago we first started talking about what the next big focus for Ghost might be. We'd done a reasonable job of creating a new publishing tool which was much better to use than the alternatives, but we felt like we were missing out on solving a real, pressing need of modern publishers. In the conversations that we had with people, one core theme kept emerging that we couldn't ignore. Everyone seemed to be struggling with a viable business model for publishing, and an editorial strategy beyond trying to compete for as much traffic as possible. At the same time, a handful of publishers were beginning to have success with a new approach: Selling premium subscriptions to their work, creating a direct relationship with their audience - and providing value to them as customers. Ben Thompson's [Stratechery](https://stratechery.com/?ref=ghost.org) proved that this type of business could work with only a single person running it, while Dutch news site [De Correspondent](https://medium.com/de-correspondent/how-we-turned-a-world-record-in-journalism-crowd-funding-into-an-actual-publication-2a06e298afe1?ref=ghost.org) quickly proved that it could also function at a national scale, and [Patreon](https://patreon.com/?ref=ghost.org) began to show that it could work for artists and creators. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/10/members2-1.png) These new publishers were bringing the business model of Software as a Service (SaaS) to publishing, and proving that subscription commerce could work in that space, just as it had in software. As a subscription software business ourselves, this was a set of problems we understood all too well, and a set of economics which we knew inside out. When it comes to subscription billing, the hard part isn't actually the subscriptions or the billing. The hard part is the publishing platform to integrate *with* the subscriptions and the billing - that's the part nobody else is doing - and we were getting pretty good at building a flexible, modern publishing platform. As of today, Ghost is the first totally independent product out there with publishing<>subscriptions deeply integrated at the core, allowing anyone to build a recurring revenue subscription business. [Ghost Membership Software: Sustainable revenue for publishersDevelop a relationship with your audience & start a membership business in few clicks to generate a predictable, recurring revenue from your creative work.Ghost - The Professional Publishing Platform![](https://ghost.org/images/meta/ghost.png)](https://ghost.org/features/?ref=ghost.org) This is a first release, and one we're incredibly excited about, but there's a lot more to come. We think memberships and subscriptions fundamentally changes the relationship between publishers and their audiences in a way which is better for everyone involved. If you're curious about the business model, here's an extended interview I did this week with Ben Thompson: [Ghost 3.0, An Interview with Ghost CEO John O’NolanThere is a new offering in the subscription space: Ghost. John O’Nolan, the founder and CEO of the Ghost Foundation, explains what makes Ghost unique.![](https://stratechery.com/wp-content/uploads/2018/03/cropped-android-chrome-512x512-1-192x192.png)Stratechery by Ben ThompsonBen Thompson![](https://stratechery.com/wp-content/uploads/2018/03/cropped-android-chrome-512x512-1.png)](https://stratechery.com/2019/ghost-3-0-an-interview-with-ghost-ceo-john-onolan/?ref=ghost.org) > I find this extremely compelling ... I love the open source aspect ... and I look forward to seeing how Ghost develops. --- ## Ghost in the JAMstack The second half of the Ghost 3.0 is the shift in how we think about the technical architecture of the product itself. As we talked about [earlier in the year](https://ghost.org/changelog/jamstack/), we've been keeping a close eye on how modern web based products are evolving. We've been particularly excited by the JAMstack movement, which turns the traditional application model on its head: **Old way:** Make a dynamic app 👉 Generate cached HTML to make it fast **New way:** Generate a static site 👉 Add dynamic features to make it powerful This new architecture unlocks content management that is fundamentally built via APIs, webhooks and frameworks to generate robust modern websites. We've expanded everything Ghost can do in this space as a headless CMS, including detailed content APIs, admin APIs and custom integrations. Plus, we now also have native support and [documentation for all of the most popular static site frameworks](https://ghost.org/docs/content-api/?ref=ghost.org) out there: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/10/image-1.png) In fact, all of [Ghost.org](https://ghost.org/?ref=ghost.org) (including this post) is itself a [Gatsby.js](https://gatsbyjs.org/?ref=ghost.org) app with a headless Ghost back-end where this post was written, deployed statically to hundreds of different locations on [Netlify](https://netlify.com/?ref=ghost.org)'s global CDN — connected to our fast growing [library of Ghost integrations](https://ghost.org/integrations/?ref=ghost.org). We've been really enjoying this new workflow, and adapting Ghost to be a full-featured open source headless CMS wherever possible — because no matter how much you love static sites: code editors and development environments are never the best place to write blog posts. --- ## Continuous theme deployment with Github Actions One of the most common requests we've gotten over the years (understandably) is for a better way to deploy Ghost themes to production. The process of manually making a zip, navigating to Ghost Admin, and uploading an update in the browser can be pretty arduous over time. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/10/image-2.png) Casper 3.0 Now, a combination of our JAMstack work to make a great [Admin API](https://ghost.org/docs/admin-api/?ref=ghost.org) —combined with [Github Actions](https://github.com/marketplace/actions/deploy-ghost-theme?ref=ghost.org)— means it's incredibly easy to continuously sync custom Ghost themes to your live production site with every new commit. Create a new custom integration in Ghost, copy your Admin API keys into your repository's Secret tokens, then copy and paste over the template Github Actions `workflow.yaml` \- and that's all there is to it. [Here's an example](https://github.com/TryGhost/Lyra/blob/master/.github/workflows/main.yml?ref=ghost.org). --- ## A brand new WordPress migration plugin We launched Ghost with a very basic WordPress migrator plugin, which we then proceeded to neglect for about 5 years, making it exceedingly difficult for anyone to move their data between the platforms or have a smooth experience. That changes today, with our overhauled [WordPress migration plugin](https://wordpress.org/plugins/ghost/?ref=ghost.org): ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/10/image-5.png) The new plugin provides a single-button-download of your full WordPress content + image archive in a format which can be dragged and dropped into Ghost's importer. It's an infinitely better experience all round, and fully compatible with Ghost 3.0. Credit for this belongs entirely to [Nathan Jeffery](https://twitter.com/nuclearpengy?ref=ghost.org), who singlehandedly took on rewriting the plugin for us as an open source contributor. He did an incredible job and we're immensely grateful for all his help. --- ## How to get Ghost 3.0 All new sites on **Ghost(Pro)** are running Ghost 3.0\. You can spin up a new site in a few clicks with an unrestricted [14 day free trial](https://ghost.org/pricing/?ref=ghost.org). If you haven’t tried Ghost for a while, now’s a great time to give it a fresh shot! **Already got a site on Ghost(Pro)?** You'll be automatically upgraded. If you'd like to expedite that process, you can log into [Ghost.org](https://ghost.org/?ref=ghost.org) and click the “Upgrade to 3.0” button! **Self-hosting Ghost?** Upgrading to 3.0 is very straightforward with Ghost-CLI and should take about 15 mins - [here's the Ghost update guide](https://ghost.org/docs/update/?ref=ghost.org). ## What’s coming up next Ghost 3.0 is our first step into a totally new set of use-cases and features. We're keen to hear your feedback about using members over on the [Ghost forum](https://forum.ghost.org/?ref=ghost.org) — or come and help out on [Github](https://github.com/TryGhost?ref=ghost.org) if you’re interested in being a part of building the next features along with us. Nearly everything we do is open source, and we can always use the help! #### Know someone who would be interested? Share this: > ✨Ghost 3.0 — A new business model for independent publishing, and a major upgrade: > > 💸 Native memberships & subscriptions > 👩‍💻 Full JAMstack support > 🔌 Tons of new integrations > ⚙️ Automation with Github Actions > > All the details 👉[https://ghost.org/3/](https://ghost.org/3/?ref=ghost.org) **Questions? Comments?** We're hanging out all day over [on Product Hunt](https://producthunt.com/posts/ghost-3-0?ref=ghost.org)! 😸 ### New bookmark cards URL: https://ghost.org/changelog/bookmark-cards/ Last updated: 2021-01-07T23:34:02.000Z We've introduced a new bookmark card to the editor which allows you to present links in a much richer format! When using a URL with the right meta information, it can show the page title, excerpt, author, publisher and even a preview image. This is a great way to share links from sites that don't have automatic embeds. Here's an example of a bookmark card in action: [Ghost Handlebars Themes - Building a custom Ghost theme - DocsOur handlebars theme templating framework works with the Ghost API to build flexible publishing websites. Get all the tools you need to start building your custom theme here!Ghost - The Professional Publishing Platform![](https://ghost.org/images/meta/Ghost-Docs.jpg)](https://ghost.org/docs/themes/?ref=ghost.org) ### How it works There's two ways to add a bookmark card to your posts: 1. Paste a link as the first thing in a blank paragraph – if no automatic embed is available, the editor will default to the bookmark card. 2. Manually select the bookmark card from the (+) menu or by typing `/bookmark` on a new line and pasting your URL – or for a shortcut `/bookmark {url}` Bookmark cards require a minor CSS update in your theme, [grab the code here](https://ghost.org/docs/themes/content/?ref=ghost.org#bookmark-card). **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users already have access to bookmark cards. Self-hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to install the latest release! ### Eleventy and Ghost URL: https://ghost.org/changelog/eleventy/ Last updated: 2021-01-11T02:25:25.000Z We’ve expanded our roster of headless starter repositories – now you can build a completely custom front-end for a Ghost site with Eleventy. Earlier this year [we shared what's possible with Ghost when used as a flexible headless CMS](https://ghost.org/changelog/jamstack/). One of those possibilities being the option to deliver [content via our API to a Gatsby site](https://ghost.org/docs/jamstack/gatsby/?ref=ghost.org). The end result: A robust and familiar space to create, organise and store your content, with a blazing fast static site on the front-end. We're now extending our documentation to show what's possible with the Content API and [Eleventy](https://11ty.io/?ref=ghost.org), a popular static site generator in the JAMstack space. ![The 11ty logo](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/08/eleventy-starter-banner.png) ## What is Eleventy? Eleventy, or 11ty for those of you in a hurry, is a static site generator that was designed to be the JavaScript alternative to [Jekyll](https://jekyllrb.com/?ref=ghost.org). Without going into too much depth; [Eleventy](https://www.11ty.io/docs/?ref=ghost.org) is designed to be a flexible and easy tool to take an assortment of files and turn them into a [static website](https://www.11ty.io/docs/resources/?ref=ghost.org#static-sites). Those files could be [Markdown](https://daringfireball.net/projects/markdown/?ref=ghost.org), HTML, [Nunjucks](https://mozilla.github.io/nunjucks/?ref=ghost.org), [Handlebars](https://handlebarsjs.com/?ref=ghost.org) or even straight up JavaScript! Eleventy works [without configuration](https://www.11ty.io/docs/resources/?ref=ghost.org#zero-config) – meaning it's accessible to newcomers but not overly opinionated on file structure and settings. ### How does this flexible static site generator fit in with Ghost? I'm glad you asked that question: Under the hood of Eleventy is a [clever data pipeline](https://www.11ty.io/docs/data/?ref=ghost.org) that is accessible from any template file within an Eleventy project. It's possible to feed any type of data into it, including content coming from the Ghost content API. ![Diagram showing Ghost data being fed into Eleventy and subsequently Eleventy being deployed to various hosting platforms](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/08/eleventy-starter-diagram.png) Posts, pages, tags, authors, global site data; you name it. Eleventy is built on top of [Node.js](https://nodejs.org/en/?ref=ghost.org) (great choice if you ask us) which means it works really well with [our open source JavaScript libraries](https://ghost.org/docs/content-api/?ref=ghost.org). ## So what's new? We're excited to share what's possible with the Ghost API – hopefully these resources inspire and help you to create unique websites using Ghost as a headless CMS. ### 🚢 NEW: [Eleventy Starter Ghost](https://github.com/TryGhost/eleventy-starter-ghost/?ref=ghost.org) We've created an official **Eleventy starter** repository, similar to our Gatsby starter, that's all setup to consume content from Ghost and build out a simple flat-file website with a clean blog-style design. The best way to use [this starter is to fork it](https://github.com/TryGhost/eleventy-starter-ghost/?ref=ghost.org). Want to see it in action? Check out this [live demo we've created](https://eleventy.ghost.org/?ref=ghost.org). ![Screenshot of Eleventy & Ghost demo site](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/08/61880744-5b138980-aeed-11e9-9d8e-07c0b3c03cc5.png) *Demo: [eleventy.ghost.org](https://eleventy.ghost.org/?ref=ghost.org)* ### 🚢 NEW: [Eleventy & Ghost Documentation](https://ghost.org/docs/jamstack/eleventy/?ref=ghost.org) To coincide with this starter we've also created documentation on how to use this starter as well as ways you can use the [Content API Client Library](https://ghost.org/docs/content-api/?ref=ghost.org) to expose specific parts of your content to Eleventy. ## 💠 Works great with Netlify This combination of Ghost and Eleventy works great when deploying to [Netlify](https://www.netlify.com/?ref=ghost.org). With the power of webhooks we can automatically let Netlify know when a change is made in Ghost and trigger a deploy causing Eleventy to rebuild the website with the new content. Check out our [Netlify Integration page](https://ghost.org/integrations/netlify/?ref=ghost.org) for more information. ## What the future holds From a personal perspective I'm very excited about the possibilities that exist with [headless CMSs](https://headlesscms.org/?ref=ghost.org), APIs and static site generators – AKA the [JAMstack](https://jamstack.org/?ref=ghost.org). Ghost is a battle-tested headless solution for businesses who need the power and flexibility of a modern CMS to build and run successful digital publications ✨ For those of you that don't know me; my name is Dave and I recently joined the team as Developer Advocate. I've been a fan of the JAMstack for many years, creating open source projects and contributing to the community along the way. Feel free to [get in touch with me via Twitter](https://twitter.com/daviddarnes?ref=ghost.org), or [hop onto the Ghost Forum](https://forum.ghost.org/?ref=ghost.org) to share what you're making with Ghost! --- Put the new Eleventy starter and Ghost through their paces with a free, no strings attached [**Ghost(Pro)**](https://ghost.org/pricing/?ref=ghost.org) trial – or get started with a [self-hosted](https://ghost.org/docs/install/ubuntu/?ref=ghost.org) install. ### Custom image alt tags URL: https://ghost.org/changelog/image-alt-text-support/ Last updated: 2021-01-07T03:56:47.000Z We just shipped custom image alt tag support in the Ghost editor. This is one of our most requested features – and great news for accessibility and search engine optimisation for your Ghost publication. Previously, you'd need to use a Markdown card to add an image alt tag. Now you can create alt tags on the go directly from the editor, without the need to add any additional cards or custom tags. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/08/image-alt-tag.gif) To write your alt tag, hit the `alt` button on the right in the caption line, type your alt text and then hit the button again to return to the caption text. ***[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)* users already have access to custom image alt tags. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to install the latest release!* ### Ghost Admin design updates URL: https://ghost.org/changelog/ghost-admin-updates/ Last updated: 2020-02-24T11:23:07.000Z Ghost Admin just had a facelift and some big improvements to usability. It's now much easier to manage your publication's content and keep everything organised. In addition to a new site preview feature, it's now possible to browse your published posts and drafts in a much more intuitive way with filters for author, tag, status and date. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/07/ghost-admin-design-update-1.png) ### A new Ghost Admin API URL: https://ghost.org/changelog/admin-api/ Last updated: 2021-01-10T23:31:50.000Z Ghost has always had a REST API at its very core, but for the first few years while we were fleshing out basic features there wasn't a whole lot you could do with it. Now, all your favourite apps work with Ghost! At the beginning of this year we announced a brand new, public [Content API](https://ghost.org/docs/content-api/?ref=ghost.org) making it possible to easily pull any content **out** of Ghost. This also made it possible, for the first time, to use Ghost as a fully [headless CMS](https://ghost.org/changelog/jamstack/). Today we're excited to be able to share our new [Admin API](https://ghost.org/docs/admin-api/?ref=ghost.org), which does just the opposite: It creates total flexibility around how you get content **in** to Ghost. Now you can use mobile and desktop writing clients, or create your own custom Ghost Admin integrated into your own apps/workflow. It's the final piece of the puzzle to complete the architecture we've been working towards for a few years now, which involves making this little green dot less lonely: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/05/ghost-architecture.png) All of these different pieces come together to create a robust publishing experience – but because they're decoupled, there's room for customisation to suit any modern development and workflow requirements. Sounds great, so what does all that mean in practice? ## Brand new integrations Firstly, we're thrilled to be launching the new Ghost Admin API with 4 wonderful partners who we've been working with for the last few months: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/05/ghost-admin-apps--1-.png) ### 🚢 [NEW: Ulysses Integration](https://ghost.org/integrations/ulysses/?ref=ghost.org) One of the most requested integrations we've ever had! Ulysses is an extremely powerful and widely loved desktop editor for Mac, now with full Ghost integration so you can send draft posts directly to Ghost. ### 🚢 [NEW: iA Writer Integration](https://ghost.org/integrations/ia-writer/?ref=ghost.org) The original Ghost editor was partially based on iA Writer's gorgeous minimal design, and as of iA Writer 5.2 you can now also send posts directly to Ghost from both MacOS and iOS. The iA Writer team helped us refine and improve the Admin API while it was in development, so a big thanks to them. ### 🚢 [NEW: Write.as Integration](https://ghost.org/integrations/write-as/?ref=ghost.org) After being unceremoniously [kicked-off](https://write.as/blog/ending-our-medium-integration?ref=ghost.org) the Medium API for no reason at all a few months ago, we reached out to the Write.as team to offer them an open alternative. We're thrilled to be able to share a great new integration here which can never be shut down or restricted. ### 🚢 [NEW: Zapier v2 Integration](https://ghost.org/integrations/zapier/?ref=ghost.org) Of course we couldn't add a new API without a major update to our Zapier integration - which hits V2 today - and opens up Admin API access to over 1,000 other apps and services all over the web. You can now send content into Ghost from almost anywhere! > *Note: If you're already using Ghost<>Zapier, you'll need to remove and re-connect your Ghost site in order to use the new version of the app.* --- ## Developer details Technically speaking, there are several different aspects to this update which come together to make all these new things possible. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/ghostapi.png) ### 🚢 [NEW: Admin API](https://ghost.org/docs/admin-api/?ref=ghost.org) The latest updates provides secure role-based permissions, predictable resource URLs, standard HTTP verbs, response codes and authentication. It enables full control for creating, editing or deleting publication data. Ghost Admin uses the Admin API – which means you can do everything Ghost Admin can do, and more. Unlike several other platforms, our Admin API isn't a bolt-on afterthought; it's a first class citizen at the heart of the core platform. ### 🚢 [NEW: JavaScript Client Library](https://ghost.org/docs/admin-api/javascript/?ref=ghost.org) We've also shipped an API client for JavaScript designed for use with integrations that use private API keys, to simplify authentication and make it easier to read and write data. This supports publishing workflows such as sending content from an desktop editor, automating social media sharing or syncing data to and from email campaigns. ```javascript const api = new GhostAdminAPI({ url: 'https://localhost:2368', key: 'YOUR_ADMIN_API_KEY', version: 'v2' }); api.posts.add({ title: 'My first draft API post', mobiledoc: '{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"My post content. Work in progress...\"]]]]}' }); ``` Working example! We're continuously adding new tools to our [integrations library](https://ghost.org/integrations/?ref=ghost.org), including deep integrations that are supported by our Admin API. --- ****[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users have already been updated and have access to everything mentioned here. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to get the latest features by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Language support in code cards URL: https://ghost.org/changelog/language-selection/ Last updated: 2021-01-04T04:34:47.000Z Add a language to blocks of code on your site using code cards in the Ghost editor, which now support language selection and captions! You can now set a language in code cards in Ghost, just type \`\`\`javascript to create a new codeblock. Or use the user interface if you prefer: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/05/code-language-select-1.gif) You can also apply syntax highlighting using a library like [prism.js](https://prismjs.com/?ref=ghost.org), or by using [code injection](https://lookingsideways.co.uk/super-simple-code-highlighting-for-ghost/?ref=ghost.org). Here's a demo of a CSS code block: ```css body { background: black; } .container { position: relative; width: 800px; height: 600px; background: #214760; margin: 0px auto; } ``` New: Add captions to code cards 😍 Once your code block is complete, you can insert a caption to add more context for your readers! ### Admin API support We've also added caption and language extraction for code blocks when converting HTML via our [Admin API](https://ghost.org/docs/admin-api/?ref=ghost.org) 💪 --- ****Ghost(Pro)** users have already been updated and have access to language selection and captions for code cards. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Install privacy focussed analytics on your site URL: https://ghost.org/changelog/new-analytics-integrations/ Last updated: 2021-01-04T04:28:53.000Z It's possible to integrate your Ghost publication with modern analytics tools that are privacy-focused, GDPR compliant and don't track your site visitors. Find out how with the latest additions to our integrations library: [Simple Analytics](https://ghost.org/integrations/simple-analytics/?ref=ghost.org) and [Fathom](https://ghost.org/integrations/fathom/?ref=ghost.org). We're excited to add these solutions alongside [other popular analytics tools](https://ghost.org/integrations/?tag=analytics&ref=ghost.org), like Google Analytics and Segment. Keeping on top of your site metrics is a breeze using sensible code injection in Ghost. ### Improved in-app notifications URL: https://ghost.org/changelog/improved-in-app-notifications/ Last updated: 2019-05-22T05:21:49.000Z We've just rolled out some new improvements to how we inform you about exciting new features, upgrades and other important information inside Ghost. Now you'll see more personalised information in the admin area and each staff user can dismiss notifications at their own leisure. Keep an eye out for these notifications to find out about the latest features in Ghost! ### Preview your site within Ghost admin URL: https://ghost.org/changelog/view-site/ Last updated: 2019-05-22T05:21:18.000Z You can now access a live preview of your site from within the admin panel using the "View site" link. So if you're adding new content or updating your theme, you can preview your changes without having to leave the page 🎉 ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/view-site-ghost-admin.png) ### Separated posts & pages URL: https://ghost.org/changelog/separated-posts-pages/ Last updated: 2019-05-22T05:21:09.000Z Up until now posts and pages in Ghost were mixed together and you'd have to locate a checkbox to switch between them. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/image-3.png) Now, they're separate in Ghost admin and easier to navigate between and filter. ### Custom canonical URLs URL: https://ghost.org/changelog/canonical-urls/ Last updated: 2021-01-10T23:31:50.000Z You can now implement custom canonical links directly in the Ghost editor for guest posts, multiple versions of the same page or when you need to curate a list of links to external sources A canonical URL allows you to tell search engines what the preferred URL is for content that can be found on multiple URLs, or even multiple websites. It's a common technique used for SEO that is implemented with the `rel="canonical"` attribute in the `` of any page on your site. When you create new content on a Ghost publication, a self-referencing canonical URL that points towards your new post as the preferred version is automatically applied by default. Now we've introduced a new feature that allows you to override this completely and implement custom canonicalisation from within the editor. ## Using custom canonicals in Ghost When authoring any post or page, you can access the custom canonical URL feature from within the meta data area of the post settings menu: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/Custom-canonical.png) It's also possible to use the canonical URL feature via our APIs using the `"canonical_url":` field. ## When to use the custom canonical feature The primary reason to use a custom canonical is to ensure that the search engines know which page to index, rank and display in the results pages when there are several active versions of similar content on any domain. Here's a handy in-depth [overview from Moz](https://moz.com/blog/rel-canonical?ref=ghost.org) about when and how to use canonicals. As a rule of thumb, when you're removing or moving content, a 301 redirect is required. When you're dealing with multiple versions, a rel="canonical" is required. Here's some example use cases of a custom canonical: ### Guest posts ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/Syndicating-Content.jpg) One of the most common use cases of a custom canonical is when you'd like to publish guest content on your site that has already been posted by the author on another site. It's now possible to syndicate an authors existing content (with permission, of course) and publish it on your Ghost site with a custom canonical that points to the original published version. All you need to do is add the full URL including `https://` to the new canonical URL field in post settings. ### Multiple versions of the same pages ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/Multiple-Versions.jpg) When you have multiple versions of content is identical, or near-identical, you’ll need to implement a custom canonical on each page that specifies the preferred version. Examples of circumstances where you might have multiple versions include: Running A/B tests, multiple pages for tracking purposes, similar pages targeting slightly different audiences or multiple pages for paid advertising campaigns. These are pages that you would like visitors to be able to access, without confusing the search engines and hindering your SEO. ### Curated lists to external sources ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/What-we-re-reading.jpg) If you’d like to build a curated list of links, you can use the canonical feature for this too. For example, you could create something similar to the **What We’re Reading** list on [NiemanLab](https://www.niemanlab.org/?ref=ghost.org): ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/NiemanLab-curated-list-of-links.png) *NiemanLab's curated list of top stories from external sources* This can be created using the `{{get}}` helper to fetch content from Ghost, and the `{{canonical_url}}` instead of `{{url}}` to link to the original source. ```handlebars {{#get "posts" filter="primary_tag:link"}} {{#foreach posts}}
{{title}}

{{excerpt}}

{{/foreach}} {{/get}} ``` ## Optimise your site with built-in SEO Ghost always implements automatic canonicals on *every* page of your site when you're not using the custom canonical URL feature. This ensures your SEO is clean and prevents any URLs with tracking parameters from being indexed. As for the rest of your SEO optimisation, with Ghost much of it happens in the background without any extra effort, plugins or downloads. This includes detailed structured data ([Schema.org](https://schema.org/?ref=ghost.org)), automatically generated XML sitemaps, permalinks, AMP and semantic markup. Leaving you with more time to focus on nailing your custom meta data for Google, Facebook and Twitter 👩‍💻 --- ****Ghost(Pro)** users have already been updated and have access to custom canonicals. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Advanced Sitemap Plugin for Gatsby URL: https://ghost.org/changelog/advanced-sitemaps-gatsby/ Last updated: 2021-01-11T02:25:25.000Z We just shipped a new plugin that automatically generates advanced sitemaps for static sites built with Gatsby In recent months we've been exploring using the JAMstack and building static sites for our own projects - it's been getting us really excited about the future of online publishing. Our journey began when we rebuilt the Ghost [docs](https://ghost.org/docs/?ref=ghost.org) site from the ground up using Gatsby and Netlify, before rolling out [Ghost on the JAMstack](https://ghost.org/changelog/jamstack/). This means you can use Ghost as a fully headless CMS, build a static front-end using a tool of your choice, and deploy it all with a speedy content delivery network. One of the fun things about exploring new open source tech is that when functionality is missing, the best solution is to go ahead and build it yourself. That's why we decided to build an ****advanced sitemap plugin** for Gatsby, which automatically generates organised sitemaps for any Gatsby site. ## Effective SEO with automatic sitemaps The default Gatsby sitemap plugin generates a simple blob of raw XML for all your pages. We wanted to take this one step further for our docs site and emulate the advanced sitemap structure that we use on all Ghost publications by default. The advanced sitemap plugin adds more power to your site, by generating single or multiple sitemaps with full XSL templates to make them neatly organised and easy to read by humans or machines. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/advanced-sitemaps-2.png) ****Demo:** **[https://ghost.org/sitemap.xml](https://ghost.org/sitemap.xml?ref=ghost.org)** The plugin will also allow you to generate advanced, individually organised sitemaps based on your data with a small amount of additional configuration. Once it's configured, your sitemap will always be up-to-date, ensuring your site content is being crawled and indexed for optimum SEO performance. --- ### Installing the plugin 🔌 This plugin was built to work with any Gatsby project, whether you're using Ghost as a Headless CMS, or any other software to build your site. It's completely free and open source under the MIT licence. Head to the [Gatsby plugin library](https://www.gatsbyjs.org/packages/gatsby-plugin-advanced-sitemap/?=sitemap&ref=ghost.org) page to get started, or download the plugin directly from [GitHub](https://github.com/tryghost/gatsby-plugin-advanced-sitemap?ref=ghost.org)! ### Curated news for independent publishing URL: https://ghost.org/changelog/publisher-weekly/ Last updated: 2019-05-22T05:46:57.000Z Our new weekly newsletter is a hand-picked roundup of the latest news in publishing, sent to a discerning group of people who are invested in the future of the industry. If you want to stay in the loop with the most important news and information in the publishing industry, but don't have the time to sift through the news, you can sign up for our newsletter - [**Publisher Weekly**](https://publisherweekly.org/?ref=ghost.org) \- and get the week's hot takes delivered to your inbox every single Sunday. ## What's behind all this? Digital publishing is rapidly evolving before us as the landscape of technology, business models and responsible journalism shifts. We're at a critical point where advertising money is fast disappearing and public trust in media is at an all time low. Clickbait is a dying trend and there's an abundance of information and distraction out there. How do publishers who want to make a difference in their field navigate these changing tides? We tried to find a newsletter to sign up to ourselves but couldn't find what we were looking for, so we decided to make one ourselves. Publisher Weekly consolidates the best information about what the future of publishing looks like for all of us and it is delivered to you, for free, once per week. Ghost has a vested interest in the future of publishing - the driving force behind our mission is to build open source tools that allow independent publishers and writers to share their ideas with the world. The future of online media is changing and we're excited to see how we all collectively play a part in that. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/02/thought-catalog-354861-unsplash.jpg) > **Publisher Weekly – An ongoing examination of what the future of publishing might hold, who the key players are, and what's coming next for all of us.** ## The best tools in the industry You can find a useful resources section on the new Publisher Weekly site - listing the most important tools for building successful publications, as well as our favourite newsletters, podcasts and resources covering all things publishing. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/02/Resources-2.png) Discover the most important publishing tools & resources If you're looking for a platform to use to share your content, how to engage with your audience, or how to add revenue streams to publishing, look no further than [**Publisher Weekly resources**](https://publisherweekly.org/resources/?ref=ghost.org). ## Who is the newsletter for? Publishers of all kinds subscribe to Publisher Weekly - so whether you are a writer, marketer, creator, journalist or someone who depends on publishing content for a living, then this newsletter is for you! Our main focus is to cover what is happening at the intersection of business models, technology and modern journalism. We are seeing [emerging business models](https://reutersinstitute.politics.ox.ac.uk/risj-review/subscriptions-subsidies-and-pressure-platforms-media-trends-2019?ref=ghost.org) taking the place of digital advertising, with more and more publishers of all sizes beginning to build [sustainable businesses on top of publishing](https://stratechery.com/2017/the-local-news-business-model/?ref=ghost.org). We're bringing all of this information together so that publishers like you can stay ahead of the curve. ## Sign up for your free publishing updates Anyone can subscribe to Publisher Weekly for free, you just need to enter your email address to starting getting your weekly updates. You can expect to get one email per week and of course you can unsubscribe any time. If you want to start a conversation or [submit an interesting story](https://publisherweekly.org/submit/?ref=ghost.org) – we're interested in hearing from you! --- **Questions? Comments?** We're hanging out all day over [on Product Hunt](https://www.producthunt.com/posts/publisher-weekly?ref=ghost.org)! 😸 ### Ghost on the JAMstack URL: https://ghost.org/changelog/jamstack/ Last updated: 2021-01-08T03:53:25.000Z After some major updates to Ghost's public API and tooling, it's now possible to use Ghost as a completely decoupled headless CMS. Ghost has always been architected into 3 distinct areas: A core Node.js API, an Ember.js Admin client, and a speedy Handlebars.js front-end theme layer. Until now those 3 areas have been fairly tightly coupled, so it hasn't been possible to use them separately. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/ghost-core-1.png) ## The static-site revolution The last few years have seen lots of progress around static site generators, front end frameworks, and API-centric infrastructure. There have [never been more options](https://www.staticgen.com/?ref=ghost.org), and the competition between them is generating some very cool products such as [Gatsby](https://www.gatsbyjs.org/?ref=ghost.org), [Hugo](https://gohugo.io/?ref=ghost.org), [Hexo](https://hexo.io/?ref=ghost.org), [Nuxt](https://nuxtjs.org/?ref=ghost.org) and [many more](https://www.staticgen.com/?ref=ghost.org). The way these systems work is by pulling content either from a filesystem or API endpoint and running a build task to generate an entire site in *static* HTML. The end result = wildly fast websites which have no back end and can be deployed just about anywhere. With the latest updates to Ghost, you can now replace the Ghost theme layer completely in favour of a front-end framework which builds your site statically from the Ghost API - effectively running Ghost as a Headless CMS. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/headless-ghost.png) ## The headless-cms evolution Most static site generators work by storing Markdown files locally in the code repository, and in practice this works really well for small sites! But, it gets messy quickly with any sort of scale, and there's no admin client or API. You need a code editor to write content, you need a properly configured GIT workflow to publish, and your content is limited to just your website. Fine for developers with smaller sites, but not so much for other use-cases! This is where a headless CMS comes in. Now you can run a Node.js back end service with a stable, production ready REST API as your content infrastructure with a beautiful matching admin client - and it's all completely free, open source, and MIT licensed. You use Ghost for authoring, and then build out your front-end to pull from the API in any way that you prefer. - Developers get to use their preferred stack - Writers get to use their preferred editor - Performance is the maximum possible *(no back-end, it's just HTML!)* - Security is the maximum possible *(seriously, it's just HTML!)* Building sites in this way has become known as the [JAMstack](https://jamstack.org/?ref=ghost.org) \- (as in **J**avaScript, **A**PIs, **M**arkup) - and has been progressing rapidly for some time. When you start to look at the bigger picture of [the content mesh](https://www.gatsbyjs.org/blog/2018-10-04-journey-to-the-content-mesh/?ref=ghost.org), it really starts to feel like an inevitable future is upon us. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/ghost-jamstack.png) No more platform-specific plugins and extensions. Just one front-end, and many APIs; all connected together and served as a single site or application. ## So what's new? There isn't one headline feature to announce here, but rather a collection of additions, improvements and changes to Ghost which unlock all kinds of new possibilities for what developers can build with the platform. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/ghostapi.png) ## Ghost API updates Ghost has had a full JSON API since day 1, but last month we released a completely new version of it with support for key generation and webhooks. ###### 🚢 NEW: [Content API](https://ghost.org/docs/content-api/?ref=ghost.org) The new content API is what delivers published content to the world. Access from any client to render your content on the web, app or any other embedded media. Access control is managed via API key, and includes a simple Mongo-like query language for powerful, advanced filtering. ###### 🚢 NEW: [Admin API](https://ghost.org/docs/admin-api/?ref=ghost.org) While the Content API sends your content out, the Admin API gives you the flexibility to send content **in** to Ghost from mobile and desktop writing clients like [Ulysses](https://ghost.org/integrations/ulysses/?ref=ghost.org) or [iA writer](https://ghost.org/integrations/ia-writer/?ref=ghost.org), or to create your own custom apps and workflows. ###### 🚢 NEW: [Custom integrations](https://ghost.org/integrations/custom-integrations/?ref=ghost.org) \+ [webhooks](https://ghost.org/docs/webhooks/?ref=ghost.org) New API clients can now be registered as custom integrations with dedicated API keys, along with their own outgoing webhooks to notify external services when an event takes place in Ghost. ###### 🚢 NEW: [JavaScript API library](https://ghost.org/docs/content-api/javascript/?ref=ghost.org) \+ [SDK](https://ghost.org/docs/content-api/javascript/?ref=ghost.org) As well as an official JavaScript client library for the Ghost API, we've also started pulling out common front end helpers from our Ghost theme API layer (eg. a tags helper to return a list of linked tags) and turning them into a JavaScript SDK to work with other front-ends and frameworks. ```javascript const GhostContentAPI = require('@tryghost/content-api'); const GhostHelpers = require('@tryghost/helpers'); const api = new GhostContentAPI({ host: 'https://demo.ghost.io', key: '22444f78447824223cefc48062', version: 'v2' }); api.posts .browse({include: 'tags,authors'}) .then((posts) => { posts.forEach((post) => { console.log(post.title, GhostHelpers.tags(post, {prefix: 'tagged in '})); }); }) .catch((err) => { console.error(err); }); ``` Real example! Copy/paste to test for yourself ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/gatbsy.png) ## Official Gatsby.js Source Plugin + Starter We started rebuilding our [Ghost Docs](https://ghost.org/docs/?ref=ghost.org) site at the end of last year we set out to use Ghost as a headless CMS, along with a front-end written in [Gatsby.js](https://gatsbyjs.org/?ref=ghost.org). We fell in love hard and fast, and have been building new things with Gatsby ever since. So we're thrilled to announce: ###### 🚢 NEW: [gatsby-source-ghost](https://github.com/tryghost/gatsby-source-ghost?ref=ghost.org) plugin A straightforward Gatsby source plugin which wraps the Ghost API and makes it compatible with Gatsby and GraphQL, so it's quick and easy to load all your Ghost data into any Gatsby project. ###### 🚢NEW: Advanced [sitemap plugin](https://github.com/tryghost/gatsby-plugin-advanced-sitemap?ref=ghost.org) for Gatsby We wanted to emulate the advanced sitemap structure that we use on all Ghost publications by default for Gatsby, so we created this SEO friendly open source plugin which is available for anyone to use! ###### 🚢 NEW: [gatsby-starter-ghost](https://github.com/tryghost/gatsby-starter-ghost?ref=ghost.org) We've also created an official **Gatsby starter** repository, similar to our [starter theme](https://github.com/tryghost/starter?ref=ghost.org), pre-configured to get content from Ghost and output it in a clean, blog-style design. The fastest way to get up and running with Gatsby and Ghost is to fork this repository, and check out our [Gatsby docs](https://ghost.org/docs/jamstack/gatsby/?ref=ghost.org). ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/gatsby-starter-ghost.jpg) Demo: [gatsby.ghost.org](https://gatsby.ghost.org/?ref=ghost.org) — It's fast. Really, really fast. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/perf-1.png) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/10/netlify.png) ## Official Netlify Support Deploying all of this should be easy, and it is! Our Gatsby starter is fully set up to deploy to [Netlify](https://netlify.com/?ref=ghost.org), which is the same setup we use for Ghost Docs. On top of that, we've created: ###### 🚢 NEW: [Netlify integration for Ghost](https://ghost.org/integrations/netlify/?ref=ghost.org) The official integration guide for Netlify explains how to set up outgoing webhooks in Ghost to trigger a site rebuild on Netlify. This means that any time you publish, update or remove any content in Ghost, the front end will automatically update. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/image-8.png) ## Front-end frameworks Since the latest Ghost API updates mean you can bring your own front-end and build entirely custom publications, we've also added new documentation for some of the most popular static site generators around. Find out how to get started using Ghost as a Headless CMS with: ###### 🚢 [Eleventy](https://ghost.org/docs/jamstack/eleventy/?ref=ghost.org) ###### 🚢 [Next.js](https://ghost.org/docs/jamstack/next/?ref=ghost.org) ###### 🚢 [Gridsome](https://ghost.org/docs/jamstack/gridsome/?ref=ghost.org) ###### 🚢 [Nuxt.js](https://ghost.org/docs/jamstack/nuxt/?ref=ghost.org) ###### 🚢 [Hexo](https://ghost.org/docs/jamstack/hexo/?ref=ghost.org) ###### 🚢 [VuePress](https://ghost.org/docs/jamstack/vuepress/?ref=ghost.org) --- ## Future-proof publishing What we like most about these emerging development workflows is how they reduce vendor lock-in. Converging disparate technologies under a single front-end centralises otherwise decentralised services in a way which caters predominantly to the needs of the site owner, rather than the platform. Making Ghost work as a headless CMS in this new paradigm feels like it's good for users, and good for the web as a whole. So we're really excited about it! If you're still curious about the rise of the JAMstack, check out this excellent talk by Netlify co-founder Matt Biilmann: We're really excited to be a part of the JAMstack movement and, as of today, Ghost is now the biggest open source headless CMS project in the wild: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/headless-cms.jpg) [headlesscms.org](https://headlesscms.org/?ref=ghost.org) \- Ranked by Github stars --- ****[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users have already been updated and have access to everything mentioned here. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to get the latest features by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Organise gallery images URL: https://ghost.org/changelog/organise-gallery-images/ Last updated: 2019-05-22T05:21:00.000Z Organise visual content in your posts with image galleries that now support drag and drop to re-order your images. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/03/organise-gallery-images.gif) ### New open-source Ghost themes URL: https://ghost.org/changelog/free-ghost-themes/ Last updated: 2021-01-07T04:15:41.000Z We've shipped three shiny new Ghost themes to the Marketplace that are ready to use, fully open-source, free and extensible. Plus: a new starter theme for developers! When publishing on an independent platform like Ghost, you have the freedom to modify your site and make it look exactly the way you want it to. Ghost themes can be built from scratch, or you can use beautiful pre-made themes from our **[Marketplace](https://ghost.org/marketplace/?ref=ghost.org)**, with free and premium options available. ## Free Ghost themes ✨ The latest additions to the marketplace are three open-source magazine style themes, that are ready to download and install on any Ghost publication. ### Massively [Massively](https://massively.ghost.io/?ref=ghost.org) is a fully responsive, article focused design which is built around a large feature background image. The theme was designed by [@ajlkn](https://twitter.com/ajlkn?ref=ghost.org) for [HTML5 UP](https://html5up.net/?ref=ghost.org) and ported to Ghost as a free theme with Creative Commons & MIT licenses, making it highly customisable. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/massively-cropped.png) This theme works great for publications with text-heavy articles as well as those that feature lots of visual media. Download the theme [here](https://github.com/TryGhost/Massively?ref=ghost.org). ### Editorial The [Editorial](https://editorial.ghost.io/?ref=ghost.org) theme was also ported from HTML5 UP with a news-oriented design and a 'locking' sidebar. It's great for content-centric publishers who want a neat editorial design. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/Editorial---Ghost-Theme.jpg) Since all of these themes are free and open-source, you can install them as they are, or tweak and build on top of them until they're perfect for your needs. Download the Editorial theme [here](https://github.com/TryGhost/Editorial?ref=ghost.org). ### London The third free theme addition was built in-house, with a bold and minimal approach. Ideal for publications that require a clean design with all of the focus on the typography and imagery. [Preview](https://london.ghost.io/?ref=ghost.org) and [download](https://github.com/TryGhost/London?ref=ghost.org) the London theme! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/01/Ghost-theme---London.jpg) ## Ghost starter theme for developers We used the London theme as a framework for another project to build a starter framework for developers, which is now available on GitHub. The [Starter repository](https://github.com/TryGhost/Starter/?ref=ghost.org) includes all of the foundations of a Ghost theme and the common components of a publication. Using the starter, developers can spend more time building custom layouts without having to worry about the basics. --- ### Installing Ghost themes Themes can be downloaded from the Marketplace and uploaded to your publication as a `.zip` file inside Ghost Admin. To learn more about the Ghost theme layer visit our full Handlebars theme [documentation](https://ghost.org/docs/themes/?ref=ghost.org), [tutorials](https://ghost.org/docs/tutorials/?ref=ghost.org) and the community [forum](https://forum.ghost.org/c/themes?ref=ghost.org). We keep the [Marketplace](https://ghost.org/marketplace/?ref=ghost.org) up to date to showcase the latest best-in-class theme designs for modern publishers using Ghost! ### Responsive image sizes URL: https://ghost.org/changelog/responsive-image-sizes/ Last updated: 2021-01-07T03:56:49.000Z Optimise your site performance with responsive images and display image content at the best size across your publication Using bold feature images is a common technique in modern publishing that makes online content more engaging. Feature images are uploaded at a larger size to ensure they look good, which is great until you start using large image files as thumbnails across the rest of the site and performance takes a hit! This is exactly why we just shipped a new dynamic image feature in Ghost themes to solve this. This is one of our most requested features that allows the use of scaled down images or responsive srcsets. ## Improved site performance Site speed is a critical metric in publishing - it impacts your site's discoverability in search engines and user experience for readers. [Ghost themes](https://ghost.org/docs/themes/?ref=ghost.org) are already great for site performance, and this new feature makes them even better. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/12/A3B8D496-97EE-4476-AC35-213D6793BE60.png) Now all images uploaded to Ghost are automatically generated at a set of preconfigured sizes for use in your theme. This ensures that pages containing a lot of images or thumbnails load at lightening speed and gives developers more fine-grained control over site performance. ## Configuring responsive images Unlike other platforms, management of image sizes is fully automated and will regenerate whenever needed. To find out more about implementing responsive image sizes in your theme, check out the [documentation](https://ghost.org/docs/themes/responsive-images/?ref=ghost.org) for this feature. --- ****Ghost(Pro)** users have already been updated and have access to responsive image sizes. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Drag & drop card ordering URL: https://ghost.org/changelog/drag-and-drop-cards/ Last updated: 2019-10-07T03:24:55.000Z Up until now it was not possible to move rich cards around in the editor. Now you can simply drag and drop any card within a post to the appropriate place. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2019/10/drag-drop-1.gif) The editor will also auto-scroll for you as you're dragging a card up or down the page. ### All new Ghost Docs & Integrations URL: https://ghost.org/changelog/new-docs/ Last updated: 2021-01-07T04:39:21.000Z Our entire [Ghost docs](https://ghost.org/docs/?ref=ghost.org) library has had a complete makeover as well as some brand new additions including tutorials and integrations! The goal of the new docs is to help more people install and manage their publications effectively, as well as to make the most of Ghost's flexibility as an open source publishing platform. The design and structure has been revised and we've improved guides for [getting started with Ghost](https://ghost.org/docs/install/?ref=ghost.org) and understanding the core [concepts](https://ghost.org/docs/introduction/?ref=ghost.org) of how it works, as well as adding in some new content: [tutorials](https://ghost.org/docs/tutorials/?ref=ghost.org) and [integrations](https://ghost.org/integrations/?ref=ghost.org). Additionally, something that we're **really** excited about is that the site has been built as an example of the future of Ghost - as a Headless CMS! ## Improved design & structure One of our goals was to make the new docs site easier to navigate and discover the right information when you need it the most. Our previous documentation was disjointed and cumbersome, to put it lightly. To solve this, we've put all of our docs under one roof at [ghost.org/docs](https://ghost.org/docs/?ref=ghost.org). The site has been carefully designed and structured to help new and existing Ghost users find the right information. When you can't find what you are looking for, you can use the new site-search to find it quickly. ## Tutorials Ghost is a flexible publishing platform that can be configured in a multitude of ways, so we've launched a new tutorials section to provide helpful guides on how to customise and configure a Ghost site for a variety of common use cases. This is a resource we are going to expand continuously and includes tutorials about site configuration, theme development, front-ends and more. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/11/Tutorials-Ghost-Docs-2.png) Our new [tutorials](https://ghost.org/docs/tutorials/?ref=ghost.org) area The extensibility of the open source software is available whether you are publishing on a fully managed **Ghost(Pro)** site, or self-hosting your Ghost install – so these tutorials are a useful hub for anyone who wants to customise their site! ## Integrations For a long time we've talked about building apps into Ghost and allowing people to integrate with other services. The hold-up has always been: Most things simply don't need an app! Looking at the plugin directories of other platforms reveals that the majority of apps and extensions are junky packages which add a button to inject a script or similarly trivial functions. They make things seem easy, but they're actually not very good! The truth is that for the majority of integrations you simply don't need a complex plugin or extension or third party application. You just need a little know-how. So, our new integrations directory is a little different to most! Rather than additional software packages to install, it's more a collection of integration guides. Tutorials and helpful documentation explaining how to take your site's functionality beyond the confines of Ghost and work seamlessly with other platforms. Most of the time, without installing anything! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/11/Ghost-Integrations-1.png) The new [Ghost Integrations](https://ghost.org/integrations/?ref=ghost.org) directory There are lots of different ways to integrate with all manner of tools, from analytics and email marketing, to utility and custom storage adapters. We're continually adding new integration guides, and expect this library to grow over time. ## Built with Gatsby, deployed with Netlify One interesting note about the new docs is that it's a static site is built with [Gatsby](https://www.gatsbyjs.org/?ref=ghost.org), and deployed with [Netlify](https://www.netlify.com/?ref=ghost.org) \- but almost all of the content is delivered by the Ghost API, effectively using Ghost as a fully headless CMS, bypassing the theme layer completely 😵 – more on this soon. ## What's next? This is not the end of the road for Ghost Docs. We still have work to do including expanding the content with further tutorials, integrations and API documentation. We're applying the same standards to our docs as we do to our code to ensure that it evolves alongside Ghost. We hope that it provides an improved experience for developers building modern publishing websites ✨ > If you have suggestions for tutorials or guides that you'd like to see, **we'd love to hear from you**. [Send us a tweet](https://twitter.com/tryghost?ref=ghost.org), or stop by at the [forum](https://forum.ghost.org/c/Ideas?ref=ghost.org). ### Automatic image optimisation, image galleries and more URL: https://ghost.org/changelog/image-galleries/ Last updated: 2022-01-16T17:21:26.000Z Using images in Ghost just got a whole lot better with instant image optimisation, responsive image galleries and API improvements! The Ghost team just spent a week in the Canary Islands on our bi-annual team retreat. During these retreats our remote team gets together in person to collaborate, have fun, and make plans for the coming months. This time we also shipped several new features which we're excited to share. ### Image Optimisation We always made it a seamless experience to drop single images into your content on a Ghost publication, but from there onwards there was no optimisation of any kind. It can be painful to manually optimise each image before using it in your post, so we've finally introduced one of our most requested features: **automatic image optimisation**. Now when you insert images into your post or page, Ghost will automatically resize and optimise your images with lossless compression. The end result is the same high quality images fully optimised for the web, without any extra effort on your part 🎉 --- ### Image Galleries With the recent launch of [Ghost 2.0](https://ghost.org/changelog/2-0/), we introduced the ability to select from three different image widths in posts for single images, allowing for more creative visual direction in your posts. The addition of **image galleries** extends this even further with responsive galleries for up to 9 images at a time. Here's what a gallery looks like: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/09/Ghost-10-2.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/09/Ghost-47-2.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/09/Ghost-12-2.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/09/Ghost-61-1.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/09/Ghost-5.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/09/Ghost-23.jpg) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2018/09/Ghost-27-1.jpg) Photos from the Ghost team retreat – Including 5 new team members 👨‍👩‍👧‍👦 This unlocks a lot of potential for storytelling with images using Ghost. What's more, the dynamic gallery card will responsively optimise and organise your images to look their best, no matter how many images you choose to add or remove. Galleries can be inserted by using the gallery card from the dynamic menu. --- ### API improvements Alongside these new image features we've also made some improvements to the Ghost API, which now comes with a query parameter to always return absolute image URLs. This makes it a lot easier to work with - no more manual string concatenation! Read more about absolute URLs in the [docs](https://ghost.org/docs/content-api/?ref=ghost.org). --- ****Ghost(Pro)** users have already been updated and have access to image galleries and image optimisation within the editor. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). Galleries require some CSS and JS in your theme to function correctly. Read more about implementing galleries in the theme [documentation](https://ghost.org/docs/themes/?ref=ghost.org). ### Introducing Ghost 2.0 URL: https://ghost.org/changelog/2-0/ Last updated: 2021-01-12T02:36:21.000Z Closing in on our 200th release, Ghost 2.0 is an upgrade which is focused on power and flexibility. For the first time since we started, Markdown is no longer the default way to write in Ghost (although it's very much still available) — and the rigid blog structure of a single stream of posts has been removed. The scope and breadth of publications which Ghost can create has significantly expanded. **The short version: A new editor, multi-language support, custom routes, custom site structures and content collections are now all built-in.** There have been over 1,500 commits since 1.0 last year, with improvements, refactors, features and fixes to make Ghost 2.0 a stable, robust upgrade. ## A new editing experience The most obvious thing that's new is: there's an entirely new editor. To most people the format will be very familiar, but in this case it's also both open-source and extensible. More than just a formatting toolbar, this new editor has got some tricks up its sleeve. Imagine Medium’s editor and Slack’s integrations had a beautiful illegitimate lovechild. That’s the vibe we set out to accomplish. ![editor](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/editor-1.png) ![editor](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/cards.png) ## Dynamic cards Modern publishing means working with a wide variety of content types from rich text to rich media. While you can still tell your story with words, the new editor also allows you to pull in dynamic blocks of content like photos, videos, tweets and embeds to really bring a story to life. Inserting cards can be triggered with a `+` menu, but there's also a familiar `/` command to help you quickly insert content without leaving the keyboard. We're shipping a base set of some of the most commonly used cards today, but we'll be adding support for many more in the future. Our old Markdown editor is now a card within the new editor, so if you preferred that one: Don't worry, it's still there and it still works just the same! ## Fully extensible The new experience is built on [MobileDoc](https://github.com/bustle/mobiledoc-kit?ref=ghost.org)— a portable JSON-based document storage format that can store blocks of content and translate their output into a variety of formats such as HTML, RSS, AMP, NewsML, or just about anything else you can think of. Being built on a sane, open standard means that developers will be soon be able to build their own cards for custom publishing experiences from simple charts to detailed recipes. ![editor](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/editor3.png) Deliberately focused There are a lot of projects out there which started out as an editor and ended up as a completely unintelligible page builder. While we wanted Ghost’s editor to do more than before, we also very deliberately made sure it didn't try to do too much. **Ghost's editor is still about doing one thing, really well: Writing.** ## Features you've been waiting for Some of the most-requested options for flexibility we've ever had ## Multi-Language Sites You can now configure your site to support multi-lingual content served across unique URLs with SEO-friendly, semantic templates. Now you can publish in English, German, Spanish or just about anything! More than 50% of Ghost users speak a language other than English so this has always been one of our most hotly requested features. ## Custom Structure Rather than having a static and hard-coded site structure it's now possible to define your own site routing. This unlocks countless ways to build your site to suit a wide variety of publication needs, for example: - A custom homepage on `/` with posts published on `/blog/` - Custom URL structures, like `/year/author/post-title/` - Include tags in permalinks, like `/recipes/post-title/` ## Content Collections Think beyond blog posts. Create different sections of your site to support different content types. Collections can have entirely different templates, RSS feeds, design and behaviour. Split your site into `/blog/` and `/podcast/` areas with a custom iTunes XML feed for the latter. No problem. ## Chronological Content You can sort posts into any order, not just reverse-chronological. Any type of series which is added to over time is now easy to set up. - Post Series - Tutorials - Courses ## Limitless flexibility with Dynamic Routing These are examples of just some of the most commonly requested features that are now available in Ghost 2.0\. The truth is that all of this is made possible by a new configuration layer called [Dynamic Routing](https://ghost.org/docs/themes/routing/?ref=ghost.org), which gives you the power to structure your site in almost any way you want. ## In case you missed it All of these things are also brand new since 1.0 ### Unsplash Integration Enjoy high-quality photography in your posts from the world's most generous community of photographers. ### Zapier Integration Power-up your site and connect to thousands of external services to your site with a Zapier integration. ### Multi-author posts Add multiple people to the byline of any post so that everyone involved gets credit when the article is published. ### Post Code Injection Add custom scripts and styles to the header/foot of individual posts for full control over performance and rendering. ### Custom post templates Level up your style & customise the editorial design and add unique art direction for individual posts. ### Custom social data Ensure your content is optimised with fully customisable meta data for Facebook and Twitter sharing cards. ## How to get Ghost 2.0 Anyone can spin up a new site on **Ghost(Pro)** in the space of a couple of clicks, with an unlimited [14 day free trial](https://ghost.org/pricing/?ref=ghost.org) as standard. All new sites are automatically running on 2.0\. If you haven’t tried Ghost for a while, now’s a great time to give it a fresh shot! **Already got a site on Ghost(Pro)?** Log into [Ghost.org](https://ghost.org/?ref=ghost.org) and click the “Upgrade to 2.0” button! There are some short instructions and we’ll automatically test your theme for compatibility, everything else is automated for you. If you *don't* see a button, we've already upgraded you automatically! Log in and enjoy. **Self-hosting Ghost?** Upgrading to 2.0 is fairly straightforward with Ghost-CLI and should take about 15 mins. For details, see our full [migration guide for Ghost 2.0](https://ghost.org/docs/update/?ref=ghost.org). ## What’s coming up next Ghost 2.0 marks the end of a long number of cycles focused on improving the publishing experience, and our next steps are going to be around adding completely new functionality to Ghost as a platform. We’ve got quite a few exciting ideas in mind to tackle next… but that’s a story for the Ghost 3.0 release. Until then, don’t be afraid to stop by the [Ghost forum](https://forum.ghost.org/?ref=ghost.org)and say hi - or come and help out on [Github](https://github.com/TryGhost?ref=ghost.org) if you’re interested in being a part of building the next features along with us. Nearly everything we do is open source, and we can always use the help! #### Know someone who would be interested? Share this: > Just launched! 👉 Ghost 2.0: New rich editor, custom homepages, multi-language sites & much more 🤯 [ ](https://twitter.com/share?text=Just%20launched!%20%F0%9F%91%89%20Ghost%202.0:%20New%20rich%20editor,%20custom%20homepages,%20multi-language%20sites%20and%20much%20more%20%F0%9F%A4%AF&url=https://ghost.org/changelog/2-0/&ref=ghost.org) [ ](https://bufferapp.com/add/?url=https://ghost.org/changelog/2-0/&text=Just%20launched!%20%F0%9F%91%89%20Ghost%202.0:%20New%20rich%20editor,%20custom%20homepages,%20multi-language%20sites%20and%20much%20more!%20%F0%9F%A4%AF&ref=ghost.org) **Questions? Comments?** We're hanging out all day over [on Product Hunt](https://producthunt.com/posts/ghost-2-0?ref=ghost.org)! 😸 ### After 5 years and $3M, here's everything we've learned from building Ghost URL: https://ghost.org/changelog/5-years/ Last updated: 2022-05-23T03:49:36.000Z Last week marked the fifth anniversary since the Ghost Kickstarter campaign which started it all. It's always fun to use these milestones to take a step back and reflect on the journey so far. On previous birthdays I've talked about revenue milestones and product updates, but this year I'm going to focus more on all the things we've learned since we started. Just for context though, here's a quick overview of where we are today: --- - **MRR:** $82,000 - **Annual Net Revenue:** $1.2million - **All-time Revenue:** $3million - **Github Stars:** 25,000 - **Releases:** 173 - **Sites using Ghost:** 512,000 - **Biggest users:** Apple, Tinder, DuckDuckGo, Mozilla, OpenAI, OkCupid, Square, Vevo, DigitalOcean, Napster, CloudFlare and [many, many more](https://ghost.org/customers/?ref=ghost.org). - **Runway:** Just kidding, we've been profitable since year 1 --- We started working on Ghost because we wanted to build a great open source publishing platform which would empower independent creators, but we also started this company as a social experiment. We wanted to know: What would it look like if you built a technology startup which could *not* make anyone rich. If you eliminated all the promises of wealth from the roadmap up front, and tried to build a *good* company, how would that affect the product, business, customers, and every little decision in between? We wanted to find out. So we set out to build the company we wish we could do business with, as well as the organisation we wished we could work for. Ghost was set up from day 1 as a non-profit foundation, and released all of its code under the open source MIT license. To this day, 90% of people who hear this still have the same reaction: "What??" followed closely by "Why??" — so it might be worth recapping briefly: --- Being a non-profit means that the company has no shares. I don't own it. Hannah doesn't own it. Nobody owns it - it's an independent entity. The company makes money and pays expenses, salaries and taxes as normal - but there's no way for it to be bought or sold either in part (investment) or as a whole (acquisition). Any profit the company makes can only ever be reinvested, not distributed. We can't cash out. Ever. Also the entire product is open source and has no copyright. Anyone can do whatever they want with our code, for free. So, when we do anything you can be absolutely certain it's in the sole interest of building the best product we can for the right reasons. We want to build great open software to support sustainable journalism, publishing and a more open web. There is no other reason we have for doing anything. Anyone can say they want to "change the world" and that "it's not about the money" — but talk is cheap — so we made our mission legally binding. At a time when the world sometimes seems totally devoid of integrity, we really just wanted to create something with unquestionable integrity. Also — Being paid to work on Ghost is, to me, the equivalent of being paid to play videogames. Or go scuba diving. Or play with kittens or something. It turns out that a funny thing happens when you build a company you can never sell: You end up building a company you would never *want* to sell. --- While the first few years were pretty frantic to get everything off the ground and make the business sustainable - about a year ago we actually stopped tracking revenue as a primary goal. It's now a health metric, like uptime or performance. We keep an eye on it, of course, but for the most part it doesn't drive decision making. Decision making is centred around where we think we can have an impact, what people are asking for, and what we enjoy doing. What we've created is a business and a product in a structure which we can see ourselves working on indefinitely. There are no investors putting pressure on us to generate a return, pump up numbers for an IPO, or work on features which would make us more attractive for an acquisition. We're just a small team working on something we care deeply about. Thanks to all this unapologetic focus, we don't need to try to be the biggest. Instead, we can focus on being the best. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/stats-1.jpg) ## So what lessons have we learned in the last 5 years? Profit or non, building a business is hard. Doing open source is hard. Making a product which people actually care about is hard. And let me tell you, hosting websites is exceptionally hard. There are far too many lessons to share in a single post, but I'd like to share a handful of the most significant things we've learned from 5 years of building a popular open source product, profitable SaaS business, major hosting platform, productive remote team, and large community. ## Centralised wins on simplicity, Open source wins on flexibility This is the really big one. When we started out, we tried to make everything as simple and user-focused as possible. Our intent was to make the app as easy to use as any closed source platform, but with the added bonus of actually being open source with a socially positive business model. Most open source software has terrible UI design, so we would have great UI design and it would be the best of both worlds! This falls apart almost immediately. For example: if you build a centralised service - you can solve authentication, search and image optimisation pretty easily with OAuth, Algolia and imgix. It costs you minimal engineering time and a few dollars to set up so your users have a wonderful experience with absolutely no overhead. Try to build the same thing as a decentralised product and every one of your users has to set up their own Twitter developer apps, Algolia API keys and imgix accounts + configurations. Each service has to be set up, connected and paid for. A significantly high level of technical expertise is required to even get it all slightly working. The average non-technical user doesn't have a single hope in hell of getting it working let alone having a good experience. We spent several years trying to engineer our way out of this in increasingly complex ways, so that people could set up a publication on Ghost with the same level of ease as they do on Medium. In part, because that's what people were demanding. We never even got close. It's just not how modern web technology works. Decentralised platforms fundamentally cannot compete on ease of setup. Nothing beats the UX of signing up for a centralised application. ##### But Centralised platforms fundamentally cannot compete on power and flexibility. In the long run, nothing beats owning your technology and controlling your destiny. Yes, setting up a Squarespace site or a Medium blog is easy. You can get the basics up and running in a matter of minutes. However, you are also explicitly limited to what those platforms allow you to do. The second you want to step outside the confines of their design, or functionality, or do anything outside the little box which they let you play in: You're stuck. Also, they can and *will* [pull the fucking plug on you at a moment's notice](https://www.niemanlab.org/2018/05/medium-abruptly-cancels-the-membership-programs-of-its-21-remaining-publisher-partners/?ref=ghost.org). We spent a very long time trying to compete on convenience and simplicity. This was our biggest mistake and the hardest lesson to learn - because user feedback told us that this was what was most important. We deliberately limited flexibility in the product to try and make it more simple. But it ended up being still not simple enough for the average user, and not powerful or flexible enough for the professional user — the worst of both worlds. So the biggest takeaway after 5 years is that we have been moving, and will continue to move up market, toward professional users who value power and flexibility over ease of signup. This is where we can win compared to the competition. This is where Ghost comes into its own. We're really, really excited about the future of Ghost as a product. ## Our biggest marketing wins and losses The best marketing we've done has been to launch, over and over again. At least twice a year we try to make something big and launch it publicly. Sounds really obvious but most people don't do it. Beyond that we focused purely on having a good website (insane that this is a differentiator in 2018, but welcome to open source), a reliable product, great support, and a lot of care. Our biggest marketing failure has been our documentation and resources. They exist. They're just not very good. We're actually [hiring right now](https://careers.ghost.org/?ref=ghost.org) for someone to help us fix this and make using Ghost a really fantastic developer experience. Another thing that has worked really well for us is to invite a small group of people to have early access to things months ahead of launching them. For instance: We're currently looking at testing an affiliate program whereby we'll pay out a 30% commission every single month on the lifetime revenue of anyone referred to Ghost(Pro). We're currently looking for just 3 people to beta test who have a large/relevant audience. [Interested?](https://ghostjournalism.typeform.com/to/KJ92XR?ref=ghost.org) ## Building a distributed team is both easier and harder than you might imagine Our team is spread all over the world, and we have no office in any country. After 5 years I would summarise the overall experience as very positive. The stuff you might imagine is hard generally turns out to be a non-issue, like: How do you know if people are working? How does anything get done? How do you pay people if they live in different countries? What about contracts? — The things people ask about most often all have straightforward answers. In summary: You hire people you can trust, you trust them, and the logistics in between are solved mostly with Slack, Zoom and Github. The stuff which is actually hard, nobody ever asks about. For instance: How do you know when someone is in a bad mood? How do you deal with loneliness? How do you foster camaraderie? How do you achieve urgency? How do you ever get to know people outside of work when you never spend time with them outside of work? Real challenges of being remote are more human, than business. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/gh--1-.jpg) ## Open source development is largely more broken than ever The least fun part of working on Ghost is dealing with Github, which is really sad. Everyone has their pet issue, whether design or accessibility or security or internationalisation or performance or SEO or or or... the list goes on. Everyone thinks theirs is most important and that we should work on right *now* and they can't *believe* that we would ignore it. It's always absolutely *outrageous*. How open source works is: If you want something, **you** can build it. That's the freedom which open source gives you. We build a base product which you can adapt, extend or integrate however you want. You can't do that with closed source platforms. Open source code = the freedom for *you* to do things with it. But that's not how many people understand it. Developers regularly show up on Github, rage at us for something like not supporting Postgres - and then we say "ok so are you going to write and maintain Postgres support for Ghost?" and they say "of course not, I don't have time for that!" - and then occasionally they'll go on Twitter and tell all their followers to give us hell. As if organising a mob and shouting louder is the best way to get a bunch of people writing free code to do what you want. Unfortunately I think Github itself has a lot to do with this. The product has become too transactional - more support tool than collaboration. And Github themselves show remarkable disinterest in the open source community as a whole - they give us beta access to test new features every so often. That's about it. There's no wider involvement at all. Our core team tends to do the "real work" in private issues nowadays. The signal to noise ratio is just too overwhelming. ## We're always adapting to the market When we started out, the focus of Ghost as a product was squarely on the publishing experience. Improving the ease of publishing online seemed, in 2012 and the several years before, like something that could be much better. All of this was at a time when Svbtle was the popular new thing, and Medium didn't exist! Ghost has changed a lot in 5 years, but of course the market has also changed a lot beneath us. Adapting our business and our strategy to the direction of the industry as a whole is something we've gotten fairly good at. Many things which were a good idea in 2013 are no longer a good idea in 2018. The most exciting area we're looking at for the coming 5 years is in building and supporting new business models for publishing. Particularly around memberships, subscriptions and community. It feels like there are a lot of meaningful opportunities there which have yet to be discovered. Ghost is a very different company now to when it first launched, and it's hard to imagine what things might look like on our 10th anniversary. But we're as excited as ever about the journey :) ## There are seemingly no good nonprofit funding options for journalism/tech One big surprise in the last 5 years has been discovering that there are really no good funding options for journalism/tech. We've bootstrapped from day 1 and always planned to be totally self-sufficient. But initially we did think that there might be grant funding or support that we might be able to benefit from. It turns out: No. Absolutely none. I thought between the Knight Foundation and the Mozilla Foundation and the Ford Foundation and the Google News Initiatives — there might be a path to getting a lil' help. However, they all seem to be limited to helping only projects in their own countries (mostly the US) and selecting who is awarded grants appears to be often more about who you know, than what you do. I'm still curious about this. Are we missing something? Are there organisations who do grant-funding who we should be talking to? Or is there a viable form of ICO which would support our company structure, to engage our own community directly, without being sketchy? Like a follow-up to the Kickstarter, maybe something like [Brewdog](https://www.brewdog.com/uk/?ref=ghost.org). Would love any advice. Given that we're profitable, we don't especially need funding, but we have very large ambitions and very limited resources. We'd love to do more. Send me a note [on Twitter](https://twitter.com/johnonolan?ref=ghost.org) if you have ideas. ## Your Questions Answered Last week I mentioned on Twitter that I was writing this post and asked people what they wanted to know. There were tons of responses, so Hannah and I recorded our biggest *ever* podcast going through all the best ones! **Know someone who would be interested? Share this:** > After 5 years, $3Million, and no investors: Here's everything we've learned from building the #1 CMS on Github 🔥 or enjoy these 1-click links for *Ultimate Efficiency* TM: [Tweet this](https://twitter.com/share?text=After%205%20years,%20$3Million,%20and%20no%20investors:%20Heres%20everything%20weve%20learned%20from%20building%20the%20%EF%BC%831%20CMS%20on%20Github%20%F0%9F%94%A5&url=https://ghost.org/changelog/5/&ref=ghost.org) or [Buffer it](https://bufferapp.com/add/?url=https://ghost.org/changelog/5/&text=After%205%20years,%20$3Million,%20and%20no%20investors:%20Heres%20everything%20weve%20learned%20from%20building%20the%20%EF%BC%831%20CMS%20on%20Github%20%F0%9F%94%A5&ref=ghost.org) ## Thank You To everyone who has ever been a customer, subscribed to a newsletter, backed us on Kickstarter, reported a bug, made a suggestion, opened a pull request or sent us a friendly email. We wouldn't be here without you. I should also mention our [partners](https://ghost.org/partners/?ref=ghost.org) who have been so generous with their time and resources to support Ghost. I'm not sure we ever could've made it without [Digital Ocean](https://digitalocean.com/?ref=ghost.org) and [Cloudflare](https://cloudflare.com/?ref=ghost.org) in particular. We are indebted to their belief in us. Most of all, I want to thank our team and core contributors over the years. It might be my face which you see most often on Twitter and Hannah's name most frequently on Github - but in truth all of the best bits of Ghost - the bits worth talking about, weren't made by us. They were made by the wonderful team and contributors who we have been so fortunate to work with. If you're interested in being a part of the journey, we're hiring for [full stack JavaScript developers](https://careers.ghost.org/?ref=ghost.org) right now :) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/IMG_0279.jpg) **Particular Thanks To:** Sarah Frantz, Kevin Ansfield, Katharina Irrgang, Jason Williams, Sebastian Gierlinger, Paul Adam Davis, Austin Burdine, Matt Enlow, Fabian Becker, Aileen Nowak, David Wolfe, Matthew Harrison-Jones, Jacob Gable, Felix Rieseberg, Gabor Javorszky, Georgina Lusby, Harry Wolff, Ryan McCarvill, Robert Jackson, David Arvelo, William Dibbern, Maurice Williams, Tim Griesser, David Balderston, Ricardo Tomasi, Nazar Gargol, Jakob Gillich, Peter Szel, Christopher Giffard, Kevin P, Steve, Manuel Mitasch, jamesbloomer, John O'Mahoney, Lucas Holmquist, Ian Mitchell, Adam Howard, nicoburns, Tobias Bieniek, Michael Bradshaw, James Inman, vdemedes, Zach Schneider, JT Turner, CriticalRespawn, ericterpstra, Zach Geis, Vikas, Matthew Beale, Lukas Strassel, Joe Wegner, Jilles Soeters, Connor Tumbleson, Seth Lilly, Sebastian Gräßl, Sebastian, Rosco Kalis, Rem Zolotykh, Nicola Mustone, Mattias Cibien, Marco Otte-Witte, Kyle Nunery, Delgermurun, David Blurton, Alex Kleissner, Łukasz Kliś, surgesoft, shindakun, buddhamagnet, Vivek Kannan, Vijay Kandy, Taras Mankovski, Shashank Mehta, Patrick Garman, Michael Schmidt-Voigt, Lev Gimelfarb, Kate von, Jonathan Johnson, James Seymour-Lock, Jake Wright, Harry Hope, Gary Cao, Eugene Kulabuhov, Daniel Hanson, Dane Springmeyer, Brad Dougherty, Alan Richards, mattse, king6cong, juan-g, Xie JinBin, Tony Gaskell, StevenMcD, Sean Hellwig, Sam Saccone, Patrick Kim, Pascal Borreli, Matt DuVall, Leonard Camacho, Kowsheek Mahmood, Katie Fenn, Johan Stenehall, Jason Sturges, Hey24sheep, Benjamin Chodoroff, Andrew Chilton, 汪磊, zinyando, sjama, remixz, redwallhp, quangtt, nicksahler, lennerd, jomahoney, joeldrapper, germanrcuriel, fabfou, b1nd, andy matthews, abe33, Will Glynn, Vikhyat Korrapati, Vikas Potluri, Victor Szeto, Thomas Faurbye, Talon, Szél Péter, Syaiful Bahri, Stefan Baumgartner, Seb Gotvitch, Sarah, Robert Rhoades, Richard King, Renyu Liu, Peter Dave, Mikkel Hoegh, Michael Nason, Matt Hughes, Martín González, Martin H., Martijn Swaagman, Mark Berger, Marcos Ojeda, Manuel Gellfart, Lucas Churchill, Lucas, Kirill Yakovenko, Kenneth Ashley, Karolis Dzeja, Karl Mikkelsen, Justin Yek, Josh Vanderwillik, Josh Kalderimis, Joerg Henning, Jeremiah Hoyet, Jeff Jewiss, Jarrod Mosen, Jamie Knight, Jaiden Mispy, Ilya Radchenko, Ihab Khattab, Harry V., Garrett Murphey, Erik Hanchett, Erik Bryn, Enrique Chavez, Devin Doolin, Declan Cook, David Robson, Cameron Viner, Brian Tedder, Brandon Hops, BlueHatbRit, Ben Gladwell, Ashish Dixit, Artyom Fedenko, Andy, Andrej Mlinarević, AileenCGN, Aia Patag, Adam Hess, Abijeet Patro, 1Pete, “kirrg001”, zhenkyle, zethraeus, vitalie maldur, tamura shingo, starcwl, sessa, sanddudu, sahand12, rmfx, rfpe, rektide, rambii, polygonix, oregami, omeid, nicovalencia, nason, moritz haarmann, meowtec, lmoe, jtw, janvt, ivan sebastian, hwdsl2, hoxoa, hiroshi kobayashi, enahs, danschumann, cristears, baogechen, balduv, ali, aimingoo, Zlatan Vasović, Yury Michurin, Yann Verry, Yanke Guo, William Golden, Wilhansen Li, WangSai, Waleed Ali, Vineet Sinha, Victor Truong, U-nico-laptopnico, U-nico-laptop\\nico, Tushar Bhushan, Tom Gillett, Tim Walling, Tim Mansfield, Thai Phan, Terin Stock, Szu Yaung, Steven Cochrane, Steven B, Stephan Bönnemann, Simone D'Amico, Silvio Fernández, Sem, Sean Hussey, Sarah Frantz, Samuel Goodwin, Sam Wilskey, Ryan Seys, Ryan Powell, Roy van, Rodney Folz, Rob Graeber, Reinoud Kruithof, Rei, Rafael Corrêa, Rabbi Hossain, Polygonix, Peter deHaan, Peter Zimon, Peter Garland, Pedro Teixeira, Paul Connolley, Paul, Oliver Schneider, Nick Schonning, Nick Pfisterer, Nick Donohue, NetPuter, Naoya Kanai, Myles Braithwaite, Mo Valipour, Misha Wakerman, Mikael Brockman, Micheil Smith, Michael Auer, Matthew DuVall, Matt Florence, Matheus Azzi, Markus Siemens, Mark Stosberg, Mark Stacey, Marc Bachmann, Mante Bridts, Luke Shiels, Luke Arduini, Kumar Abhinav, Kenny Meyer, Julien Gilli, Joris Berthelot, Jorge Niedbalski, Jordan Sexton, Jono Warren, JonathanKryza, John-David Dalton, John Nguyen, John Cruikshank, Joel Rosenberg, Joel Fischer, Joe Cannatti, Jimmy Hsu, Jimmy Cai, Jesse Tane, Jesse Dijkstra, Jeff Escalante, Jay Beavers, Jason Friedrich, Jarrett Cruger, Jacques Marneweck, Jacob Kaplan-Moss, Ivan Votti, Ian Lopshire, Hugo Marisco, Hugo Jobling, Henning Sprang, Hendrik Schaeidt, Harry Walter, Harry Mills, Guillem Andreu, Grant Winney, Glen E., Gergely Nemeth, Fixer, Filippo Conti, Farhad, Fabian Miiro, Ethan Garofolo, Eric Schultz, Eric Ellingson, Emerson Keenan, Dmitry Mazuro, Derek Myers, Declan cook, Daniel Tsui, Daniel Niccoli, Dan Schnau, Damien Dormal, Clinton Ryan, Clay Diffrient, Chuck Lam, Chris Pearce, Chris Morgan, Chris Maddox, Cezary Kluczyński, Brian White, Blaine Bublitz, Ben Vibhagool, Augustus Yuan, Antuan Khanna, André Borud, Andrew Schwartzmeyer, Alex Cusack, Adrian Estrada and Aaron Kau. ### TWiG #3: It's been 5 years! Founders Q&A URL: https://ghost.org/changelog/twig-3-its-been-5-years/ Last updated: 2021-01-11T01:47:21.000Z We managed another 6 months (actually more like 9) since our last podcast, but it's a good one! Last week while writing up our [5 year anniversary post](https://ghost.org/changelog/5/) we asked for *your* questions. There were so many great ones, we didn't even manage to get to them all! We did spend a solid hour going through as many as we could though, answering everything from how to run a remote business, to what we think about the state of open source as a whole, and what advice we would give to people trying to create a business like Ghost themselves. PS. Still looking for recommendations for easier software to record/product podcasts. If you have any tips, let us know! ### Zapier x Ghost URL: https://ghost.org/changelog/zapier-x-ghost/ Last updated: 2021-01-07T04:07:15.000Z Ever wanted to connect external services to your Ghost site and create seamless automation between them? Now you can, with our new and official integration with [Zapier](https://zapier.com/?ref=ghost.org). If you're not familiar with Zapier, then here's a very short overview of how things work. Zapier automations are set up with *Triggers* and *Actions* \- for example: When a new post is published in Ghost (Trigger) then a new Tweet is automatically published with a link to the post (Action). Zapier works with over 1,000 different connected applications, meaning that you can create and customise a huge range of automations to your heart's content. Here are a few of the most popular Ghost<>Zapier automation templates which you can set up right now: This new Zapier integration works with any Ghost site, and you can find a list of the most popular Zap Tempalates any time from the Apps section of Ghost Admin. Zapier offers free accounts with a few automations included, and [paid plans](https://zapier.com/pricing/?ref=ghost.org) with more advanced functionality. If you need more detailed instructions on how to get everything working, we've created a [full guide to working with Zapier for Ghost](https://ghost.org/integrations/zapier/?ref=ghost.org). --- **Ghost(Pro)** users have already been updated and have access to this feature within their admin area. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Time to Upgrade your CLI! URL: https://ghost.org/changelog/its-time-to-upgrade-your-cli/ Last updated: 2021-01-07T03:56:50.000Z We've released version [1.3.0](https://github.com/TryGhost/Ghost-CLI/releases/tag/1.3.0?ref=ghost.org) of Ghost-CLI — with some very important updates... ##### Please [upgrade](#howtoupgrade) as soon as you can! ## Highlights - **\[New\]** SSL renewal fix & migration - **\[New\]** Added Ghost compatibility check - **\[Improved\]** CLI upgrade notifications - **\[Fixed\]** Removed [knex-migrator](https://github.com/TryGhost/knex-migrator?ref=ghost.org) dependency ## In Detail 1.3.0 is an important release, for the following reasons: - The SSL renewal issue will be automatically fixed when you run `ghost update` or if you run `ghost migrate`, see below for more info. - Ghost-CLI now knows if it is out-of-date and prompts you to upgrade - Removal of the [knex-migrator](https://github.com/TryGhost/knex-migrator?ref=ghost.org) dependency means less compatibility issues with nvm, sqlite, etc. ### SSL Renewal A month ago we received a [report](https://github.com/TryGhost/Ghost-CLI/issues/495?ref=ghost.org) that SSL certificate renewal does complete successfully with <=1.1.3\. Although the certificates were regenerated correctly, nginx was not restarted, meaning the new certificates were not picked up. > If you're reading this and your blog is offline with the error `NET::ERR_CERT_DATE_INVALID`, run `sudo nginx -s reload` to fix the problem and then upgrade Ghost-CLI to ensure it doesn't happen before.. If your blog was created with the CLI <= 1.1.3 **please [upgrade](https://ghost.org/faq/upgrading-from-deprecated-ghost-cli/?ref=ghost.org) now to the latest version** and then run either `ghost migrate` or `ghost update`. Our [CLI docs](https://ghost.org/docs/ghost-cli/?ref=ghost.org) have been updated. If you run into problems, please swing by our [community forum](https://forum.ghost.org/?ref=ghost.org) or raise a bug issue [here](https://github.com/TryGhost/Ghost-CLI/issues?ref=ghost.org). ### Removal of knex-migrator If you used Ghost-CLI before and ran into difficulty managing node versions, using nvm, or with sqlite3 (even if you weren't using sqlite3), you should find that Ghost-CLI is now much easier to use. ## How to Upgrade For **npm** users, run: `sudo npm i -g ghost-cli@latest` Followed by `ghost migrate` For **yarn** users, run: `sudo yarn global add ghost-cli@latest` Followed by `ghost migrate` The full upgrade guide lives here: [https://ghost.org/faq/upgrading-from-deprecated-ghost-cli/](https://ghost.org/faq/upgrading-from-deprecated-ghost-cli/?ref=ghost.org) ### Ghost Android URL: https://ghost.org/changelog/android/ Last updated: 2021-09-22T15:39:52.000Z Ghost has always been a responsive web application, but today we're taking that a step further with an official native Android app! We've always tried to make a solid mobile web experience for Ghost admin, but inevitably it has always been fairly limited in what it can do. Wrestling with mobile browsers in 2017 is still a lot more painful than it should be. Having felt some of the same frustrations, last year [Vicky Chijwani](https://github.com/vickychijwani?ref=ghost.org) decided to create a completely independent Android app for Ghost. He named it Quill, and ever since its first release it has been wildly popular and gotten rave reviews across the Google Play store. Vicky got in touch a few months back to ask if we'd be interested in supporting the project. So we asked him if he'd be interested in joining the Ghost core team and turning Quill into the official Android app for Ghost... And here we are! Ghost Android is **now available** in the [Google Play Store](https://play.google.com/store/apps/details?id=org.ghost.android&ref=ghost.org). As well as a slick native experience, the app also boasts full offline-sync capabilities along with graceful handling of conflicts when two people have edited the same post. So now you can write on a plane, train, or wherever you might be - and publish later. ![Ghost Android Screencast](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/6600a347040c2e93297f6aad0d7ddd45b740c1aa/68747470733a2f2f692e696d6775722e636f6d2f5a4e33714b34392e676966.gif) ![Download Ghost Android](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2017/11/play.png) If you're interested in helping us develop and improve the Android app further, then you'll be pleased to hear that it is completely open source and [available on Github](https://github.com/tryghost/ghost-android/?ref=ghost.org). ## Ghost for iOS We now have [native Ghost apps](https://ghost.org/downloads/?ref=ghost.org) for Mac, Windows, Linux and Android. So the obvious question at this point is... **what about iOS**? Excellent question. We don't have one of those, [maybe you could help?](https://github.com/tryghost/?ref=ghost.org) ##### Questions? Comments? Burning feature requests? We're doing a [livechat over on Product Hunt](https://www.producthunt.com/posts/ghost-for-android?ref=ghost.org) for the launch of Ghost Android --- *Update February 2020: The Ghost Android app is no longer available for use with the latest versions of Ghost. Find out more about [contributing](https://ghost.org/docs/concepts/contributing/?ref=ghost.org) to our open source project.* ### TWiG #2 [Live]: We shipped 1.0! Here's what's coming next URL: https://ghost.org/changelog/twig-2/ Last updated: 2019-05-22T06:27:51.000Z It has been a whole six months since our last weekly episode! Ok this took way too long, but Hannah and I did finally sit down to do another update on how things are going with Ghost a couple of weeks ago. Here's what's going on behind the scenes: Unfortunately we tried to be a bit too clever and do a YouTube Livestream whilst recording this episode - which had some rather catastrophic effects on the audio files. So, please bear with us and we'll do better on the next one. 🤓 Leave us questions here or on twitter and we'll answer them next time! ### Unsplash x Ghost URL: https://ghost.org/changelog/unsplash-integration/ Last updated: 2021-01-07T03:35:34.000Z We've just released an official Unsplash integration for Ghost; Now you can find and use beautiful free photos from the world's most generous community of photographers! No matter what case study you look at, the results are unanimous. Using high quality images within any form of digital media massively increases audience engagement. Spending that extra time finding the perfect photograph to go with a post is almost always worth it, and if you're anything like us - you probably spend quite a bit of time on it! It sure would be nice if it didn't take quite as much time, though, which is why today we're announcing the official integration for [Unsplash](https://unsplash.com/?ref=ghost.org) inside Ghost. In the space of a couple of clicks, you now have access to hundreds of thousands of stunningly beautiful photographs which can be used completely for free. We've been long time fans of Unsplash right back to when they first launched as a tiny little blog sharing 10 free photographs per week. It has been wonderful to watch it grow into a thriving photography community with a killer API, and so we're *very* excited about being able to have Unsplash photos directly within Ghost. A quick update on **Ghost(Pro)** migrations to Ghost 1.0: We're half-way through all active customers now. If you're still waiting for the "Upgrade" button to appear on my.ghost.org beside your site, send us an email on [support@ghost.org](mailto:support@ghost.org) and we'll bump you to the top of the list :) --- **Ghost(Pro)** users are being upgraded automatically and will see this functionality shortly inside their admin area. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Custom Social Data URL: https://ghost.org/changelog/custom-social-data/ Last updated: 2021-01-11T01:46:50.000Z We've just added support for custom social data to Ghost, so now you can create customised rich card embeds for Twitter and Facebook on every post. Ghost has had rich automatic [structured data](https://ghost.org/changelog/structured-data/) support for a few years, but now you can override the automatic defaults and create custom cards for both Twitter and Facebook. This fine-grained control means that now you can directly specify exactly how you want your content to appear on your site, on Google, on Twitter and on Facebook — all completely independently of one another. If you don't want to fill out all this data manually though, Ghost will still fall back to creating automatic defaults which work great, too! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-43.png) If you want to see this feature in action, try sharing this very post that you're reading right now on Twitter or Facebook (or search for it in Google). You'll see different customised content for each one. A few other housekeeping notes: **Ghost(Pro)** upgrades are now well underway. We're enabling all migrations to [Ghost 1.0](https://ghost.org/changelog/1-0/) in batches, adding more to the list every day. Anyone who Tweets, emails, comments, or otherwise gets in touch with us is being automatically bumped to the top of the queue. So if you're still waiting for the "Migrate!" button to appear on my.ghost.org — get in touch! --- **Ghost(Pro)** users are being upgraded automatically and will see this functionality shortly inside their admin area. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Post Code Injection URL: https://ghost.org/changelog/post-code-injection/ Last updated: 2021-01-12T03:07:02.000Z We've just added Code Injection to posts and pages in Ghost, so you can add custom styles and scripts to the header and footer of individual articles. A while back we introduced Code Injection for Ghost as an easy way to insert styles, scripts, and arbitrary snippets of code into the header and footer of a site without needing to edit any theme files. Now, we've also added the fields at a post level for when you want to use one-off style, script or snippet of code but don't want to include it across the entire site. This comes in particularly handy when using interactive embeds and elements, or when you want custom styles for art-directed posts, like this one. ##### We've given this post custom colours and styles which only apply on this page and nowhere else. Code Injection is located in the usual post settings menu: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/codeinjection.gif) A week after our big Ghost 1.0 release, we're now at Ghost 1.5 with much more on the way in smaller bite-sized chunks. You don't *need* to upgrade Ghost every single time we do a release — we're deliberately going easy on the update notifications for that reason — but you can if you want all the latest and greatest features as soon as they're available. This is a new model for us, and it's one which we're feeling extremely good about - but there's going to be a bit of an adjustment period. A couple of people have asked about Ghost(Pro) migrations to 1.0 — I'm pleased to share that those have now officially started rolling out and we're making our way through customer migrations as I write this. Once your site is ready to migrate to 1.0 you'll see a button on my.ghost.org to let you know. --- **Ghost(Pro)** users are being upgraded automatically and will see this functionality shortly inside their admin area. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Custom Excerpts URL: https://ghost.org/changelog/custom-excerpts/ Last updated: 2021-01-11T01:03:13.000Z Following on from [Ghost 1.0](https://ghost.org/changelog/1-0/) and [Hemingway Mode](https://ghost.org/changelog/hemingway-mode/), today we're releasing Custom Excerpts for Ghost. By default, Ghost will pull out the first few words of your post (usually around 55) to act as an excerpt to be displayed in post archives. This helps give readers a sense of what the post is about by giving them a teaser of the introduction. But what about when you want to customise that excerpt to be a more specific summary? ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/excerpts3.jpg) Now, you can override these excerpts with your own customised text, which will also double as the default summary for Twitter Cards, Open Graph tags and rich embeds. Custom excerpts, if used, will override standard excerpts — so you can choose how to use them. Either as a teaser, a subtitle or a dek. It's entirely up to you and what feels best within your theme. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/excerpts3-1.jpg) ## There's more on the way This is one of many small features which we're going to be shipping over the next few weeks to bring more native power and flexibility to Ghost. More on the way :) --- **Ghost(Pro)** users are being upgraded automatically and will see this functionality shortly inside their admin area. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Primary Tags URL: https://ghost.org/changelog/primary-tags/ Last updated: 2021-01-04T03:47:55.000Z Any post in Ghost can have multiple tags, but Ghost also pays attention to the order of those tags. The first tag entered is considered the most important, and is treated as a special case. For a while now, you've been able to drag and drop the order of tags in admin to set the correct primary tag, and also access a post's first tag using `{{tags.[0]}}`. This syntax is less than ideal, however, and it's hardly discoverable for theme developers, so we've introduced a new data object: `{{primary_tag}}` \- to accomplish the same thing in a more friendly way. Now if you're developing a theme and you just want to render the single most important categorisation label, you can directly access properties of the first tag with `{{primary_tag.name}}` to easily achieve this. If you want to do more, you can open a block with `{{#primary_tag}}{{/primary_tag}}` to get access to all the context-sensitive helpers like `{{url}}` & `{{img_url}`. ## Example usage If a post has tags of `News`, `Design`, `Architecture` \- there are several ways to work with them: Using the default `{{tags}}` helper will render a simple list of all post tags, linked to their respective archives: [News](#), [Design](#), [Architecture](#) If you just wanted to output the primary tag and create a special link for that one case, then you could do what we do in Casper 2.0: ``` {{#primary_tag}} {{name}} {{/primary_tag}} ``` This way you can still have fairly liberal use of tags to determine posts which are related and belong together, but still keep a neat category-like taxonomy for output on the front end. Hopefully this gives you a little more power and flexibility when building your next theme. If you're interested in finding out what else you can do, this and other theme API functionality is all documented over on [https://ghost.org/docs/themes/](https://ghost.org/docs/themes/?ref=ghost.org). --- This change was released in **Ghost 1.2.0**. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). Ghost(Pro) users will be upgraded automatically, soon. ### Hemingway Mode URL: https://ghost.org/changelog/hemingway-mode/ Last updated: 2021-09-09T14:15:13.000Z Following the release of Ghost 1.0 last week, we're trying to get back into the habit of doing smaller, simpler releases and getting them out into the wild. So today we're releasing a tiny feature called Hemingway Mode, because the shortest answer is doing the thing. There's an old quote which is famously misattributed to Ernest Hemingway, who supposedly once posited that one should: > “Write drunk; edit sober.” Regardless of whether or not he ever actually said it (we're sure you'll let us know in the comments), the notion is a good one. Sometimes the natural pursuit of perfection becomes a distraction from the process of creation. **So: When Hemingway Mode is enabled in the editor, your backspace key is disabled. Write now; edit later.** ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-44.png) Philosophical posturing aside, this is really just a bit of fun. Sometimes artificial constraints really do make you think (or write) in new and interesting ways. After all, when you stop doing things for fun you might as well be dead. We hope this helps encourages you to conquer the blink, blink of the little blue cursor. Do not worry. You have always written before and you will write now. --- **Ghost(Pro)** users are being upgraded automatically and will see this functionality shortly inside their admin area. Self hosted developers can use [Ghost-CLI](https://ghost.org/docs/ghost-cli?ref=ghost.org) to get this feature by running `$ ghost update` to install the [latest release](https://github.com/TryGhost/ghost/releases?ref=ghost.org). ### Ghost 1.0.0 - React, redux and redis?? URL: https://ghost.org/changelog/ghost-1-0-0/ Last updated: 2021-09-22T18:29:44.000Z *jk lol* 🤓 *here's what really happened...* [Ghost 1.0.0](https://github.com/TryGhost/Ghost/releases/tag/1.0.0?ref=ghost.org) is now available on GitHub, npm and Ghost.org. No seriously. It's done! In fact... there's a 1.0.2 😬! ## Highlights - **\[New\]** Editor, default theme, new user tour, nightshift mode, and many other admin improvements. More details in the announcement blog post [here](https://ghost.org/changelog/1-0/) - **\[New\]** Config with [nconf](https://github.com/indexzero/nconf?ref=ghost.org), logging with [bunyan](https://github.com/trentm/node-bunyan?ref=ghost.org), and debug output using [debug](https://github.com/visionmedia/debug?ref=ghost.org). - **\[Improved\]** Publish menu which brings scheduling front and centre, instead of it being an after thought - **\[Improved\]** Simplified content screen with filtering makes it easier to find - **\[Improved\]** The importer has had a complete overhaul, is now more robust and outputs much, much better error & warning messages when things do go awry - **\[Changed\]** Internal tags is no longer in labs, and the Public API Beta is now enabled by default (we're getting there!) - **\[Changed\]** Various aspects of the Theme API, see the [theme changelog](https://ghost.org/docs/themes/?ref=ghost.org) for more details... - **\[Fixed\]** Addressed many issues with session handling, so you get logged out far less often or maybe even not at all - And much, much, much more... You can see the [full change log](https://gist.github.com/kevinansfield/44cca4727892fcfc9e4d9a1aeab97dcc?ref=ghost.org) for the details of all changes included in this release. ## In Detail Ok everyone, grab yourself a coffee and settle down - this is gonna be a big one! ☕️ Ghost 1.0.0 is a major rework and as a result there are a plethora of developer-facing changes that should make both our, and *your* life easier. Here's the ins and outs of what's changed... ### Simplifying Installs & Upgrades We always dreamed of a Ghost that was easy to install & upgrade. This was the original thought behind picking SQLite3 - no need to configure or setup databases. Unfortunately the binary dependency has always caused more problems than we ultimately solved. Time for an entirely new approach & the introduction of [Ghost CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org). The main aim of Ghost CLI is to make it possible to install and update Ghost with a *single command*. To achieve this, we've simplified things and focused on creating a single path to success, with a [recommended stack](https://ghost.org/docs/hosting/?ref=ghost.org) that should always result in a smooth, robust install & upgrade process. The TL;DR instructions for Ghost-CLI are: - on your server, with a non-root user, run - `sudo npm install -g ghost-cli` - in an empty folder, run - `ghost install` - fill out the info you are prompted for - the end 💥 When a new version of Ghost is released, you'll be able to upgrade by going to your ghost directory and running `ghost update`. The [developer docs](https://ghost.org/docs/?ref=ghost.org) feature a full step-by-step guide to preparing your server and getting Ghost [installed](https://ghost.org/docs/install/?ref=ghost.org) as well as a [cli reference guide](https://ghost.org/docs/ghost-cli/?ref=ghost.org) and details of [the configuration](https://ghost.org/docs/config/?ref=ghost.org) options available to you. ### Rethinking Databases As I mentioned earlier, one of the biggest drivers for using SQLite3 was to make Ghost installs easy. With the introduction of Ghost CLI we now have a new approach, and had the opportunity to rethink our database support. As of Ghost 1.0.0 we no longer support PostgreSQL. This change was explained in detail in [this blog post](https://ghost.org/changelog/dropping-support-for-postgresql/), the TL;DR being that the maintenance overhead was too high. We are also now defaulting to MySQL for production blogs as a future-proofing measure. Ghost works great on SQLite3 right now, however we envisage building features that will be better suited to MySQL. SQLite3 is still available as a development option. If you inspect your database in Ghost 1.0.0 you may also notice that we've switched away from using standard auto-incrementing integer IDs to using ObjectID for all primary keys. ObjectID comes from MongoDB and creates a 24-char unique sequential string ID. This provides many benefits, including making it easier to replicate databases, providing us some interesting options for handling import/exports and much more. We've also moved a lot of the migration and initialisation code out of Ghost itself and into [knex-migrator](https://github.com/TryGhost/knex-migrator?ref=ghost.org). A command line tool that makes it easy to reset, initialise & migrate databases. Ghost CLI uses this tool, but if you're doing manual installs or contributing, you'll need to install it in order to manage your databases 💾 . ### Overhaul of core tooling Inside of Ghost itself, we've replaced and improved the core tooling to make it easier to both configure and debug. #### Config with nconf One of the biggest changes that self-hosters will encounter with Ghost 1.0.0 is the change to using [nconf](https://www.npmjs.com/package/nconf?ref=ghost.org) for configuration. Gone is the old `config.js` file with multiple environments in one file, and in its place are shiny new `config.[env].json` files, which are only required if you need to override the defaults and so are no longer generated by Ghost. Ghost CLI will automatically create any config files that you need. If you're installing without Ghost CLI or developing on Ghost core you may need to create a `config.development.json` or `config.production.json` file in the root of Ghost. The default configuration for Ghost lives in [/core/server/config](https://github.com/TryGhost/Ghost/tree/master/core/server/config?ref=ghost.org), but you should never edit these core files. Always create your own config file in the Ghost root folder. There are more details of how configuration has changed in the [nconf blog post](https://ghost.org/changelog/nconf/) and in the [config docs](https://ghost.org/docs/config/?ref=ghost.org). #### Logging & Debugging We have added a much better system for logging, using [bunyan](https://github.com/trentm/node-bunyan?ref=ghost.org) to create configurable logging output. By default in development mode, Ghost will output to stdout and stderr. In production mode, log files will be written to `/content/logs`. All of this behaviour is [configurable](https://ghost.org/docs/config/?ref=ghost.org#section-logging). We are also now using the popular [debug module](https://github.com/visionmedia/debug?ref=ghost.org) in Ghost, which is also used by several of our dependencies. If you're trying to debug Ghost, you can start it with the debug environment variable set, E.g. `DEBUG=ghost:*` or `DEBUG=*` to get additional output. ### Errors Although less visible, we have also overhauled our error objects in 1.0.0\. We now have a GhostError class with extended properties, and all other types of error extend this. This allows us to provide more detailed and consistent error messages throughout Ghost. Many of these changes - logging, debug and errors - are being provided through a new module called [Ignition](https://github.com/TryGhost/Ignition?ref=ghost.org), which is a collection of reusable tools that we are using across multiple projects (including Ghost, Ghost-CLI & GScan) to provide consistency. Ignition also provides a generalised wrapper for nconf that is used in several projects but not Ghost, which has a slightly special setup ✨. ### Better structure Ghost's server side now has the admin, API and blog frontend split into 3 separate express apps each with their own middleware, routes and error handling. This will reduce weird bugs and regressions and make it far easier for us to add new features. In addition, we've now been able to fully separate the Ghost-Admin Ember.js app so that it is no longer dependent on Ghost injecting data into the base template 🤓. This means that developers can run the Ember.js app independently with full support for tests and live reload. Everything a Ghost client needs is now fully provided via the API, which gives us lots of scope for the future. In Ghost-Admin, the underlying code has been heavily componentised and reusable data like settings & config have been moved into synchronous services. This significantly reduces complexity in the codebase, and should result in fewer regressions. We've also added proper loading states and unified our networking, so all calls go through our own ajax service instead of being split between custom ajax and ember data. Meanwhile, we've upgraded through 6 major Ember.js versions and we've switched to using SVG icons to improve performance. We have also upgraded the concept of adapters to a first class citizen. Custom storage or scheduling adapters can be added in `/content/adapters/`, more information about that [here](https://github.com/TryGhost/Ghost/tree/master/content/adapters?ref=ghost.org). We'll be using adapters to improve our email support in future, and making it possible to install them with Ghost CLI. Awesome things are coming 🦄 ! ### New Editor and the API As explained in the [announcement post](https://ghost.org/changelog/1-0/) the new editor is based on the [MobileDoc](https://github.com/bustle/mobiledoc-kit?ref=ghost.org) format. After extensive research, we decided that the most important factor in any WYSIWYG editor is the underlying data format. This change is explained in detail in the [original issue](https://github.com/TryGhost/Ghost/issues/7429?ref=ghost.org). MobileDoc is a great example of collaborative Open Source development in action. It's an MIT project being worked on by [Bustle](https://www.bustle.com/?ref=ghost.org), [Ghost](https://ghost.org/?ref=ghost.org), [201Created](https://www.201-created.com/?ref=ghost.org), and a number of other [contributors](https://github.com/bustle/mobiledoc-kit/graphs/contributors?ref=ghost.org). Every time one of us makes an improvement, everyone benefits. It's a great shame when multiple open source projects end up developing the same functionality due to hostile license choices - and this is often the case with editors. Our biggest hope is that more open source applications are able to take our work from both MobileDoc and Koenig and freely benefit from using it in their projects. ### Public API Changes From Ghost 1.0.0 the Public API Beta feature is enabled by default. This is a step towards moving it out of labs, please let us know if you find any problems and please be aware there *will* be one last set of [breaking changes](https://github.com/TryGhost/Ghost/issues/8605?ref=ghost.org) when we do finally move it out of beta. Note: If you're using the Public API on a 3rd party site you will need to update your site after upgrading to Ghost 1.0.0 so that it is still able to pull data from your Ghost site. See the [API migration guide](https://ghost.org/docs/update/?ref=ghost.org) for the details. There are also several changes to the fields & resources provided by the API. With the new editor, the `markdown` field has been removed in favour of a new `mobiledoc` field, which you can read more about in the [API docs](https://ghost.org/docs/concepts/posts/?ref=ghost.org#document-storage). We also introduced a new `plaintext` field added a new `formats` param to the posts API, to make it possible to select which formats, E.g. html, plaintext, mobiledoc, that you want to fetch. In addition, each image field that was called simply `image` or `cover` has been renamed to be more descriptive, E.g. posts image is now called `feature_image`. The unused `language` field that appeared on posts and users was renamed to `locale`. Users now have a `last_seen` instead of a `last_login` and invited users are no longer stored in the `users` table until they accept their invite - they live in the `invites` table instead. ### Theme API Changes Themes have had a lot of love in 1.0.0 ❤️. All of the code for managing, uploading and activating themes has been rewritten and moved to a single [location](https://github.com/TryGhost/Ghost/tree/master/core/server/themes?ref=ghost.org) & this coupled with the express app restructuring should help to reduce the number of cache related theme issues. We also now validate all themes using [GScan](https://github.com/TryGhost/gscan?ref=ghost.org). GScan is a tool which runs a set of checks to make sure a theme will work before it is activated. You can always test a theme by visiting [https://gscan.ghost.org](https://gscan.ghost.org/?ref=ghost.org) and uploading it there first or by installing gscan on your machine and using it as a [cli tool](https://github.com/TryGhost/gscan?ref=ghost.org#cli-usage). There are quite a few changes to the theme API in Ghost 1.0, most notably removing features that were previously deprecated, changing the names of image-related properties and introducing the concept of theme config. The [theme changelog](https://ghost.org/docs/themes/?ref=ghost.org) has full details of what has changed, and the [theme migration guide](https://ghost.org/docs/update/?ref=ghost.org) will talk you through step by step how to update your theme for 1.0. ### Developer tooling All Ghost & Ghost-Admin dependency management is now done with [yarn](https://yarnpkg.com/lang/en/?ref=ghost.org), which is not only much faster, but also gives us reliable idempotent installs. Lastly, we've switched our recommended Node.js version to the **Node.js v6 LTS** and suggest using at least **v6.11.1**. We highly recommend upgrading to v6 before installing 1.0.0, if you haven't already. The docs have full details of our [supported Node.js versions](https://ghost.org/docs/faq/node-versions/?ref=ghost.org). ## How to upgrade to Ghost 1.0 This is our first major release which breaks backwards compatibility, so the upgrade process is more involved than usual. **If you don't have a Ghost site:** Try it out for free with our [14 day trial on Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org). All new sites automatically run on Ghost 1.0. **If you have an existing Ghost(Pro) site:** The upgrade process will be mostly automated for you, with a couple of steps. We're upgrading people in batches over the coming weeks and once your account is ready to be migrated, you'll see an "Upgrade to Ghost 1.0" button when you log into Ghost.org, with instructions for what to do next. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/upgrade.png) **If you self-host Ghost:** You will need to set up a new Ghost 1.0 install, and export/import your content over. We've put together [a full migration guide](https://ghost.org/docs/update/?ref=ghost.org) which should help. Because the upgrade process is more complex this time around, we've marked Ghost 0.11 as a Long Term Support (LTS) release. We will continue to provide maintenance and security updates for Ghost 0.11 for the next 6 months. ## Credits This release was lovingly crafted by Kevin Ansfield, Katharina Irrgang, Hannah Wolfe, Aileen Nowak, Austin Burdine, John O'Nolan, David Wolfe, Ryan McCarvill, Tobias Bieniek, Vivek Kannan, Patrick Kim, Sebastian Gierlinger, Kenneth Ashley, John O'Mahoney, Felix Rieseberg, vitalie maldur, sahand12, janvt, ivan sebastian, Rodney Folz, Rei, Rabbi Hossain, Myles Braithwaite, Matt Enlow, Marc Bachmann, Jimmy Cai, Gabor Javorszky, Fixer, David Balderston, Cezary Kluczyński, Ben Vibhagool and André Borud. ### Announcing Ghost 1.0 URL: https://ghost.org/changelog/1-0/ Last updated: 2021-01-10T23:31:53.000Z About four years ago we launched Ghost on Kickstarter as a tiny little prototype of an idea to create the web's next great open source blogging platform. In the early days we really just focused on just making everything work. Ghost was one of the very first open source Node.js applications, and it certainly came with a steep learning curve. Our first release was Ghost 0.3 in September 2013, and since then there have been a total of 99 releases, all the way up to Ghost 0.11.9. In that time we've watched as the Ghost ecosystem has grown and flourished. From some of the web's best loved startups like [Square](https://squareup.com/townsquare?ref=ghost.org) and [Tinder](https://blog.gotinder.com/?ref=ghost.org), to some of the world's most important organisations like Elon Musk's [OpenAI](https://blog.openai.com/?ref=ghost.org) and [Mozilla](https://blog.mozvr.com/?ref=ghost.org). Ghost even made a very brief appearance in this season of HBO's [Silicon Valley](https://twitter.com/SiliconHBO/status/874092257607135234?ref=ghost.org). **Today marks our 100th release of Ghost and, fittingly, it's Ghost 1.0.0** This release contains over 2,600 commits of features, refactors, improvements, and fixes to make the entire codebase more robust and more reliable all-round. --- ## A new editor The headline feature of Ghost 1.0 is a brand new editor, and it's one that we're incredibly excited about, because we think it paves the way toward one of the most powerful publishing experiences on the web. Ghost has always been known and praised for its simple, yet powerful Markdown editor, which allows for a great writing experience alongside easy document formatting. Our new editor offers a tremendous upgrade to that experience, with a cleaner design, a new toolbar, support for Markdown tables, CommonMark, Github-flavoured Markdown and multiple view options depending on whether you prefer a focused single column or a side-by-side preview. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-46.png) While this is already a significant upgrade over the previous writing experience, there's a whole lot more going on behind the scenes. The truth is that Ghost 1.0 doesn't just have one new editor. **It has two.** ### Let me explain: Improving Ghost's Markdown editor has always been high on our list of priorities, but for a long time we've wanted to do more. Modern publications aren't just text based, they're comprised of diverse, dynamic elements from photographs to videos, detailed charts and rich embeds. We wanted to build something entirely new which would support all of those use-cases, and be extensible for new types of content in the future. New-age WYSIWYG editors are a dime-a-dozen these days. Everyone and their dog seems to have a fancy document editor, but all of them suffer from the same fundamental problem: A fragile (or non-existent) underlying document storage model, which means that no matter how good they look, they fall apart pretty quickly. Back in 2015 we started talking to Matt and Cory from the Ember.js core team, who had started building a portable JSON-based document storage format called [MobileDoc](https://github.com/bustle/mobiledoc-kit?ref=ghost.org) as a part of a long term project for Bustle.com - one of the web's most successful modern publishers. MobileDoc is unique as an open standard which can store dynamic nested blocks of content in a sane manner, and translate their output into a variety of formats. For almost two years we've been building a powerful block-based editor on top of MobileDoc - which is included in Ghost 1.0 for the first time. We're calling it **Koenig**. The secret is that the upgraded Markdown editor is just a content block within the new Koenig editor: Ghost 1.0 and its upgraded Markdown editor is the first step toward a much more powerful writing experience. Over the rest of the year we'll be adding support for more content types, and making them extensible so developers can create their own. > Here's a very simple, early demo of where we're going next with the Koenig editor later this year: But wait there's more! ## A refreshed UI We've given Ghost admin a fresh lick of paint, tidied up the settings area, re-jigged buttons, a better publishing workflow, and many other small visual improvements. Oh, and you can also filter the content screen now by post state, tag and author - so it's way easier to sort through large archives of content. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-47.png) ## A new default theme design Casper, our default theme, has now reached its 2.0 milestone and has a shiny new look to celebrate the occasion. This new layout was designed to accommodate all the new Ghost features we've released over the last few years, and provide a more flexible/customisable base for most publications. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-48.png) ## Night shift mode New in beta, a night shift mode to reverse the colours of Ghost admin for a gentler experience on the eyes when working in dim lighting. (Or just feeling like you're writing code) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-49.png) ## Publication icons As well as a publication logo Ghost now also supports publication icons; handy for a smaller square logo to be used with theme UI and as a site favicon. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-50.png) ## A whole lot more There are huge number of changes and improvements to enjoy. - A brand new importer which works a lot better than the old importer. - Google AMP is now optional rather than always-on. - Custom redirects can now be set via a config file. - Users can be suspended if required. - Collision detection, so if two people are editing a post at the same time they won't override each other. That was, um. Not ideal. - A new tour feature for new Ghost users to find their way around. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-51.png) There are also a huge number of changes for developers in Ghost 1.0, which we've covered over [on the developer blog](https://ghost.org/changelog/ghost-1-0-0/). There are important breaking changes to the theme API. --- ## How to upgrade to Ghost 1.0 This is our first major release which breaks backwards compatibility, so the upgrade process is more involved than usual. **If you don't have a Ghost site:** Try it out for free with our [14 day trial on Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org). All new sites automatically run on Ghost 1.0. **If you have an existing Ghost(Pro) site:** The upgrade process will be mostly automated for you, with a couple of steps. We're upgrading people in batches over the coming weeks and once your account is ready to be migrated, you'll see an "Upgrade to Ghost 1.0" button when you log into Ghost.org, with instructions for what to do next. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-52.png) **If you self-host Ghost:** You will need to set up a new Ghost 1.0 install, and export/import your content over. We've put together [a full migration guide](https://ghost.org/docs/update/?ref=ghost.org) which should help. Because the upgrade process is more complex this time around, we've marked Ghost 0.11 as a Long Term Support (LTS) release. We will continue to provide maintenance and security updates for Ghost 0.11 for the next 6 months. --- ## What's coming next Ghost 1.0 was an incredibly long and complex release cycle. It took us almost a full year, and things have been pretty quiet around here since then. We learned a lot from it, but we're planning on going back to smaller and much more frequent (SemVer) releases from here on in. Also, hello from Dubai! We've got the whole Ghost team here finalising this release and working hard to make sure it's a good one :) We're going to record a little Ghost 1.0 Release podcast tomorrow, so let us know in the comments if you have any questions - and we'll discuss them IRL! **In the mean time, could we ask for your help to share the news? Here's a pre-written status to make it extra simple:** *Just launched! 👉🏼 Ghost 1.0 - A brand new editor, updated design, and ludicrous improvements all round. /changelog/1-0/* [Tweet this now](https://twitter.com/share?text=Just%20launched!%20%F0%9F%91%89%F0%9F%8F%BC%20Ghost%201.0%20-%20A%20brand%20new%20editor,%20updated%20design,%20and%20ludicrous%20improvements%20all%20round&url=https://ghost.org/changelog/1-0/&ref=ghost.org) [Buffer it for later](https://bufferapp.com/add/?url=https://ghost.org/changelog/1-0/&text=Just%20launched!%20%F0%9F%91%89%F0%9F%8F%BC%20Ghost%201.0%20-%20A%20brand%20new%20editor,%20updated%20design%20and%20ludicrous%20improvements%20all%20round&ref=ghost.org) Please enjoy these **1-click buttons** for Ultimate Efficiency™️, or of course you can also just copy/paste if that's more your thing. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-53.png) > We're also answering questions [over on ProductHunt](https://www.producthunt.com/posts/ghost-1-0?ref=ghost.org) right now! ### Ghost 0.11.11 URL: https://ghost.org/changelog/ghost-0-11-11/ Last updated: 2021-01-07T02:38:27.000Z [Ghost 0.11.11](https://github.com/TryGhost/Ghost/releases/tag/0.11.11?ref=ghost.org) is now available on GitHub, npm and Ghost.org. This is primarily a bugfix and 1.0 migration preparation release. ## Highlights - **\[New\]** Forwards compatibility has been added for Ghost 1.0 themes to allow for smoother upgrades - **\[Improved\]** Protections against invalid dates in imports were added - previously it was possible to import invalid dates which would then cause the front-end to hang on certain requests - **\[Fixed\]** Autosaving of new posts is now behaving correctly again You can see the [full change log](https://gist.github.com/kevinansfield/46d028d21631df4fb8240fd77d8c2676?ref=ghost.org) for the details of every change included in this release. ## In Detail 0.11.11 is a pretty small release, the main headline change is that forwards compatibility with Ghost 1.0 themes has been added. Forwards compatibility will allow you to install a 1.0 compatible theme prior to making the switch to Ghost 1.0\. Please note: Ghost 1.0 has built-in compatibility checking, whereas Ghost LTS does not. To be absolutely sure a theme is compatible, please upload it to Ghost 1.0 or use [https://gscan.ghost.org](https://gscan.ghost.org/?ref=ghost.org). ### Theme API Changes Image properties that were [renamed in 1.0](https://ghost.org/docs/themes/?ref=ghost.org) have been aliased to the old values so these will work in 0.11.11: - `{{@blog.cover_image}}` - `{{post.feature_image}}` - `{{tag.feature_image}}` - `{{user.profile_image}}` - `{{user.cover_image}}` The [{{img\_url}}](https://ghost.org/docs/themes/helpers/img%5Furl/?ref=ghost.org) helper has also been added for forwards compatibility. See the [theme API docs](https://ghost.org/docs/themes/?ref=ghost.org) for full details of what changed in Ghost 0.11.11\. The theme documentation is frequently updated with more details and better examples. Please also use the **suggest edits** feature if you find something is missing or out of date. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.11 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.11](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [developer docs site](https://ghost.org/docs/?ref=ghost.org). Enjoy! ## Credits This release was lovingly crafted by Kevin Ansfield, Katharina Irrgang and David Wolfe. ### Ghost 1.0 RC1 URL: https://ghost.org/changelog/ghost-1-0-0-rc-1/ Last updated: 2021-01-10T23:31:53.000Z Today we're announcing the first release candidate of Ghost 1.0 - which is (hopefully) the *last* step toward a final release. You can [install this version via Ghost-CLI](https://ghost.org/docs/ghost-cli/?ref=ghost.org) for **production usage**. If you want to migrate your LTS (0.11) site to 1.0, check out the [migration guide](https://ghost.org/docs/update/?ref=ghost.org). Meanwhile, here's what's changed since the last beta: - **\[fixed\]** A bug where empty posts could be published - **\[fixed\]** An edge case that would send Casper's infinite scroll into an infinite loop - **\[fixed\]** Broken positioning on welcome tour elements - **\[fixed\]** Minor visual bugs with SVG icons - **\[fixed\]** Session sync issues with multiple tabs/refreshes - **\[fixed\]** A regex issue with Ghost subdirectory URLs - **\[fixed\]** Re-enabled custom robots.txt via themes - **\[improved\]** Editor now focuses on the content area by default rather than the title - **\[improved\]** Tag management performance for sites with many (hundreds) of tags You can see the [full change log](https://gist.github.com/kirrg001/c19aefb9ff19346b81eaa3c2f5b422a0?ref=ghost.org) for the details of all changes included in this release. ## Updated documentation [Documentation for Ghost 1.0](https://ghost.org/docs/?ref=ghost.org) is available and complete. If you spot any errors or have any trouble, please come and find us on [slack](https://forum.ghost.org/?ref=ghost.org). ## Breaking changes for theme activations In a [previous beta release post](https://ghost.org/changelog/1-0-0-beta/) we announced some upcoming breaking changes for themes. In Ghost 1.0 all themes are [scanned](https://github.com/TryGhost/gscan?ref=ghost.org) for compatibility when they're uploaded. If a fatal error is detected, the theme will not be activated. Here's an overview of all fatal errors and their solutions: - **\[fatal\]** Usage of `{{pageUrl}}`, please use `{{page_url}}` - **\[fatal\]** Usage of `{{image}}`, please use `{{feature_image}}`, `{{cover_image}}` or `{{profile_image}}` (depending on context) - **\[fatal\]** Usage of `{{author.image}}`, please use `{{author.profile_image}}` - **\[fatal\]** Usage of `{{post.image}}`, please use `{post.feature_image}}` - **\[fatal\]** Usage of `{{@blog.cover}}`, please use `{{@blog.cover_image}}` - **\[fatal\]** Usage of `{{author.cover}}`, please use `{{author.cover_image}}` - **\[fatal\]** Usage of `{{tag.image}}`, please use `{{tag.feature_image}}` - **\[fatal\]** Usage of `{{post.author.image}}`, please use `{{post.author. feature_image}}` - **\[fatal\]** Usage of `{{post.author.cover}}`, please use `{{post.author. cover_image}}` - **\[fatal\]** Usage of `{{post.tags.[#].image}}`, please use `{{post.tags.[#].feature_image}}` - **\[fatal\]** Usage of `{{tags.[#].image}}`, please use `{{tags.[#].feature_image}}` - **\[fatal\]** A template file called index.hbs must be present - **\[fatal\]** A template file called post.hbs must be present. - **\[fatal\]** Any unknown handlebars helper You can always test your theme in advance on [https://gscan.ghost.org](https://gscan.ghost.org/?ref=ghost.org). Furthermore, please read through the [theme change log](https://ghost.org/docs/themes/?ref=ghost.org) for more information. ## Node v6 Our officially recommended version of Node.js is now >= v6.9\. Node v4 is still supported. [Full list of supported Node versions](https://ghost.org/docs/faq/node-versions/?ref=ghost.org). ## Ghost-CLI 1.0 We've also released a new version of Ghost-CLI — 1.0.0-rc.1\. You have to update to the newest version by running `npm install -g ghost-cli@latest`. **Please ensure `ghost --version` shows `1.0.0-rc.2`.** Please see [here](https://ghost.org/docs/install/?ref=ghost.org) for details on how to setup your server and install Ghost. ## Credits Kevin Ansfield, Aileen Nowak, Patrick Kim, John O'Nolan, Hannah Wolfe, Fixer, Austin Burdine and Katharina Irrgang. ### Ghost 1.0 Beta2 URL: https://ghost.org/changelog/1-0-0-beta-2/ Last updated: 2021-01-08T12:15:27.000Z Following Ghost 1.0.0-beta.1 a couple of weeks ago, today we're releasing Ghost 1.0.0-beta.2 - which is the next step towards a final release. We're anticipating that this will be the last beta, and the next package to be built will be a release-candidate. Since the first beta, a significant number of bugs have been found and fixed: - **\[fixed\]** ghost uninstall won't screw up your instance list - **\[fixed\]** local process manager won't die if your .ghostpid file has gone away - **\[fixed\]** Casper is now updated during `ghost update` - **\[improved\]** Commands that require sudo are shown in gray before they are run (future improvement will be to prompt) - **\[fixed\]** Remove trailing slash for `{{@blog.url}}` - **\[improved\]** Theme activation error messages - **\[changed\]** Enable public API by default - **\[changed\]** set spellchecker to "off" by default You can see the [full change log](https://gist.github.com/kirrg001/5ab1e5d9b733f05664c42d3e357d5bb1?ref=ghost.org) for the details of all changes included in this release. ## A new CLI release We've also released a new version of Ghost-CLI — 1.0.0-alpha.19\. You can update by running `npm install -g ghost-cli@latest`. This includes and important fix so that the Casper theme is updated during `ghost update`. ## Casper 2.0 Ghost 1.0.0-beta.2 also contains the most-visible change of the upcoming release, which is a brand new default theme. Casper was originally designed for the functionality of Ghost 0.3, and as Ghost has grown and had new features added to it - those features have been tacked-on to the original design as an afterthought. Now, 4 years later, Casper has had a total rewrite to natively support all of the features which Ghost has in 2017. We'll talk more about this in the full release post, but from a developer perpective the relevant changes are: - More performant, cleaner use of handlebars - Significantly more inline code documentation to help new Ghost theme developers understand how our theme API works - Gulp + PostCSS now used to build and minify theme assets - New use of the `{{#get}}` helper to pull content from the API (which is now switched-on by default) - Proper support for Ghost's subscribers (beta) feature - Better handling of RSS feeds via Feedly, rather than raw XML - Better author meta data with extended use of new social profile fields - Google fonts replaced with system fonts - Icon font replaced with inline SVG icons - Significantly improved mobile support ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-54.png) ## Credits Aileen Nowak, Kevin Ansfield, David Wolfe, John O'Nolan, Hannah Wolfe and Katharina Irrgang ### Ghost 0.11.10 URL: https://ghost.org/changelog/ghost-0-11-10/ Last updated: 2021-01-07T04:42:59.000Z [Ghost 0.11.10](https://github.com/TryGhost/Ghost/releases/tag/0.11.10?ref=ghost.org) is now available on GitHub, npm and Ghost.org. This is predominantly a bug-fix release for [LTS](https://ghost.org/changelog/lts/) whilst we work towards the [imminent](https://ghost.org/changelog/1-0-0-beta/) 1.0 release. ## Highlights - **\[Fixed\]** saving a slug in the post settings menu no longer results in an incorrect error stating "someone else is editing this post" - **\[Fixed\]** many small bugs see the [full list](https://gist.github.com/kevinansfield/124c3c0b6a75c2ebff4f349a2cfcf1d1?ref=ghost.org) for more details - **\[Docs\]** all support docs now live at [https://ghost.org/docs/](https://ghost.org/docs/?ref=ghost.org) so the in-app links have been updated - **\[Node\]** ⚠️ minimum version of node 4 is now v4.5.0 You can see the [full change log](https://gist.github.com/kevinansfield/124c3c0b6a75c2ebff4f349a2cfcf1d1?ref=ghost.org) for the details of every change included in this release. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.10 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.10](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [developer docs site](https://ghost.org/docs/?ref=ghost.org). Enjoy! ## Credits This release was lovingly crafted by Kevin Ansfield, Katharina Irrgang, David Wolfe, Aileen Nowak and Mateusz Derk. ### 1.0.0 Beta is out! URL: https://ghost.org/changelog/1-0-0-beta/ Last updated: 2021-01-10T23:31:54.000Z After **21** alpha releases, we just released the first 1.0 beta version 😀. Please read the [previous post](https://ghost.org/changelog/lts/) about the difference between 1.0 and LTS. The official support for LTS will end on the **31st of August 2017**. ## How to install the beta? The [Ghost-CLI](https://github.com/TryGhost/Ghost-CLI?ref=ghost.org) is the recommended way to install Ghost 1.0 beta, but it's not yet suitable for production. We already mentioned in a [previous post](https://ghost.org/changelog/alpha-9-objectid-cli/), which system stack we recommend. The CLI is able to setup NGINX and SSL for you **soon** \- pretty cool, hm? 🙃 We've created a new [Ghost CLI install guide](https://ghost.org/docs/install/?ref=ghost.org) that covers installing Ghost via the CLI. ## Migration from LTS to 1.0 beta We have written a [1.0 migration guide](https://ghost.org/docs/update/?ref=ghost.org) for migrating from LTS to 1.0 beta. You basically have to install the 1.0 beta via the CLI, export your LTS database via the admin panel and import the file into the 1.0 blog. ## Breaking changes Here is an overview of the **most important** breaking changes. Lay back and enjoy! ### ghost.org/docs We have removed our Github wiki and disabled support.ghost.org, both now live now at **[https://ghost.org/docs/](https://ghost.org/docs/?ref=ghost.org)**. Having a centralised place for all our documentation is very useful. The documentation is for self hosters, theme developers and contributors - if you notice anything missing please let us know! The new docs are hosted on readme.io so please send us suggestions if you notice anything that's incorrect or confusing. ### A new editor Ghost 1.0 is sticking with a markdown-only editor for now (although it saves to [mobiledoc](https://github.com/bustle/mobiledoc-kit/blob/master/MOBILEDOC.md?ref=ghost.org) format internally for future extensibility) but that doesn't mean the editor experience has stood still. The key changes: - there's a toolbar! - the editor pane shows formatting directly rather than requiring a preview pane to give a less cluttered writing experience (don't worry, there's still a split-pane editor too for the full markdown preview) - image uploads are now initiated directly from the toolbar or by dragging and dropping images onto the editor pane (and yes, it supports multiple images at once!) - we now use [markdown-it](https://github.com/markdown-it/markdown-it?ref=ghost.org) instead of a very old customised version of Showdown fixing a lot of annoying markdown rendering bugs ### 1.0 Themes If you import a theme, which worked on 0.11.9, it **might** not work with 1.0 anymore because there have been couple of breaking changes in the theme API. However there are tons of themes which will still work. To improve the migration experience when you upload your theme into Ghost 1.0 beta and it fails to import, it will show you a detailed report of why the import failed. As a theme developer you can use [gscan](https://gscan.ghost.org/?ref=ghost.org) to find out what adaptations you have to make for your theme to work with 1.0 beta. Here is an overview of what has changed: - `package.json` is required and must contain a valid name, version and an author email address ([docs](https://ghost.org/docs/themes/structure/?ref=ghost.org#packagejson)) - the `{{image}}` helper was removed - therefore we have added a `{{img_url}}` helper ([docs](https://ghost.org/docs/themes/helpers/img%5Furl/?ref=ghost.org)) - `{{pageUrl}}` helper was renamed to `{{page_url}}` helper ([docs](https://ghost.org/docs/themes/helpers/pagination/?ref=ghost.org)) - `{{meta_description}}` in `` is not allowed anymore - use `@config.posts_per_page` instead of `@blog.posts_per_page` - you can define `posts_per_page` in your theme `package.json` ([see](https://ghost.org/docs/themes/structure/?ref=ghost.org#packagejson)) - `{{content words="0"}}` does not work anymore, use `{{img_url}}` instead - we renamed some css classes ([docs](https://ghost.org/docs/themes/helpers/img%5Furl/?ref=ghost.org)) Please read through the [1.0 theme documentation](https://ghost.org/docs/themes/?ref=ghost.org) for full details. ### Configuration with nconf The old `config.js` file will no longer work. Instead we have added [nconf](https://github.com/indexzero/nconf?ref=ghost.org) as configuration management tool. Checkout our [configuration documentation](https://ghost.org/docs/ghost-cli/?ref=ghost.org) or the [previous post](https://ghost.org/changelog/nconf/) about using nconf. ### Storage adapters The location of storage adapters has changed and we added proper class inheritance. The base adapter was extracted to it's own npm module and now lives [here](https://github.com/TryGhost/Ghost-Storage-Base?ref=ghost.org). If you made use of a custom storage adapter in the past, this adapter won't work anymore. The maintainer will need to update it for 1.0. Further details are available [here](https://ghost.org/integrations/?tag=Storage&ref=ghost.org). ### A new migration tool Before 1.0, the database population and migration were part of Ghost core itself. The logic was [extracted](https://github.com/TryGhost/knex-migrator?ref=ghost.org) and lives in it's own npm module. When installing or using Ghost 1.0 regularly, the Ghost CLI takes care of **any** database upgrades. You don't have to execute any extra command. However, in case you would like to manually re-initialise your database or test the new migration tool, please read more about it [here](https://ghost.org/docs/ghost-cli/?ref=ghost.org). ## Beta tester We are very happy about beta testers and **any** feedback is **very** welcome. If you find a bug, please raise it on our [Github repository](https://github.com/TryGhost/Ghost/issues?ref=ghost.org). If you have any questions or problems with installing the 1.0 beta, please swing by our [forum](https://forum.ghost.org/?ref=ghost.org) and say hello 🙃. ## What's next? The official release of 1.0 depends on the number of bugs and feedback we get back during the beta. We would like to release it as soon as possible to concentrate on the next features so if you are able to test it please do! Final things that didn't quite make the beta cut but are expected to be in the final 1.0 release: - we have welcomed a [new contributor](https://github.com/juan-g?ref=ghost.org), who has implemented the [i18n (translation) for themes](https://github.com/TryGhost/Ghost/issues/5345?ref=ghost.org) ### Ghost 0.11.9 URL: https://ghost.org/changelog/ghost-0-11-9/ Last updated: 2021-01-11T00:09:36.000Z [Ghost 0.11.9](https://github.com/TryGhost/Ghost/releases/tag/0.11.9?ref=ghost.org) is now available on GitHub, npm and Ghost.org. This release contains lots of small bug fixes. ## Highlights - **\[Fixed\]** import scheduled posts - **\[Fixed\]** HTML displaying in error alerts - **\[Fixed\]** permit Facebook usernames with less than 5 chars - **\[Fixed\]** escape blog title for mail header - **\[Fixed\]** update collision detection: updated\_at is null - **\[Fixed\]** a gscan bug: upload themes with e.g. .git folders You can see the [full change log](https://gist.github.com/kirrg001/5499731dce5c7ea297857c9c536c4e88?ref=ghost.org) for the details of all changes included in this release. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.9 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.9](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits Kevin Ansfield and Katharina Irrgang ### Ghost 0.11.8 URL: https://ghost.org/changelog/ghost-0-11-8/ Last updated: 2021-01-11T00:09:51.000Z [Ghost 0.11.8](https://github.com/TryGhost/Ghost/releases/tag/0.11.8?ref=ghost.org) is now available on GitHub, npm and Ghost.org. This release contains lots of small bug fixes. The most interesting one is the detection of post update collisions. If two users edit the same article, you won't override each others content anymore. ## Highlights - **\[Fixed\]** Post update collisions - **\[Fixed\]** Be able to delete a post if it's referenced by a subscriber - **\[Fixed\]** Image size timeout - **\[Fixed\]** subscriber: sanitize email vol. 2 - **\[Fixed\]** some date bugs - many dependency updates You can see the [full change log](https://gist.github.com/kirrg001/10d5e4c862f1284537bf69f3dfaced1b?ref=ghost.org) for the details of all changes included in this release. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.8 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.8](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits Kevin Ansfield, Katharina Irrgang and Mickael van der Beek ### TWiG: Progress report on Ghost 1.0 URL: https://ghost.org/changelog/ghost-1-progress/ Last updated: 2019-05-22T06:27:43.000Z We've been remiss in providing updates here for the last few weeks whilst we've been super busy [shipping weekly alpha builds](https://github.com/TryGhost/Ghost/releases?ref=ghost.org) of Ghost 1.0\. After some discussions about the format of updates, John & I thought it would be fun to experiment with providing them in the form of a podcast. And so here I present you, episode 1 of "This Week in Ghost" - a weekly podcast about what's going on behind the scenes at Ghost HQ. This week: why we're podcasting, a run down of the features we've built for 1.0, preparations for beta testing & what we're doing next. **Disclaimer:** This was a very experimental first episode. There were a couple of issues with audio-levels at the beginning, and some annoying delays in the call which made for a few gaps/interruptions - but these are details which we will of course iron out over time. Leave us your questions in a comment below! Or on Twitter. Or... you know... anywhere else. We really need to figure this out. **Shownotes:** - [https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/](https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/?ref=ghost.org) Leave us questions here or on twitter and we'll answer them next time! ### Ghost 0.11.7 URL: https://ghost.org/changelog/ghost-0-11-7/ Last updated: 2021-01-11T00:10:10.000Z [Ghost 0.11.7](https://github.com/TryGhost/Ghost/releases/tag/0.11.7?ref=ghost.org) is now available on GitHub, npm and Ghost.org. 0.11.7 contains a fix for a pretty awful custom template bug we shipped in 0.11.6. We've been working on some gnarly issues with load times & timeouts to make Ghost LTS more stable. A key thing was changing how themes are loaded & ensuring we don't load more information than we need to. Unfortunately, we over did it a bit, and lost information used to render custom theme templates 😱. Sorry about that - it's all back now. ## Highlights - **\[Fixed\]** Themes ignoring all templates except index.hbs and post.hbs From 0.11.6: - **\[Improved\]** Subscriber: sanitize email - **\[Improved\]** Refactored packages, apps and more - **\[Fixed\]** Old accesstokens are not cleaned up - **\[Fixed\]** Fix cors middleware - **\[Fixed\]** Fix incorrect icon on AMP app page - **\[Fixed\]** Ensure config is update when deleting theme - **\[Fixed\]** Fix version check error for minor versions >= 10 You can see the [full change log](https://gist.github.com/kirrg001/e2b440e47f0cf8ade3b6831ab7ca5386?ref=ghost.org) for the details of all changes included in this release. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.7 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.7](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits Hannah Wolfe & Katharina Irrgang. Special credit to Hannah for the awful bug 😝 & to Kate for helping to get a super fast fixup release out 💨. ### Ghost 0.11.6 URL: https://ghost.org/changelog/ghost-0-11-6/ Last updated: 2021-01-07T01:16:20.000Z [Ghost 0.11.6](https://github.com/TryGhost/Ghost/releases/tag/0.11.6?ref=ghost.org) is now available on GitHub, npm and Ghost.org. **Warning** 0.11.6 contains a bug with custom theme templates. We strongly advise against upgrading to 0.11.6, please wait for 0.11.7 (coming asap). ## Highlights - **\[Improved\]** Subscriber: sanitize email - **\[Improved\]** Refactored packages, apps and more - **\[Fixed\]** Old accesstokens are not cleaned up - **\[Fixed\]** Fix cors middleware - **\[Fixed\]** Fix incorrect icon on AMP app page - **\[Fixed\]** Ensure config is update when deleting theme - **\[Fixed\]** Fix version check error for minor versions >= 10 You can see the [full change log](https://gist.github.com/kirrg001/e2b440e47f0cf8ade3b6831ab7ca5386?ref=ghost.org) for the details of all changes included in this release. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.6 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.6](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits Hannah Wolfe, Katharina Irrgang, Peter Jones, Kevin Ansfield and Aileen Nowak ### Ghost 0.11.5 URL: https://ghost.org/changelog/ghost-0-11-5/ Last updated: 2021-01-11T00:07:47.000Z [Ghost 0.11.5](https://github.com/TryGhost/Ghost/releases/tag/0.11.5?ref=ghost.org) is now available on GitHub, npm and Ghost.org. ## Highlights - **\[Improved\]** Session handling has been tweaked meaning a poor net connection or leaving the admin open should no longer result in random logouts - **\[Fixed\]** Timezone config could be accidentally overwritten causing published dates to appear incorrect - **\[Fixed\]** Deleting all content now works if you have subscribers that subscribed from a post page - **\[Fixed\]** Subscriber export now contains all subscribers - **\[Fixed\]** Theme files are no longer cached in development mode You can see the [full change log](https://gist.github.com/kevinansfield/e60f0b5ec040bbfd1f98e4bad528aa83?ref=ghost.org) for the details of all changes included in this release. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.5 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.5](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits Katharina Irrgang, Kevin Ansfield, Vivek Kannan, janvt , Mateusz Derks, Hannah Wolfe and Aileen Nowak. ### Ghost Desktop's JavaScript Underbelly URL: https://ghost.org/changelog/ghost-desktop-tour/ Last updated: 2021-09-22T18:34:11.000Z Have you checked out Ghost Desktop yet? It's our little app for Windows, macOS, and Linux, allowing users to work on their publications without being confined by the limits of a browser. We already implemented a host of native features, and we have even bigger plans for the future. However, the app is still written in JavaScript, using mostly the same guidelines and technologies used by both the Ghost backend and frontend. In this post, I'd like to give you a quick tour of how we're building Ghost Desktop. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/screenshot.png) ### Node.js on the Desktop Ghost Desktop stands on the shoulders of giants. We use [Electron](https://electron.atom.io/?ref=ghost.org), a framework combining Chrome, Node.js, and a thick layer of native integrations with Windows, macOS, and Linux. Initially developed by GitHub for the code editor [Atom](https://www.atom.io/?ref=ghost.org), it is now one of the hot newcomers in the JavaScript ecosystem, powering [Visual Studio Code](https://code.visualstudio.com/?ref=ghost.org), [Slack](https://slack.com/downloads?ref=ghost.org), or [WhatsApp](https://www.whatsapp.com/download/?ref=ghost.org). It is popular with good reason: Thanks to the strong cross-platform foundation in both Chrome and Node.js, one can easily create an app for all popular platforms. In addition, Electron apps get to use the collective goodness available on npm, enjoy the latest and greatest in modern JavaScript, and allow for the same convenience in development we JavaScript developers are used to. Building cross-platform means that we can focus our energy on building one great app rather than dividing our resources to build multiple less polished apps. In addition, we at Ghost 💖 JavaScript: Using Electron means that we can use the same style, the same skills, the same learnings, and the same familiar environment to build our Desktop app we use to build our backend and our frontend. Technically, it's a combination: Ghost Desktop is an Ember App that get's to use Node modules - even native ones, written in C++, useful for difficult operations like spellchecking. ### Willy Wonka's App Factory Let's take a look at the source. It starts with a `package.json`, just like Node developers are used to. As you can tell from the dependencies, we're using Ember and a handful of Node modules. We even built [ember-electron](https://github.com/felixrieseberg/ember-electron?ref=ghost.org), integrating Ember Cli with Electron. To understand how it all comes together, let's follow the path of the app booting up. To start the app as a developer, you run `npm start`, which in turn calls `ember electron`. Electron starts with a simple file, much like a Node.js application - in our case, that's `main/app.js`. Note that when Ghost Desktop starts, it initially does not have a visible window - the main process does not have a user interface. In there, we wait for the application to finish its native boot process before creating a new [BrowserWindow](https://electron.atom.io/docs/api/browser-window/?ref=ghost.org). Like the name suggests, that window is a Chromium window, with one important caveat: In addition to Chrome's JavaScript features, Node is also in play. The loaded page is not just limited to the usual HTML, CSS, and JS - you can also call `require('fs')`. In that `BrowserWindow`, we fire up an Ember application - it manages the addition of blogs, the quick switcher on the left, and everything else you can see. If you browse the source code, you will even see us requiring Node modules, including native ones. However, due to the tremendous power available to the code that runs inside the window, we do not simply load your blog. [We use a special HTML element called a ](https://electron.atom.io/docs/api/web-view-tag/?ref=ghost.org) \- which is sort of like an `Iframe` and at home inside the Chromium engine. When you add a blog, we create a new ``. Before a blog gets to load, we pre-load a series of functions, augmenting the APIs available to the blog. Once we have augmented the global scope, we remove Node privileges inside the ``. In this moment, Ghost Desktop becomes a slightly more powerful browser, tailored specifically to the needs of the Ghost Admin interface. From there, Ghost Desktop has full control over Ghost Admin, while Ghost Admin is able to call a set collection of APIs made available to it. We have big plans for the future: A powerful offline mode, allowing to work on posts without an active connection. Native integration with your favorite editors, whether that is Microsoft Word or Sublime. Easier management for those creative souls who manage multiple blogs. If you'd like work on some Open Source code with us, join us in our GitHub repository! ### Announcing Ghost for Journalism URL: https://ghost.org/changelog/journalism/ Last updated: 2021-01-11T01:35:30.000Z This year we're very excited to be dedicating our entire 10 person full-time Ghost team to helping grow three independent publications, along with $45,000 in resources toward their efforts. We're calling it **[Ghost for Journalism](https://ghost.org/journalism/?ref=ghost.org)**. **But I'm getting ahead of myself, let me explain:** Next month, we're going to release Ghost 1.0 – which represents a significant milestone as we acknowledge that we've now built everything that the first version of the platform was supposed to accomplish. It also serves one other purpose, which is a major version bump to signify the breaking changes we're about to make in order to set the stage for what's next. We've been building Ghost as the web's next great platform for independent publishers for about three and half years now, and we've now reached a really interesting inflection point. We started this journey to create a simple, well designed blogging platform which could be used by just about anyone. That was always going to be step one. But right back to the Kickstarter campaign that we launched with, I've been talking about how we want to serve and have an impact on independent journalism. **That's what's next.** We have a huge list of features that we want to build, as well as a very large [list of requested features](https://forum.ghost.org/?ref=ghost.org) that our users have asked for. The question for us, of course, is how to prioritise them in a way that leads Ghost towards the future that we have envisaged for it. This is really important. We *could* build anything, but *what* we build will determine the direction of the platform and the organisation. Long term, we want Ghost to be an incredible platform for the world's best journalism, and that means we need to build features to attract exactly those people. This year we're making a very conscious decision to focus on just that. ### There are 3 main areas we're going to work on next: Namely: 1. **Memberships** Logged-in experiences for visitors & better data for publishers 2. **Subscriptions** Content delivered directly to readers, wherever they are 3. **Payments** Integrations to allow publishers to build new revenue models We believe that the most significant technology issues affecting independent publishers is growing an engaged audience and finding a path to financial sustainability. So those are the things we're really excited about working on. To that end, this year we're doing something different. We've created the very first Ghost Journalism Development program to find and work with three great new publications. Our goal is to find three fantastic new publishers to work with and help them grow their audiences throughout 2017, as we build out these features (and others) explicitly around their needs. In addition, we'll be offering up $45,000 in Ghost(Pro) credit, along with access to our internal tools, data, and technology partners. We're by no means the only people in the world working on creating better tools and business models for news. We **are**, however, the only people doing it full-time and releasing everything we do as open source; to put the ownership of the platform back into the hands of the people who use it. Regardless of where you distribute your content to reach your audience, it has never been more important to own and control your own home on the web; safeguarding against the uncertainty of unstable social networks which come and go. That's what we're building. Sound like something for you? [Click here to find out more and apply for the program](https://ghost.org/journalism/?ref=ghost.org) ## What you can do to help This is a big deal for us, but the trickiest thing is going to be getting this idea out into the world so that the people who would benefit most have the chance to discover it. Many, if not most of those people are likely outside of our existing audience. So, we have a favour to ask :) Would you help us share this news so we can try to get it to reach as many people as possible, outside of our little bubble? **Here's a pre-written status to make it extra simple:** > Just launched! 👉🏼 Ghost for Journalism, a $45,000 development program seeking independent publishing upstarts. /changelog/journalism/ [Tweet this now](https://twitter.com/share?text=Just%20launched!%20%F0%9F%91%89%F0%9F%8F%BC%20Ghost%20for%20Journalism,%20a%20$45,000%20development%20program%20seeking%20independent%20publishing%20upstarts&url=https://ghost.org/changelog/journalism/&ref=ghost.org) [Buffer it for later](https://bufferapp.com/add/?url=https://ghost.org/changelog/journalism/&text=Just%20launched!%20%F0%9F%91%89%F0%9F%8F%BC%20Ghost%20for%20Journalism,%20a%20$45,000%20development%20program%20seeking%20independent%20publishing%20upstarts&ref=ghost.org) Please enjoy these **1-click buttons** for Ultimate Efficiency™️, or of course you can also just copy/paste if that's more your thing. ### 2017 is gonna be awesome! URL: https://ghost.org/changelog/2017-awesome/ Last updated: 2021-09-22T15:30:52.000Z There's been an unmistakable sense of tumbleweed in the air round here over the past month or so. Fear not, it is a sign of great things to come 👻 Perhaps the biggest representation of that is our new [Ghost for Journalism](https://ghost.org/journalism/?ref=ghost.org) program, which we launched today! Activity on the public repos is always just a fraction of what's going on @ Ghost HQ. Instead of being split across public & internal work, for the end of 2016, we got the whole team focused on replacing *all* of the now 3-years-old and out-of-date technology that drove Ghost.org. The astute amongst you will have noticed even this blog has a shiny new pair of shoes 👠 . The work we've done is far more than skin deep, leaving us with less maintenance work and more time for Ghost itself. This week, it was business as usual 🎉 In the last week we have created **19** & merged **19** pull requests, plus merged **14** dependency updates, as well as opened **8** and closed **18** issues across **17** different repositories. We've also published an LTS release, [Ghost 0.11.4](https://ghost.org/changelog/ghost-0-11-4/). Any thoughts or questions? Let us know in the comments 📢 ### What's occurring? The main focus of last week was on cleaning up a few bugs and features ready to ship Ghost 0.11.4 LTS. You can read all about it in the [release post](https://ghost.org/changelog/ghost-0-11-4/). LTS releases are currently scheduled for roughly once a month, so we'll look to do the next one around the first week of February. Next week, we'll be getting back to work on the Ghost 1.0 alpha. There may be some reshuffling of what features are and aren't going to make it and then buckling in on a big push to get it ready for prime time. More news next week 🎶 ##### Ghost Desktop 1.2.0 Since the New Year, Ghost Desktop has also had an update, with several new features including deep links✨. Ghost Desktop auto-updates, so most people should already have the new version. If you haven't tried it yet, grab a download for your platform from [https://ghost.org/downloads/](https://ghost.org/downloads/?ref=ghost.org). ## Releases - Ghost [0.11.4](https://github.com/TryGhost/Ghost/releases/tag/0.11.4?ref=ghost.org) - Ghost-Admin [0.11.4](https://github.com/TryGhost/Ghost-Admin/releases/tag/0.11.4?ref=ghost.org) - Casper [1.3.5](https://github.com/TryGhost/Casper/releases/tag/1.3.5?ref=ghost.org) - GQL [0.0.6](https://github.com/TryGhost/GQL/releases/?ref=ghost.org) - Ghost-Desktop 1.2.0 ## Follow us! Want to find out more about Ghost development? Subscribe to the [updates feed](https://ghost.org/changelog/tag/updates/rss) or to the [alpha feed](https://ghost.org/changelog/tag/alpha/rss) if you're more interested in how v1.0 is progressing. Alternatively, follow us on [twitter](https://twitter.com/TryGhost%5Fdev?ref=ghost.org) 🐦 or sign up to get our weekly newsletter in your inbox 📬. ### Ghost 0.11.4 URL: https://ghost.org/changelog/ghost-0-11-4/ Last updated: 2021-01-07T03:00:43.000Z [Ghost 0.11.4](https://github.com/TryGhost/Ghost/releases/tag/0.11.4?ref=ghost.org) is now available on GitHub, npm and Ghost.org. The main contents are the removal of Node v0.12 support and the new redirects feature. ## Highlights - **\[New\]** ✨ Define redirects as JSON file - **\[New\]** ✨ Make AMP optional - **\[Removed\]** ⬇️ Node v0.12.x support - Node v0.12 is no longer maintained - **\[Fixed\]** Import subscribers on database import - **\[Fixed\]** Fix admin redirect, when using a subdirectory - **\[Security\]** Expand subscriber email validation - **\[Security\]** Escape sameAs for structured data - **\[Security\]** Detect symlinks when uploading themes via the admin panel - many dependency updates You can see the [full change log](https://gist.github.com/kirrg001/ea5b2628d24b0ede677aacbc84f04ba8?ref=ghost.org) for the details of all changes included in this release. ## In Detail Ghost no longer supports Node.js v0.12\. It's is no longer maintained as of 31st December 2016\. We will continue to recommend using Node v4 with Ghost for the time being - even that this version is not the version recommended for most users by [Node.js](https://nodejs.org/?ref=ghost.org), it's v6. Our Node version support follows the [Node.js LTS strategy](https://github.com/nodejs/LTS?ref=ghost.org). Full details can always be found at: [https://ghost.org/docs/faq/node-versions/](https://ghost.org/docs/faq/node-versions/?ref=ghost.org). Furthermore, this release contains two new features. ### Redirects You can now add a redirects JSON file to your content folder to define your own HTTP redirects for your blog. We have written a [redirects support guide](https://ghost.org/docs/themes/routing/?ref=ghost.org#redirects) for it. ### AMP is now optional You can enable or disable AMP in the admin panel under **Settings - General - AMP support**. If you disable amp, all amp requests will render a 404 page. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.4 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.4](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits Kevin Ansfield, Aileen Nowak, John O'Nolan, Austin Burdine, 唐佳诚 , Vivek Kannan, Kenneth Ashley, John O'Mahoney, Hannah Wolfe and Katharina Irrgang ### Introducing nconf for configuration URL: https://ghost.org/changelog/nconf/ Last updated: 2021-09-22T18:59:59.000Z It seems these blog posts have become a Friday thing 😁 . Although it wasn't the original plan, Friday posts make for a more standard week. We're going to try to get into more of a rhythm and aim for lunch time 🍴. Any thoughts or questions? Let us know in the comments 📢 ### What's occurring? Whilst our public repositories have a bit of a 👻 🏘 (ghost town) feel this week, rest assured it's because our entire team is crazy busy working away behind the scenes on some internal, supporting projects. Ghost v1.0 is already packing some punch, so I thought this week I'd take this opportunity to cover one of the new developer features: our much improved config system. Next week, the team is heading to Thailand for our biannual company retreat ✈️. Stay tuned for details of what we get up to! #### Configuration with nconf Ghost v1.0 has been in development for a couple of months now. In that time we've made some hefty changes, one of the most undocumented of which, is the change to our configuration system. Originally, Ghost's config file was a `config.js` file located in the root directory, which contained configuration for the various environments. It was hard to override, and there wasn't much support for alternative configuration mechanisms such as command line flags or environment variables. Enter [nconf](https://github.com/indexzero/nconf?ref=ghost.org) \- this handly node library provides a simple way to support configuration via files, flags and env vars. In Ghost v1.0 you'll find a whole set of small `*.json` files in `core/server/config` and `core/server/config/env` that make up the base configuration. To add customisations, create a `config..json` file in the root of your Ghost install. Any of the settings can be overridden, except those in `overrides.json`. So for example, let's imagine you've just cloned the Ghost repo to do some light hacking, but you want to have a subdirectory and use local password authentication instead of our new Ghost Auth service\*: First, you'd create a new `config.development.json` file in your project root. Then, open the file and add the following JSON: ``` { "url": "https://localhost:2368/blog", "auth": { "type": "password" } } ``` The config options available for the url, database, etc are all much the same as they were previously, only in JSON format rather than a plain javascript file. The new `auth` config lets you switch between the new Ghost Auth service, and the old style password authentication [\[1\]](#fn1)[\[2\]](#fn2). The important differences between the old and new config, are: 1. Make sure all strings, including keys, are surrounded by double quotes, else you'll get "unexpected token" errors. 2. Name your config file `config..json`, where `` is one of `development` or `production` and the extension is `.json`, not `.js`. 3. There's only one set of config per file. If you need both a development and production config, provide them in two separate files. 4. Bonus: you *can* supply config via command line flags and environment variables, however until we have finished auditing the options and written up new documentation, you will need to use the [nconf docs](https://github.com/indexzero/nconf?ref=ghost.org) to figure out how to do this 🤔 **Got suggestions?** So far, we've switched the underlying technology that drives our config. We still have an [open issue for v1.0](https://github.com/TryGhost/Ghost/issues/7488?ref=ghost.org) to revisit the config options that we provide. So, if you have ideas for configuration options you've always wished Ghost had, or a way to improve existing options, let us know on the issue or in the comments 💬 **Try it for yourself...** If you haven't seen already, you can now install Ghost using our [CLI tool](https://ghost.org/docs/ghost-cli/?ref=ghost.org). Two quick commands: `npm install -g ghost-cli` to install the cli, change to an empty directory and run `ghost install local`. It takes seconds, and it sets up the initial config for you. When it comes to tweaking the config, there are two ways to do it. The first is to run `ghost config`, which will prompt you for your url, and mysql credentials (this command is still a work in progress). The second is to manually edit the `config.development.json` file that will have been created by the install process. ## Releases - Ghost-Desktop 1.1.0 - passport-ghost [2.0.0](https://github.com/TryGhost/passport-ghost/releases/tag/2.0.0?ref=ghost.org) - Ignition [2.2.0](https://github.com/TryGhost/Ignition/releases/tag/2.2.0?ref=ghost.org) ## Follow us! Want to find out more about Ghost development? Subscribe to the [updates feed](https://ghost.org/changelog/tag/updates/rss/) for to the [alpha feed](https://ghost.org/changelog/tag/alpha/rss/) if you're more interested in how v1.0 is progressing. Alternatively, follow us on [twitter](https://twitter.com/TryGhost%5Fdev?ref=ghost.org) 🐦 or sign up to get our weekly newsletter in your inbox 📬. --- 1. As we're still actively developing Ghost Auth, it is currently the default option in development mode, however this will change to password based auth before v1.0 ships as it makes more sense for development blogs 🚢. [↩︎](#fnref1) 2. **Update 26th July 2016:** Ghost Auth was pulled from 1.0.0, and so for now password auth is again the only supported option. [↩︎](#fnref2) ### Alpha 9, ObjectIDs & CLI installs URL: https://ghost.org/changelog/alpha-9-objectid-cli/ Last updated: 2021-01-07T03:22:48.000Z This week we merged some big changes into Ghost, which meant it took a little extra time to get the alpha ready. There will not be an alpha next week, but there will be a blog post. Any thoughts or questions? Let us know in the comments 📢 ### What's occurring? As of this week, we're briefly switching the team's focus from the Ghost v1.0 alpha, to the internal tools that will support it. For the next 3-5 weeks, you'll notice less activity on the public repositories - the calm before the storm ☀️. We'll use this period to explain some of the changes we've made so far and how we're making Ghost better. Heads up (again): there will be an v0.11 LTS release very soon! Therefore, if you'd like to get a bug fix into Ghost please submit it to the [lts](https://github.com/TryGhost/Ghost/tree/lts?ref=ghost.org) branch ASAP ⏳ ## This week ##### Ghost CLI nearing feature completion In the last week or so there have been some major updates to our new CLI tool [Ghost-CLI](https://github.com/TryGhost/Ghost-CLI?ref=ghost.org). These updates surround the recommended stack for production installs, with support for MySQL by default, systemd as the process manager and more handy messaging to guide the install process. Ghost-CLI will be the recommended way to install Ghost once we reach v1.0\. The CLI will have two major install-modes: `ghost install local` for quickly setting up a development or test install on your local machine and `ghost install` for installing and setting up Ghost on a production machine ready for prime time. The recommended system stack for production installs will have the best chance of running Ghost successfully, and will be the stack which receives the most support from Ghost itself. It looks like this: - Ubuntu 16.04 LTS (xenial) as the operating system - Systemd (to manage the Ghost process) - MySQL as the database engine - Nginx as the webserver - SSL (will be built into a future update) The aim of `ghost install` is to get your entire system setup ready to run Ghost in production. With process management, a database, logging, SSL and so on. Using flags and plugin process managers, it will be possible to use Ghost CLI to install Ghost in a different way, but the recommended setup will always be a single simple command away. ##### ObjectId instead of auto increment Until now, Ghost has used a combination of an auto increment `id` field and a `uuid` field using [RFC4122 v4 UUID](https://www.npmjs.com/package/uuid?ref=ghost.org#uuidv4options--buffer--offset) to identify all resources in our database. This week we replaced this with a single `id` field containing a globally unique identifier generated using [ObjectId](https://docs.mongodb.com/v3.2/reference/method/ObjectId/?ref=ghost.org). ObjectID comes from MongoDB and provides a globally unique identifier which is also sequential. This means that each resource in Ghost will now have a single 24-character string identifier that is not only unique across a single Ghost install, but across all Ghost installs. This provides many benefits, including making it easier to replicate databases, providing us some interesting options for handling import/exports and much more. You can read more about the technical reasons for this change [here](https://github.com/TryGhost/Ghost/issues/7494?ref=ghost.org). ##### Further Ghost Editor improvements This week has been on of consolidation for the editor project. We started on a code refactoring / cleanup process, began the process to make it more “ghost like”, completed the functionality of the “/" menu, and released a few small bug fixes around markdown and card handling. Nothing revolutionary but all part of our steady march onto 1.0! 🎖 ##### Breaking change for storage adapters We have added a new required method to the storage layer. It's a `read` method. The `read` method returns the bytes of a requested image path. If you would like to test alpha 9 and you are using a custom storage adapter, please note that you have to contact the publisher of your storage adapter to request an update. ## Releases - Ghost [1.0.0-alpha.9](https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.9?ref=ghost.org) - Ghost-Admin [1.0.0-alpha.9](https://github.com/TryGhost/Ghost-Admin/releases/tag/1.0.0-alpha.9?ref=ghost.org) - Ghost-CLI [1.0.0-alpha.8](https://github.com/TryGhost/Ghost-CLI/releases/tag/1.0.0-alpha.8?ref=ghost.org) - Ghost-Editor [0.1.5](https://github.com/TryGhost/Ghost-Editor/releases/tag/0.1.5?ref=ghost.org) ## Follow us! Want to find out more about Ghost development? Subscribe to the [updates feed](https://ghost.org/changelog/tag/updates/rss) for to the [alpha feed](https://ghost.org/changelog/tag/alpha/rss) if you're more interested in how v1.0 is progressing. Alternatively, follow us on [twitter](https://twitter.com/TryGhost%5Fdev?ref=ghost.org) 🐦 or sign up to get our weekly newsletter in your inbox 📬. ### Ghost Alpha 8 with MySQL as the default URL: https://ghost.org/changelog/alpha-8-mysql-default/ Last updated: 2021-01-07T03:07:12.000Z Welcome to this weeks update! Apologies for the tardiness this week, good news is we now have a tool for collecting information from across our repositories, so we should be on time (Wednesday) next week. This is very much a work in progress idea, so please let us know what you think in the comments 📢 ### What's occurring? We're still working away on our [Ghost v1.0 alpha](https://ghost.org/changelog/tag/alpha/) and the related projects. It's been a slightly quieter week as much of our effort has been on getting the new Ghost Auth service polished up. Heads up: there will be an v0.11 LTS release within the next 2 weeks! Therefore, if you'd like to get a bug fix into Ghost please submit it to the [lts](https://github.com/TryGhost/Ghost/tree/lts?ref=ghost.org) branch ASAP ⏳ ## This week #### We made MySQL a default dependency, and made SQLite3 optional Here at Ghost HQ we ♥️ SQLite3\. For most one-user blogs, it's really all you need. However, although it removes the need for database credentials, the binary dependency has always made Ghost's install process a little troublesome. With Ghost v1.0 we intend to make the install process much, much easier. As of Ghost v1.0, we'll be making MySQL the (overridable) default for production installs AND introducing [Ghost-CLI](https://github.com/TryGhost/Ghost-CLI?ref=ghost.org) as the One True Way™ to install Ghost. The CLI tool will offer `ghost install` as a wrapper around `npm install`, doing its best to make the install process go smoothly, and providing smart error messages if things go really wrong. To aid in all this we've moved `sqlite3` to be an optional dependency and made `mysql` a normal, required dependency. This means that `npm install` will not fail if installing SQLite3 fails. With the CLI you'll be able to run `ghost install local` to get a quick, SQLite3-based install for playing around on your local machine (handy for developing themes). The intention is that Ghost-CLI will first of all help to ensure that your environment is correct for installing Ghost with SQLite3 and in the worst case handle SQLite3 install failures by prompting with a fallback to MySQL. We'll be writing more about the CLI tool over the coming weeks. #### We replaced our brute force protection logic Ghost's spam prevention middleware has needed an upgrade for a little while. This week we removed our custom code in favour of [express-brute](https://github.com/AdamPflug/express-brute?ref=ghost.org). This gives us more options for controlling how accounts are locked so it is now based on the much more desirable IP + email address combination, instead of the old email-address only. This also moves account locking logic and state out of the user model. Recently, we also moved the concept of a user invite to be their own model instead of a state in the user model. With these two big changes, the concept of user state has been significantly simplified 🎉 #### Upgrades to the new GhostAuth service We're working away behind the scenes to get the GhostAuth service ready to go. Ghost & passport-ghost both got several updates this week to handle changes in that service. If you're testing out the alpha, we're continuing to reset the GhostAuth service database regularly and therefore you will need to create a fresh database. This can be done by running `knex migrator reset && knex migratior init`. #### Improvements to the new Ghost editor We're still iterating hard on the [new mobiledoc editor](https://github.com/TryGhost/Ghost-Editor?ref=ghost.org). This week's update included the removal of markdown within Ghost [#379](https://github.com/TryGhost/Ghost-Admin/pull/379?ref=ghost.org). ## Releases - Ghost [1.0.0-alpha.8](https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.8?ref=ghost.org) - Knex-migrator [0.2.0](https://github.com/TryGhost/knex-migrator/releases/tag/0.2.0?ref=ghost.org) - passport-ghost [1.3.0](https://github.com/TryGhost/passport-ghost/releases/tag/1.3.0?ref=ghost.org) - Ignition [2.0.0](https://github.com/TryGhost/Ignition/releases/tag/2.0.0?ref=ghost.org) ## Follow us! Want to find out more about Ghost development? Subscribe to the [updates feed](https://ghost.org/changelog/tag/updates/rss) for to the [alpha feed](https://ghost.org/changelog/tag/alpha/rss) if you're more interested in how v1.0 is progressing. Alternatively, follow us on [twitter](https://twitter.com/TryGhost%5Fdev?ref=ghost.org) 🐦 or sign up to get our weekly newsletter in your inbox 📬. ### Ghost Desktop 1.0 & Alpha 7 URL: https://ghost.org/changelog/ghost-desktop-1-0/ Last updated: 2021-09-22T18:30:54.000Z Welcome! This week for the first time, we are updating our community with a more detailed blog post instead of a meeting. This is very much a work in progress idea, so please let us know what you think in the comments 📢 ### What's occurring? If you haven't already heard, the Ghost Team are currently focusing our development efforts on an alpha development stream, which will eventually turn into Ghost v1.0\. If you're interested to know more, we've got a [v1.0 alpha support guide](https://ghost.org/changelog/tag/alpha/) that we use to share important details of how to test and get involved. ## This week **Ghost Desktop v1.0.0 was released** The **Ghost Desktop App** reached v1.0 this week 🎉. Grab yourself a Mac, Windows or Linux build from [our website](https://ghost.org/?ref=ghost.org). **We split Ghost & Ghost-Admin a little further** We're slowly working on separating our two main repositories to make Ghost & Ghost-Admin more independent of each other. This week we moved to fetching configuration from an endpoint, instead of outputting it in the HTML file that boots Ember [#368](https://github.com/TryGhost/Ghost-Admin/pull/368?ref=ghost.org), [#7631](https://github.com/TryGhost/Ghost/pull/7631?ref=ghost.org). **Updates to the new Ghost editor** One of the most exciting features of Ghost v1.0 is the brand new mobiledoc editor. It lives over in [Ghost-Editor](https://github.com/TryGhost/Ghost-Editor?ref=ghost.org). This week's update included soft returns & code block support [#373](https://github.com/TryGhost/Ghost-Admin/pull/373?ref=ghost.org), [#7649](https://github.com/TryGhost/Ghost/pull/7649?ref=ghost.org). **Knex Migrator got a little more stable** [Knex-migrator](https://github.com/TryGhost/knex-migrator?ref=ghost.org) is our database migration tool. Over the last 3 years we've gained experience of initialising our database and running migrations in distributed software. This knowledge is now bundled in a public npm module, which everybody can use. You can [read here](https://github.com/TryGhost/Ghost/issues/7489?ref=ghost.org#issuecomment-251698188) why we opted not to use knex's built-in migration system. This week, knex-migrator reached feature-completion, full details in the [readme](https://github.com/TryGhost/knex-migrator?ref=ghost.org#cli-usage). You'll need it globally installed if you want to contribute to Ghost 👻 **We also released Ghost [0.11.3](https://ghost.org/changelog/ghost-0-11-3) (LTS release)** Over the last 2 weeks, Node.js has moved v6.9 into LTS and ended the maintenance period for Node.js v0.10\. Ghost's ["lts" branch](https://github.com/TryGhost/Ghost/tree/lts?ref=ghost.org) has been updated inline with our [Node version support strategy](https://ghost.org/docs/faq/node-versions/?ref=ghost.org). Our latest LTS release also includes some minor bug fixes to scheduling and to Casper. ## Releases - Ghost Desktop 1.0.0 🚀 - Ghost [0.11.3 LTS](https://github.com/TryGhost/Ghost/releases/tag/0.11.3?ref=ghost.org) - Casper [1.3.4](https://github.com/TryGhost/Casper/releases/tag/1.3.4?ref=ghost.org) - Ghost [1.0.0-alpha.7](https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.7?ref=ghost.org) - Ghost CLI [1.0.0-alpha.6](https://github.com/TryGhost/Ghost-CLI/releases/tag/1.0.0-alpha.6?ref=ghost.org) - Knex-migrator [0.1.2](https://github.com/TryGhost/knex-migrator/releases/tag/0.1.2?ref=ghost.org) ## Follow us! Want to find out more about Ghost development? Subscribe to the [updates feed](https://ghost.org/changelog/tag/updates/rss) for to the [alpha feed](https://ghost.org/changelog/tag/alpha/rss) if you're more interested in how v1.0 is progressing. Alternatively, follow us on [twitter](https://twitter.com/TryGhost%5Fdev?ref=ghost.org) 🐦 or sign up to get our weekly newsletter in your inbox 📬. ### Ghost 0.11.3 URL: https://ghost.org/changelog/ghost-0-11-3/ Last updated: 2021-01-07T03:02:42.000Z [Ghost 0.11.3](https://github.com/TryGhost/Ghost/releases/tag/0.11.3?ref=ghost.org) is now available on GitHub, npm and Ghost.org. The main contents are the addition of Node v6 LTS support, and the removal of Node v0.10 support. There is also a fix for scheduling & some fixes for Casper. ## Highlights - **\[New\]** Node v6 LTS support - Ghost now officially works with Node ^6.9.0 ⬆️ - **\[Removed\]** Node v0.10.x support - Node v0.10 is no longer maintained ⬇️ - **\[Fixed\]** Issue where not all posts would be rescheduled after a restart ⏱ - **\[Fixed\]** Several minor issues with the [Casper theme](https://github.com/TryGhost/Casper/releases/tag/1.3.4?ref=ghost.org) 🎨 - And a few dependency updates You can see the [full change log](https://gist.github.com/ErisDS/76d37a6de487fa39507565cd70f1e0f2?ref=ghost.org) for the details of all changes included in this release. ## In Detail As of Ghost 0.11.3, Ghost supports the Node.js v6 LTS stream and no longer supports Node.js v0.10\. Node.js v6 became LTS on the 18th October, and Node.js v0.10 is no longer maintained as of 31st October. We will continue to recommend using Node v4 for the time being - note this is also the version recommended for most users by [Node.js](https://nodejs.org/?ref=ghost.org). Our Node version support follows the [Node.js LTS strategy](https://github.com/nodejs/LTS?ref=ghost.org). Full details can always be found at: [https://ghost.org/docs/faq/node-versions/](https://ghost.org/docs/faq/node-versions/?ref=ghost.org). ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.3 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.3](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits This release was lovingly crafted by Hannah Wolfe and Katharina Irrgang 🙆🏻 🙋🏻 ### Public Dev Meeting 25th October URL: https://ghost.org/changelog/public-dev-meeting-25th-october/ Last updated: 2021-01-11T01:17:22.000Z ## Quick Summary Ghost [1.0.0.alpha.6](https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.6?ref=ghost.org) and [Ghost-CLI 1.0.0-alpha.5](https://github.com/TryGhost/Ghost-CLI/releases/tag/1.0.0-alpha.5?ref=ghost.org) were released. ## Progress Report - Node v6 officially supported - [#7623](https://github.com/TryGhost/Ghost/pull/7623?ref=ghost.org) - New editor layout - [#7619](https://github.com/TryGhost/Ghost/pull/7619?ref=ghost.org), [#355](https://github.com/TryGhost/Ghost-Admin/pull/355?ref=ghost.org) - Logging improvements - [#7597](https://github.com/TryGhost/Ghost/pull/7597?ref=ghost.org) - Error improvements - [#7600](https://github.com/TryGhost/Ghost/pull/7600?ref=ghost.org), [#7582](https://github.com/TryGhost/Ghost/pull/7582?ref=ghost.org) - General code improvement and bug fixes - [#7626](https://github.com/TryGhost/Ghost/pull/7626?ref=ghost.org), [#7595](https://github.com/TryGhost/Ghost/pull/7595?ref=ghost.org), [#7590](https://github.com/TryGhost/Ghost/pull/7590?ref=ghost.org), [#360](https://github.com/TryGhost/Ghost-Admin/pull/360?ref=ghost.org) ## Discussion - Public meetings in the slack channel are being moved to weekly blog posts here on [dev.ghost.org](https://ghost.org/changelog?ref=ghost.org). The posts will be published on Wednesdays \~12pm UK time and will contain the progress report along with any notes from the release manager. Any discussion can be in the comments of the post, or in the #dev channel on slack. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1477413033001569?ref=ghost.org) can be found in our Slack logs. ### Public Dev Meeting 18th October URL: https://ghost.org/changelog/public-dev-meeting-18th-october/ Last updated: 2021-01-10T23:31:56.000Z ## Quick Summary Ghost [1.0.0.alpha.5](https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.5?ref=ghost.org) and [0.11.2](https://github.com/TryGhost/Ghost/releases/tag/0.11.2?ref=ghost.org) were released. ## Progress Report - OAuth improvements/fixes - [#7547](https://github.com/TryGhost/Ghost/pull/7547?ref=ghost.org), [#7550](https://github.com/TryGhost/Ghost/pull/7550?ref=ghost.org), [#335](https://github.com/TryGhost/Ghost-Admin/pull/335?ref=ghost.org) - Migration improvements - [#7545](https://github.com/TryGhost/Ghost/pull/7545?ref=ghost.org), [#7565](https://github.com/TryGhost/Ghost/pull/7565?ref=ghost.org), [#7583](https://github.com/TryGhost/Ghost/pull/7583?ref=ghost.org), [#7585](https://github.com/TryGhost/Ghost/pull/7585?ref=ghost.org), [#7589](https://github.com/TryGhost/Ghost/pull/7589?ref=ghost.org) - Scheduled posts improvements/fixes - [#7567](https://github.com/TryGhost/Ghost/pull/7567?ref=ghost.org), [#7566](https://github.com/TryGhost/Ghost/pull/7566?ref=ghost.org) - Improvements to the new editor - [#7568](https://github.com/TryGhost/Ghost/pull/7568?ref=ghost.org), [#333](https://github.com/TryGhost/Ghost-Admin/pull/333?ref=ghost.org) - Subscriber improvements - [#7540](https://github.com/TryGhost/Ghost/pull/7540?ref=ghost.org) - Testing fix - [#7556](https://github.com/TryGhost/Ghost/pull/7556?ref=ghost.org) - Removal of middleware/index.js - [#7548](https://github.com/TryGhost/Ghost/pull/7548?ref=ghost.org) - General code improvement and bug fixes - [#7553](https://github.com/TryGhost/Ghost/pull/7553?ref=ghost.org), [#7560](https://github.com/TryGhost/Ghost/pull/7560?ref=ghost.org), [#7561](https://github.com/TryGhost/Ghost/pull/7561?ref=ghost.org), [#7572](https://github.com/TryGhost/Ghost/pull/7572?ref=ghost.org), [#7573](https://github.com/TryGhost/Ghost/pull/7573?ref=ghost.org), [#7571](https://github.com/TryGhost/Ghost/pull/7571?ref=ghost.org), [#327](https://github.com/TryGhost/Ghost-Admin/pull/327?ref=ghost.org), [#330](https://github.com/TryGhost/Ghost-Admin/pull/330?ref=ghost.org) ## Discussion - Ghost-CLI 1.0.0-alpha.4 was released and is needed to install Ghost 1.0.0-alpha.5. - Once Node releases v6 LTS, Ghost will release a new version of 0.11 LTS shortly after. - For Ghost 1.0.0, if you are not using the cli, you will need extra commands for initialising and upgrading the database. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1476808215001384?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 25th October, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-10-25,270,6bj). ### Ghost 0.11.2 URL: https://ghost.org/changelog/ghost-0-11-2/ Last updated: 2021-01-10T23:57:29.000Z [Ghost 0.11.2](https://github.com/TryGhost/Ghost/releases/tag/0.11.2?ref=ghost.org) is now available on GitHub, npm and Ghost.org. This contains a fix for a memory leak + a few minor tweaks, including an update to Casper. ## Highlights - **\[Fixed\]** The memory leak is really actually gone this time 🤐 - **\[Fixed\]** Removed deprecated body classes from Casper 🙅🏽 - **\[Fixed\]** Allow database migrations to run if the active theme is not present 🐛 - **\[Security\]** Prevent bad urls from being passed to the subscribers page 🚫 - And several dependency updates You can see the [full change log](https://gist.github.com/ErisDS/dd309f01bbea120de6ae74b3932be557?ref=ghost.org) for the details of every change included in this release. ## In Detail All currently deprecated functionality will be removed in Ghost 1.0.0\. This release contains a version of Casper that has been updated accordingly (we thought we had done this ages ago 😳). There will be a more thorough blog post on all the planned 1.0.0 theme changes soon, but in the meantime we are adding changes to the [1.0.0 Theme changelog](https://ghost.org/docs/changes/?ref=ghost.org) as we go. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.2 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.2](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits This release was lovingly crafted by Hannah Wolfe 🙋🏻. ### Public Dev Meeting 11th October URL: https://ghost.org/changelog/public-dev-meeting-11th-october/ Last updated: 2021-01-10T23:31:57.000Z ## Quick Summary Ghost [1.0.0.alpha.4](https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.4?ref=ghost.org) was released. ## Progress Report - Theme upload improvements - [#7490](https://github.com/TryGhost/Ghost/pull/7490?ref=ghost.org) - Migration and database improvements - [#7498](https://github.com/TryGhost/Ghost/pull/7498?ref=ghost.org), [#7499](https://github.com/TryGhost/Ghost/pull/7499?ref=ghost.org), [#7501](https://github.com/TryGhost/Ghost/pull/7501?ref=ghost.org), [#7531](https://github.com/TryGhost/Ghost/pull/7531?ref=ghost.org), [#7538](https://github.com/TryGhost/Ghost/pull/7538?ref=ghost.org), [#7502](https://github.com/TryGhost/Ghost/pull/7502?ref=ghost.org) - Tests improvement - [#7477](https://github.com/TryGhost/Ghost/pull/7477?ref=ghost.org), [#7508](https://github.com/TryGhost/Ghost/pull/7508?ref=ghost.org), [#7511](https://github.com/TryGhost/Ghost/pull/7511?ref=ghost.org) - Editor upgrade - [#7516](https://github.com/TryGhost/Ghost/pull/7516?ref=ghost.org), [#313](https://github.com/TryGhost/Ghost-Admin/pull/313?ref=ghost.org) - Move internal tags out of labs - [#7519](https://github.com/TryGhost/Ghost/pull/7519?ref=ghost.org), [#315](https://github.com/TryGhost/Ghost-Admin/pull/315?ref=ghost.org) - More work on moving ghost config to nconf - [#7518](https://github.com/TryGhost/Ghost/pull/7518?ref=ghost.org), [#7528](https://github.com/TryGhost/Ghost/pull/7528?ref=ghost.org) - Logging updates - [#7523](https://github.com/TryGhost/Ghost/pull/7523?ref=ghost.org), [#7532](https://github.com/TryGhost/Ghost/pull/7532?ref=ghost.org), [#7533](https://github.com/TryGhost/Ghost/pull/7533?ref=ghost.org), [#7529](https://github.com/TryGhost/Ghost/pull/7529?ref=ghost.org), [#7535](https://github.com/TryGhost/Ghost/pull/7535?ref=ghost.org) - Bug fixes and code improvements - [#7479](https://github.com/TryGhost/Ghost/pull/7479?ref=ghost.org), [#7509](https://github.com/TryGhost/Ghost/pull/7509?ref=ghost.org), [#7504](https://github.com/TryGhost/Ghost/pull/7504?ref=ghost.org), [#7510](https://github.com/TryGhost/Ghost/pull/7510?ref=ghost.org), [#7539](https://github.com/TryGhost/Ghost/pull/7539?ref=ghost.org), [#7537](https://github.com/TryGhost/Ghost/pull/7537?ref=ghost.org), [#7543](https://github.com/TryGhost/Ghost/pull/7543?ref=ghost.org), [#7544](https://github.com/TryGhost/Ghost/pull/7544?ref=ghost.org), [#281](https://github.com/TryGhost/Ghost-Admin/pull/281?ref=ghost.org), [#309](https://github.com/TryGhost/Ghost-Admin/pull/309?ref=ghost.org), [#317](https://github.com/TryGhost/Ghost-Admin/pull/317?ref=ghost.org) ## Discussion The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1476203425001211?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 18th October, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-10-18,270,6bj). ### Public Dev Meeting 4th October URL: https://ghost.org/changelog/public-dev-meeting-4th-october/ Last updated: 2021-09-22T19:40:18.000Z ## Quick Summary Ghost [0.11.1](https://github.com/TryGhost/Ghost/releases/tag/0.11.1?ref=ghost.org) was released along with [1.0.0-alpha.3](https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.3?ref=ghost.org). ## Progress Report - Ghost OAuth - [#278](https://github.com/TryGhost/Ghost-Admin/pull/278?ref=ghost.org), [#7451](https://github.com/TryGhost/Ghost/pull/7451?ref=ghost.org), [#7475](https://github.com/TryGhost/Ghost/pull/7475?ref=ghost.org) - New Editor - [#299](https://github.com/TryGhost/Ghost-Admin/pull/299?ref=ghost.org), [#7474](https://github.com/TryGhost/Ghost/pull/7474?ref=ghost.org) - Theme upload fixes/improvements - [#7457](https://github.com/TryGhost/Ghost/pull/7457?ref=ghost.org), [#7464](https://github.com/TryGhost/Ghost/pull/7464?ref=ghost.org) - Migration improvements - [#7460](https://github.com/TryGhost/Ghost/pull/7460?ref=ghost.org), [#7459](https://github.com/TryGhost/Ghost/pull/7459?ref=ghost.org), [#7448](https://github.com/TryGhost/Ghost/pull/7448?ref=ghost.org), [#7461](https://github.com/TryGhost/Ghost/pull/7461?ref=ghost.org) - Bug fixes and code improvements - [#289](https://github.com/TryGhost/Ghost-Admin/pull/289?ref=ghost.org), [#297](https://github.com/TryGhost/Ghost-Admin/pull/297?ref=ghost.org), [#301](https://github.com/TryGhost/Ghost-Admin/pull/301?ref=ghost.org), [#7444](https://github.com/TryGhost/Ghost/pull/7444?ref=ghost.org), [#7465](https://github.com/TryGhost/Ghost/pull/7465?ref=ghost.org), [#7469](https://github.com/TryGhost/Ghost/pull/7469?ref=ghost.org), [#7462](https://github.com/TryGhost/Ghost/pull/7462?ref=ghost.org), [#7431](https://github.com/TryGhost/Ghost/pull/7431?ref=ghost.org) ## Discussion - Ghost-CLI alpha 3 was also released and is available on npm (`npm i -g ghost-cli`) - Working on a write up to let theme developers know about breaking changes in 1.0.0. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1475598784000912?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 11th October, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-10-11,270,6bj). ### Ghost 0.11.1 URL: https://ghost.org/changelog/ghost-0-11-1/ Last updated: 2021-01-11T00:08:19.000Z [Ghost 0.11.1](https://github.com/TryGhost/Ghost/releases/tag/0.11.1?ref=ghost.org) is now available on GitHub, npm and Ghost.org. This is maintenance release that includes an important fix to the date migration logic - self-hosters please see the upgrade notes below. This will be the final release of Ghost that supports Node.js v0.10. ## Highlights - **\[Fixed\]** Theme refreshes on activation && override, so that Ghost(Pro) users don't get stuck in a cache-based-purgatory ♻️ - **\[Fixed\]** Logic around date migrations, which caused some people with SQLite3 to not get migrated yet ⏱ - **\[Fixed\]** Error when trying to delete a user that has posts 📚 - **\[Fixed\]** Messaging around account locking 🔐 - **\[Improved\]** Initial database creation now happens in a transaction 🎉 You can see the [full change log](https://gist.github.com/ErisDS/801d188a3e488bc164ee74c7342bcc1f?ref=ghost.org) for the details of every change included in this release. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.1 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.1](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). **Special Upgrade Notes:** If you're on Ghost 0.9.0-0.11.0 and you're using SQLite3, your dates may not have been migrated properly. This release contains a special fix to try to resolve this problem. Therefore, when you run this upgrade, you should use `npm start --production` to start Ghost the first time, wait for the migration to finish, save the output somewhere safe, and then start Ghost using your normal method. Currently, the recommended upgrade path is: - If you're on 0.4.2-0.7.0, upgrade to 0.7.1 - If you're on 0.7.1+, upgrade to 0.11.1 The upgrade to 0.11.1 can take time, especially if you have a lot of data. Your blog will run in migration mode whilst the migration is running. Once the date migrations are working, there will be no further database changes in the LTS version of Ghost. Enjoy! ## Credits This release was lovingly crafted by Hannah Wolfe, Katharina Irrgang, Kevin Ansfield, John O'Nolan, Cezary Kluczyński and Austin Burdine. ### Public Dev Meeting 27th September URL: https://ghost.org/changelog/public-dev-meeting-27th-october/ Last updated: 2021-01-10T23:31:57.000Z ## Quick Summary New installer for Ghost and a new editor. Also released 1.0.0-alpha.2. ## Progress Report - Fixes for theme upload feature - [#7424](https://github.com/TryGhost/Ghost/pull/7424?ref=ghost.org), [#7430](https://github.com/TryGhost/Ghost/pull/7430?ref=ghost.org) - Moving from Grunt to Gulp - [#7407](https://github.com/TryGhost/Ghost/pull/7407?ref=ghost.org), [#7428](https://github.com/TryGhost/Ghost/pull/7428?ref=ghost.org), [#7439](https://github.com/TryGhost/Ghost/pull/7439?ref=ghost.org) - Work towards the new editor - [#7437](https://github.com/TryGhost/Ghost/pull/7437?ref=ghost.org), [#291](https://github.com/TryGhost/Ghost-Admin/pull/291?ref=ghost.org) - Bug fixes and code improvements - [#7446](https://github.com/TryGhost/Ghost/pull/7446?ref=ghost.org), [#7434](https://github.com/TryGhost/Ghost/pull/7434?ref=ghost.org), [#7422](https://github.com/TryGhost/Ghost/pull/7422?ref=ghost.org), [#288](https://github.com/TryGhost/Ghost-Admin/pull/288?ref=ghost.org), [#277](https://github.com/TryGhost/Ghost-Admin/pull/277?ref=ghost.org), [#283](https://github.com/TryGhost/Ghost-Admin/pull/283?ref=ghost.org) ## Discussion - New blog post on why Ghost dropped postgres support - /changelog/dropping-support-for-postgresql/ The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1474993825000719?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 4th October, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-10-04,270,6bj). ### Dropping Support for PostgreSQL URL: https://ghost.org/changelog/dropping-support-for-postgresql/ Last updated: 2021-01-07T03:22:49.000Z Adding a [long-term support strategy](https://ghost.org/changelog/lts) for Ghost v0.11, and focusing on an all new, backwards-incompatible Ghost v1.0 has given us an exciting opportunity to fix some our biggest development pain points. PostgreSQL support was added organically by several contributors who showed up in the early days, raised bugs, fixed bugs, got a build added to travis, and did QA to ensure that Postgres worked. At a certain point, it seemed natural to say we supported it. Since then, it has become one of our biggest difficulties when developing new features, second only to our permissions system. There was a comment in the early thread [advocating support](https://github.com/TryGhost/Ghost/issues/1333?ref=ghost.org#issuecomment-27621908) about how having "official support" earlier would prevent Postgres being a second-class citizen. The logic was sound, but in practice this hasn't been true. The Ghost team use Sqlite3 for development, and Ghost(Pro) uses MySQL - meaning we're running tens of thousands of blogs on MySQL all day every day. Bugs and opportunities for improvement in those two databases are found and handled quickly. We are able to **guarantee** first-class support for MySQL in a way we have never been able to for Postgres. Over time we've reached a point where we no longer have any active core team members or regular contributors that use Postgres in production. No one using Postgres is contributing to code or to QA. We miss things because we aren't using it. Bugs get raised by the community, but they don't get fixed. Postgres is a particular challenge because it is quite different to MySQL and SQLite. Code that automatically works for MySQL & SQLite often needs special modifications for Postgres, meaning it is time consuming and hard to maintain. Knex's abstractions just aren't doing the job well enough. Without active community support, Postgres has always been, and always will be a second-class citizen. For that reason, we are dropping official Postgres support from Ghost core. ## Moving forward From Ghost 1.0 we're going to be officially throwing our weight behind MySQL. Although SQLite will still be available for development (and particularly useful for developing themes and apps), we'll be recommending MySQL for production Ghost installs. We'll be actively optimising, improving and tweaking bits of the data model to make sure that MySQL works as well as it possibly can. By narrowing our focus on just one database, we'll be able to provide a much better, more optimised and efficient Ghost ⚡️. We're also streamlining our development efforts, so we can spend our time on building the tools our users need to build awesome online publications. Supporting lots of databases was a nice idea in principle, however in practice being a jack of all databases makes us a master of none. None of this precludes us from ever supporting Postgres again in future, if demand and contributions warrant it. For now, we believe this is what's best for the project. ### Ghost 1.0 & LTS URL: https://ghost.org/changelog/lts/ Last updated: 2021-01-04T03:46:22.000Z Exactly 3 years ago to the day, we released the very first version of Ghost (v0.3) to Kickstarter backers. It was basic and it was flawed in many ways, but it was beautiful and it got us to where we are now. Today, we're announcing a huge milestone of **Ghost v1.0-alpha**, and **Ghost v0.11-LTS**. This represents the end of the road for the first development cycle of Ghost. We've achieved almost everything we set out to build from the early days, and now it's time to embark on a new (SemVer-compliant) adventure. So how's this all going to work? ### Ghost 0.11-LTS Starting from today, Ghost 0.11 is our official Long Term Support (LTS) branch. We'll keep shipping bug fixes and security patches for Ghost 0.11.0 for the next 6 months, officially dropping support on the **20th of March 2017**. Meanwhile... ### Ghost 1.0 We're starting work on Ghost 1.0, which is currently in alpha state, and will be heavily developed over the next couple of months toward a first official release. There are going to be some major changes, including... A totally overhauled install+update process with an official **Ghost-CLI** and a configuration system based on nconf, supporting files, env vars and cli flags. It's going to be more awesome than kittens with lasers, and will enable us to build **1-click updates** right into Ghost. An official **Ghost OAuth** login system. You will have 1 login which gives you global access to all of your Ghost blogs, no matter where they're hosted. We'll also be able to add 2-factor auth, and all sorts of things which we couldn't do previously to streamline the user experience. A brand **new Ghost editor**, which will be fully extensible and an enormous leap forward from our beloved (but somewhat long-in-the-tooth) Markdown editor. The writing experience is going to be dramatically better! --- Behind these changes will be a full rewrite of our database model and a new focus on optimising for MySQL as the default production env. We'll be making huge improvements to how themes are installed and managed and we're also going to rebuild all of our tooling to make theme creation and contribution much easier again. As you can imagine, it would be tough to make these big changes without breaking things, so we're also announcing that **Ghost 1.0 will not be backwards compatible** and releases from this point onwards will be fully SemVer compliant. Over the coming weeks, we will be sharing [more details](https://ghost.org/changelog/) of what's to come. It's going to be an exciting couple of months! If you're interested in contributing, we'd [love some help](https://github.com/TryGhost/Ghost/blob/master/.github/CONTRIBUTING.md?ref=ghost.org). ### Public Dev Meeting 20th September URL: https://ghost.org/changelog/public-dev-meeting-20th-september/ Last updated: 2021-01-10T23:31:57.000Z ## Quick Summary Released 0.11.0 and working towards the 1.0.0 alpha release. ## Progress Report - AMP improvements - [#7370](https://github.com/TryGhost/Ghost/pull/7370?ref=ghost.org), [#7374](https://github.com/TryGhost/Ghost/pull/7374?ref=ghost.org), [#7353](https://github.com/TryGhost/Ghost/pull/7353?ref=ghost.org) - Re-run migration for those who ran into database problems when upgrading to 0.10.0 - [#7323](https://github.com/TryGhost/Ghost/pull/7323?ref=ghost.org) - Theme upload improvements - [#7380](https://github.com/TryGhost/Ghost/pull/7380?ref=ghost.org), [#7367](https://github.com/TryGhost/Ghost/pull/7367?ref=ghost.org), [#7368](https://github.com/TryGhost/Ghost/pull/7368?ref=ghost.org), [#262](https://github.com/TryGhost/Ghost-Admin/pull/262?ref=ghost.org) - Hide internal tags in meta data or rss - [#7379](https://github.com/TryGhost/Ghost/pull/7379?ref=ghost.org), [#7385](https://github.com/TryGhost/Ghost/pull/7385?ref=ghost.org) - Prep for 1.0.0-alpha release - [#7404](https://github.com/TryGhost/Ghost/pull/7404?ref=ghost.org) - utf8mb4 support - [#7409](https://github.com/TryGhost/Ghost/pull/7409?ref=ghost.org) - Bug fixes and code improvements - [#7389](https://github.com/TryGhost/Ghost/pull/7389?ref=ghost.org), [#7354](https://github.com/TryGhost/Ghost/pull/7354?ref=ghost.org), [#7322](https://github.com/TryGhost/Ghost/pull/7322?ref=ghost.org), [#7365](https://github.com/TryGhost/Ghost/pull/7365?ref=ghost.org), [#7371](https://github.com/TryGhost/Ghost/pull/7371?ref=ghost.org), [#256](https://github.com/TryGhost/Ghost-Admin/pull/256?ref=ghost.org), [#261](https://github.com/TryGhost/Ghost-Admin/pull/261?ref=ghost.org), [#260](https://github.com/TryGhost/Ghost/pull/260?ref=ghost.org), [#7318](https://github.com/TryGhost/Ghost/pull/7318?ref=ghost.org), [#7400](https://github.com/TryGhost/Ghost/pull/7400?ref=ghost.org), [#7145](https://github.com/TryGhost/Ghost/pull/7145?ref=ghost.org), [#7263](https://github.com/TryGhost/Ghost/pull/7263?ref=ghost.org), [#7403](https://github.com/TryGhost/Ghost/pull/7403?ref=ghost.org), [#268](https://github.com/TryGhost/Ghost-Admin/pull/268?ref=ghost.org) ## Discussion - Ghost-CLI was just released as [1.0.0-alpha.1](https://github.com/TryGhost/Ghost-CLI/releases/tag/1.0.0-alpha.1?ref=ghost.org) on [npm](https://www.npmjs.com/package/ghost-cli?ref=ghost.org) - Ghost 1.0 and 0.11.0 LTS - /changelog/lts/ - Reminder to upgrade from Node 0.10.0 to Node 4.x.x - /changelog/end-of-node-js-0-10/ The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1474389068000432?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 27th September, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-09-27,270,6bj). ### Ghost 0.11.0 URL: https://ghost.org/changelog/ghost-0-11-0/ Last updated: 2021-01-11T00:08:47.000Z [Ghost 0.11.0](https://github.com/TryGhost/Ghost/releases/tag/0.11.0?ref=ghost.org) is now available on GitHub, npm and Ghost.org. This release contains mostly bug fixes, with an important data migration for blogs that didn't have their dates migrated correctly during the 0.9.0 upgrade. ## Highlights - **\[Fixed\]** Typing a space in the search bar no longer completes the search 🔍 - **\[Fixed\]** Date migrations for sqlite3/postgres blogs that were running in UTC 🕓 - **\[Fixed\]** AMP and previews now work properly when running Ghost in a subdirectory. - **\[Fixed\]** Scheduling now works when blogs are run in a subdirectory ⏰ - **\[Fixed\]** Internal tags no longer appear in meta data or RSS feeds. - **\[Fixed\]** More fixes for theme uploads causing unsupported type errors when they shouldn't 🐛 - **\[Fixed\]** Uploading over the top of an active theme now correctly reloads the theme & clears the cache 💥 - **\[Fixed\]** Issue with `lodash` when Ghost installed as an npm module. - **\[Fixed\]** Sitemaps were sometimes rendering without any content 🔦 - **\[Changed\]** Downgraded missing `{{asset}}` helpers in themes to a warning so they can still be used with caution. - And other things... You can see the [full change log](https://gist.github.com/ErisDS/a18159169077ec434e490479cae44135?ref=ghost.org) for the details of every change included in this release. ## In Detail This is the penultimate release of Ghost that will work with Node.js v0.10\. Please take some time in the next 2 weeks to upgrade. More information can be found in this [blog post](https://ghost.org/changelog/end-of-node-js-0-10/). ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.11.0 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.11.0](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! **Note:** Due to the dependency changes in the last releases, it may be necessary to remove the `node_modules` folder, clear the cache and do a fresh npm install i.e. run `rm -rf node_modules && npm cache clear && npm install --production`. This is also described in the [upgrade troubleshooting](https://ghost.org/docs/update/?ref=ghost.org#troubleshooting) guide. ## Credits This release was lovingly crafted by Hannah Wolfe, Katharina Irrgang, Austin Burdine, Aileen Nowak, Ryan McCarvill, David Wolfe, Sebastian Gierlinger and Kevin Ansfield. ### End of Node.js v0.10 support URL: https://ghost.org/changelog/end-of-node-js-0-10/ Last updated: 2021-01-11T00:54:19.000Z On the **1st October** the Node.js Foundation will end support for Node.js v0.10. Ghost has been committed to following the [Node.js LTS schedule](https://github.com/nodejs/LTS?ref=ghost.org) since it was announced last year, as documented in our [supported version](https://ghost.org/docs/faq/node-versions/?ref=ghost.org) guide. On 30th September, we will release the final version of Ghost which will work with v0.10 and on 1st October we will release a version with v0.10 support removed. Back in July we [announced](https://ghost.org/changelog/node-4/) that our recommended version for running Ghost had changed to Node.js v4\. We highly recommend that all of our users upgrade their Node.js versions as soon as possible. More details on how to upgrade (and why) can be found in the original [Node.js v4 blog post](https://ghost.org/changelog/node-4/#howtoupgrade). **Support for Node.js v0.12 will be removed in a similar fashion on 31st December.** ### Public Dev Meeting 13th September URL: https://ghost.org/changelog/public-dev-meeting-13th-september/ Last updated: 2021-01-10T23:31:58.000Z ## Quick Summary Ghost 0.10.1 was released fixing bugs in 0.10.0. ## Progress Report - Configuration refactor - [#7342](https://github.com/TryGhost/Ghost/pull/7342?ref=ghost.org), [#7344](https://github.com/TryGhost/Ghost/pull/7344?ref=ghost.org), [#7347](https://github.com/TryGhost/Ghost/pull/7347?ref=ghost.org) ## Discussion - Currently working on fixing outstanding bugs and releasing 0.11.0 later this week. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1473784256000259?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 20th September, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-09-20,270,6bj). ### Ghost 0.10.1 URL: https://ghost.org/changelog/ghost-0-10-1/ Last updated: 2021-01-11T00:09:09.000Z [Ghost 0.10.1](https://github.com/TryGhost/Ghost/releases/tag/0.10.1?ref=ghost.org) is now available on GitHub, npm and Ghost.org. This is a bug fix release, which resolves some gnarly issues with 0.10.0. ## Highlights - **\[Fixed\]** Uploads & imports on Windows - sorry about that 😳 - **\[Fixed\]** Memory Leak ☔️ - downgrading bookshelf & knex solves this, we're still looking for the exact culprit - **\[Fixed\]** AMP pages with missing images now fallback gracefully - **\[Fixed\]** AMP doesn't like old-school HTML attributes such as `border` - **\[Fixed\]** Migrations from <0.7 to 0.10.1 will no longer throw an error - **\[Fixed\]** Cannot find module... config.example error when starting Ghost after upgrading - **\[Fixed\]** Multiple upgrade notifications - one is enough 😜 - And a few other bits & pieces... You can see the [full change log](https://gist.github.com/ErisDS/78dffbfd3101ac4fa27e9d16a547d2e8?ref=ghost.org) for the details of every change included in this release. ## In Detail The most important changes in this release are dependency updates for bug fixes, and dependency downgrades to try to resolve the memory issue. See the note in the How to Upgrade section about reinstalling npm modules. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.10.1 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.10.1](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! **Note:** Due to the dependency changes in this release, it may be necessary to remove the `node_modules` folder, clear the cache and do a fresh npm install i.e. run `rm -rf node_modules && npm cache clear && npm install --production`. This is also described in the [upgrade troubleshooting](https://ghost.org/docs/update/?ref=ghost.org#troubleshooting) guide. ## Credits This release was lovingly crafted by Austin Burdine, Aileen Nowak, Hannah Wolfe, Katharina Irrgang and Kevin Ansfield. ### Public Dev Meeting 6th September URL: https://ghost.org/changelog/public-dev-meeting-6th-september/ Last updated: 2021-01-10T23:31:58.000Z ## Quick Summary A lot of bug fixes and final improvements before Ghost 0.10.0 was released. ## Progress Report - Bug fixes - [#242](https://github.com/TryGhost/Ghost-Admin/pull/242?ref=ghost.org), [#241](https://github.com/TryGhost/Ghost-Admin/pull/241?ref=ghost.org), [#7306](https://github.com/TryGhost/Ghost/pull/7306?ref=ghost.org), [#7308](https://github.com/TryGhost/Ghost/pull/7308?ref=ghost.org), [#7329](https://github.com/TryGhost/Ghost/pull/7329?ref=ghost.org) - Fix theme upload bugs - [#238](https://github.com/TryGhost/Ghost-Admin/pull/238?ref=ghost.org), [#7293](https://github.com/TryGhost/Ghost/pull/7293?ref=ghost.org), [#7331](https://github.com/TryGhost/Ghost/pull/7331?ref=ghost.org) - Fix memory leak - [#7291](https://github.com/TryGhost/Ghost/pull/7291?ref=ghost.org) - AMP fixes - [#7309](https://github.com/TryGhost/Ghost/pull/7309?ref=ghost.org), [#7324](https://github.com/TryGhost/Ghost/pull/7324?ref=ghost.org) - Fix upgrade problems - [#7320](https://github.com/TryGhost/Ghost/pull/7320?ref=ghost.org) ## Discussion The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1473179448000070?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 13th September, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-09-13,270,6bj). ### Blazing fast mobile performance: AMP for Ghost URL: https://ghost.org/changelog/amp-support/ Last updated: 2021-01-08T12:21:19.000Z Ghost has already had great mobile performance from day one, with a responsive admin area and default theme - but now we’ve stepped that up a gear once more with full support for brand new [Google Accelerated Mobile Pages](https://www.ampproject.org/?ref=ghost.org). What does all this mean for you? Ludicrous speed! Take a look at Troy Hunt’s [story on the recent Dropbox hack](https://www.troyhunt.com/the-dropbox-hack-is-real/?ref=ghost.org), loading over 3G: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/amp2.gif) You can access the AMP equivalent version of any post on your blog by simply adding `/amp` to the end of any post URL. AMP versions are all generated for you, and there’s nothing you need to do!\[1\] [Here's the AMP version of this very post](https://ghost.org/changelog/amp-support/amp/). All Ghost blogs render a default AMP template, but of course this can be overridden at a theme level if you’d like to customise your colours, branding and typography. Here’s a tutorial on [how to customise AMP for Ghost](https://ghost.org/changelog/custom-amp-themes/) in your theme. It’s still early days for AMP, Google is a little bit inconsistent about when it does/doesn’t decide to show an AMP version of a post in its search results - but we’re pretty excited about it all the same! --- [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) users already have access to all of this right now, log in to your blog and have a look! Users running Ghost on their own servers can grab this feature by upgrading to [Ghost 0.10](https://ghost.org/changelog/ghost-0-10-0/). --- Do be aware that at this early stage of AMP support there are a few things which can break it (like affiliate tracking embeds or other complex code which we can’t properly parse). ↩︎ ### Public Dev Meeting 30th August URL: https://ghost.org/changelog/public-dev-meeting-30th-august/ Last updated: 2021-01-10T23:31:59.000Z ## Quick Summary A lot of bug fixes and final improvements before Ghost 0.10.0 was released. ## Progress Report - Bug fixes/code improvement - [#7257](https://github.com/TryGhost/Ghost/pull/7257?ref=ghost.org), [#7261](https://github.com/TryGhost/Ghost/pull/7261?ref=ghost.org), [#7264](https://github.com/TryGhost/Ghost/pull/7264?ref=ghost.org), [#223](https://github.com/TryGhost/Ghost-Admin/pull/223?ref=ghost.org), [#222](https://github.com/TryGhost/Ghost-Admin/pull/222?ref=ghost.org), [#144](https://github.com/TryGhost/Ghost-Admin/pull/144?ref=ghost.org), [#225](https://github.com/TryGhost/Ghost-Admin/pull/225?ref=ghost.org) - Theme upload improvements/fixes - [#7253](https://github.com/TryGhost/Ghost/pull/7253?ref=ghost.org), [#7268](https://github.com/TryGhost/Ghost/pull/7268?ref=ghost.org), [#7269](https://github.com/TryGhost/Ghost/pull/7269?ref=ghost.org), [#7278](https://github.com/TryGhost/Ghost/pull/7278?ref=ghost.org), [#221](https://github.com/TryGhost/Ghost-Admin/pull/221?ref=ghost.org), [#220](https://github.com/TryGhost/Ghost-Admin/pull/220?ref=ghost.org), [#231](https://github.com/TryGhost/Ghost-Admin/pull/231?ref=ghost.org), [#235](https://github.com/TryGhost/Ghost-Admin/pull/235?ref=ghost.org), [#236](https://github.com/TryGhost/Ghost-Admin/pull/236?ref=ghost.org) - Google AMP improvements/fixes - [#7265](https://github.com/TryGhost/Ghost/pull/7265?ref=ghost.org), [#7270](https://github.com/TryGhost/Ghost/pull/7270?ref=ghost.org), [#7271](https://github.com/TryGhost/Ghost/pull/7271?ref=ghost.org), [#7272](https://github.com/TryGhost/Ghost/pull/7272?ref=ghost.org) ## Discussion The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1472574893000076?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 6th September, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-09-06,270,6bj). ### Ghost 0.10.0 URL: https://ghost.org/changelog/ghost-0-10-0/ Last updated: 2021-01-10T23:32:00.000Z [Ghost 0.10.0](https://github.com/TryGhost/Ghost/releases/tag/0.10.0?ref=ghost.org) is now available on GitHub, npm and Ghost.org. It includes support for Google AMP (Accelerated Mobile Pages), as well as theme uploads within Ghost, and many fixes/improvements. ## Highlights - **\[New\]** AMP (Accelerated Mobile Pages) - deliver optimised content for mobile users - **\[New\]** Theme upload, download & delete - theme management is now part of Ghost - **\[Improved\]** Ghost now uses a native system font stack in place of Google Fonts for a faster and more delightful experience. - **\[Improved\]** Deleting a user now clearly highlights any post content that will be deleted - **\[Improved\]** Default referrer policy has changed to `no-referrer-when-downgrade` \- works now in Safari - **\[Improved\]** Cross Browser Support - The editor now works in IE Edge - **\[Fixed\]** Date helper now generates correct published date based on blog timezone - **\[Fixed\]** Internal tags are not shown in sitemap-tags.xml anymore - **\[Fixed\]** Security Issue: Open redirect - **\[Changed\]** Storage adapters now require save, delete, serve, exists methods (Breaking Change) - And much more... You can see the [full change log](https://gist.github.com/kirrg001/85a49c37bbcdb24914bb11c08b7f09b6?ref=ghost.org) for the details of every change included in this release. ## In Detail This release contains two new features which require attention if you are a theme developer or use a custom storage adapter. ### Storage Adapter Changes **Breaking Changes** If you have installed a custom storage adapter, you might not able to start your blog anymore, because with `0.10.0` we require a function set for custom storage adapters (save, exists, delete and serve). We've contacted all publishers to create a new version to support the changes. The breaking changes to the Storage Adapter API are explained in detail on the [wiki page](https://github.com/TryGhost/Ghost/wiki/Using-a-custom-storage-module?ref=ghost.org). Swing by [our slack channel](https://forum.ghost.org/?ref=ghost.org) if you have any questions! ### Theme API Changes AMP now works out of the box with a default template, which can also be overridden by themes. For full details of how to customise this feature, see the [AMP theme documentation](https://ghost.org/integrations/google-amp/?ref=ghost.org). Also watch this space for a custom AMP theme tutorial coming very soon! Theme uploads are now handled inside of Ghost. If you upload a broken theme, we will tell you and provide a very detailed validation error output - this is done with the help of [gscan](https://github.com/TryGhost/gscan?ref=ghost.org). Theme developers can test out their themes by uploading them and viewing the report on [https://gscan.ghost.org](https://gscan.ghost.org/?ref=ghost.org). See the [theme API docs](https://ghost.org/docs/themes/?ref=ghost.org) for full details of what changed in Ghost 0.10.0\. The theme documentation is frequently updated with more details and better examples. Please also use the **suggest edits** feature if you find something is missing or out of date. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.10.0 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.10.0](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits This release was lovingly crafted by Aileen Nowak, Austin Burdine, Kevin Ansfield, Hannah Wolfe, Katharina Irrgang, David Balderston, John O'Nolan, Jesse Dijkstra, Misha Wakerman and Tim Walling. ### Public Dev Meeting 23rd August URL: https://ghost.org/changelog/public-dev-meeting-23rd-august/ Last updated: 2021-01-10T23:31:59.000Z ## Quick Summary Pushing heavily towards the 0.10.0 for release this week. ## Progress Report - Bug Fixes and Code Cleanup - [#209](https://github.com/TryGhost/Ghost-Admin/pull/209?ref=ghost.org), [#213](https://github.com/TryGhost/Ghost-Admin/pull/213?ref=ghost.org), [#212](https://github.com/TryGhost/Ghost-Admin/pull/212?ref=ghost.org), [#7213](https://github.com/TryGhost/Ghost/pull/7213?ref=ghost.org), [#7224](https://github.com/TryGhost/Ghost/pull/7224?ref=ghost.org), [#7228](https://github.com/TryGhost/Ghost/pull/7228?ref=ghost.org), [#7240](https://github.com/TryGhost/Ghost/pull/7240?ref=ghost.org), [#7230](https://github.com/TryGhost/Ghost/pull/7230?ref=ghost.org), [#7232](https://github.com/TryGhost/Ghost/pull/7232?ref=ghost.org), [#7247](https://github.com/TryGhost/Ghost/pull/7247?ref=ghost.org) - Switch to native fonts - [#211](https://github.com/TryGhost/Ghost-Admin/pull/211?ref=ghost.org), [#215](https://github.com/TryGhost/Ghost-Admin/pull/215?ref=ghost.org), [#7219](https://github.com/TryGhost/Ghost/pull/7219?ref=ghost.org) - Theme uploads and management - [#214](https://github.com/TryGhost/Ghost-Admin/pull/214?ref=ghost.org), [#210](https://github.com/TryGhost/Ghost-Admin/pull/210?ref=ghost.org), [#7208](https://github.com/TryGhost/Ghost/pull/7208?ref=ghost.org), [#7231](https://github.com/TryGhost/Ghost/pull/7231?ref=ghost.org), [#7241](https://github.com/TryGhost/Ghost/pull/7241?ref=ghost.org), [#7209](https://github.com/TryGhost/Ghost/pull/7209?ref=ghost.org) - Google AMP support - [#7216](https://github.com/TryGhost/Ghost/pull/7216?ref=ghost.org), [#7215](https://github.com/TryGhost/Ghost/pull/7215?ref=ghost.org), [#7223](https://github.com/TryGhost/Ghost/pull/7223?ref=ghost.org), [#7229](https://github.com/TryGhost/Ghost/pull/7229?ref=ghost.org) ## Discussion - Please test latest master and raise any issues that you find. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1471969939001301?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 30th August, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-08-30,270,6bj). ### Public Dev Meeting 16th August URL: https://ghost.org/changelog/public-dev-meeting-16th-august/ Last updated: 2021-01-10T23:31:59.000Z ## Quick Summary - Initial version of AMP support merged! - Working towards a 0.9.1 release next week ## Progress Report - AMP Support - [#7171](https://github.com/TryGhost/Ghost/pull/7171?ref=ghost.org), [#7205](https://github.com/TryGhost/Ghost/pull/7205?ref=ghost.org), [#7174](https://github.com/TryGhost/Ghost/pull/7174?ref=ghost.org) - Dependency Updates - [#7201](https://github.com/TryGhost/Ghost/pull/7201?ref=ghost.org), [#7200](https://github.com/TryGhost/Ghost/pull/7200?ref=ghost.org), [#7198](https://github.com/TryGhost/Ghost/pull/7198?ref=ghost.org), [#7197](https://github.com/TryGhost/Ghost/pull/7197?ref=ghost.org), [#7165](https://github.com/TryGhost/Ghost/pull/7165?ref=ghost.org), [#7193](https://github.com/TryGhost/Ghost/pull/7193?ref=ghost.org), [#7181](https://github.com/TryGhost/Ghost/pull/7181?ref=ghost.org), [#7188](https://github.com/TryGhost/Ghost/pull/7188?ref=ghost.org), [#7195](https://github.com/TryGhost/Ghost/pull/7195?ref=ghost.org), [#191](https://github.com/TryGhost/Ghost-Admin/pull/191?ref=ghost.org), [#192](https://github.com/TryGhost/Ghost-Admin/pull/192?ref=ghost.org), [#193](https://github.com/TryGhost/Ghost-Admin/pull/193?ref=ghost.org), [#195](https://github.com/TryGhost/Ghost-Admin/pull/195?ref=ghost.org), [#197](https://github.com/TryGhost/Ghost-Admin/pull/197?ref=ghost.org), [#196](https://github.com/TryGhost/Ghost-Admin/pull/196?ref=ghost.org), [#200](https://github.com/TryGhost/Ghost-Admin/pull/200?ref=ghost.org), [#202](https://github.com/TryGhost/Ghost-Admin/pull/202?ref=ghost.org), [#204](https://github.com/TryGhost/Ghost-Admin/pull/204?ref=ghost.org), [#205](https://github.com/TryGhost/Ghost-Admin/pull/205?ref=ghost.org), [#207](https://github.com/TryGhost/Ghost-Admin/pull/207?ref=ghost.org) - Bugfixes / Improvements - [#7194](https://github.com/TryGhost/Ghost/pull/7194?ref=ghost.org), [#7185](https://github.com/TryGhost/Ghost/pull/7185?ref=ghost.org), [#7135](https://github.com/TryGhost/Ghost/pull/7135?ref=ghost.org), [#7199](https://github.com/TryGhost/Ghost/pull/7199?ref=ghost.org), [#194](https://github.com/TryGhost/Ghost-Admin/pull/194?ref=ghost.org), [#147](https://github.com/TryGhost/Ghost-Admin/pull/147?ref=ghost.org), [#203](https://github.com/TryGhost/Ghost-Admin/pull/203?ref=ghost.org) ## Discussion - AMP support merged - Version 0.9.1 planned next week - List of existing issues for 0.9.1 can be found [here](https://github.com/TryGhost/Ghost/milestone/30?ref=ghost.org) The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1471365041001007?ref=ghost.org) can be found in our slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 23rd August, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-08-23,270,6bj). ### Public Dev Meeting 9th August URL: https://ghost.org/changelog/public-dev-meeting-9th-august/ Last updated: 2021-01-10T23:32:00.000Z ## Quick Summary Fixing some bugs after the 0.9.0 release and working towards new features such as Google AMP support ## Progress Report - Continued progress on AMP support - [#7157](https://github.com/TryGhost/Ghost/pull/7157?ref=ghost.org), [#7153](https://github.com/TryGhost/Ghost/pull/7153?ref=ghost.org) - Bug fixes - [#7180](https://github.com/TryGhost/Ghost/pull/7180?ref=ghost.org), [#7169](https://github.com/TryGhost/Ghost/pull/7169?ref=ghost.org), [#174](https://github.com/TryGhost/Ghost-Admin/pull/174?ref=ghost.org), [#189](https://github.com/TryGhost/Ghost-Admin/pull/189?ref=ghost.org) - Code cleanup - [#7172](https://github.com/TryGhost/Ghost/pull/7172?ref=ghost.org), [#176](https://github.com/TryGhost/Ghost-Admin/pull/176?ref=ghost.org), [#177](https://github.com/TryGhost/Ghost-Admin/pull/177?ref=ghost.org), [#188](https://github.com/TryGhost/Ghost-Admin/pull/188?ref=ghost.org), [#190](https://github.com/TryGhost/Ghost-Admin/pull/190?ref=ghost.org) - Cross browser support improvement - [#164](https://github.com/TryGhost/Ghost-Admin/pull/164?ref=ghost.org) The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1470760251000814?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 16th August, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-08-16,270,6bj). ### Scheduling your posts for future publication URL: https://ghost.org/changelog/scheduled-posts/ Last updated: 2021-01-11T03:02:35.000Z You can now schedule posts in Ghost to be published at a predetermined date in the future! This is one of our [most requested](https://forum.ghost.org/?ref=ghost.org) features of all time, so we're really happy to finally have it out in the wild 🙈. It works just as you'd expect: Once you set a publication date in the future, you'll notice the publish button change from "Publish Post" to "Schedule Post". Hit that, and you're all set. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-76.png) All Ghost blogs now also have a configurable time zone, rather being locked to UTC, and we've fixed a whole bunch of bugs which were tripping people up. We're also working on checking off several more of the most-requested things from our [ideas board](https://forum.ghost.org/?ref=ghost.org). So do stop by and leave a vote for what you'd like to see next, if you haven't already. (Yes, AMP support is coming) **[Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org)** users already have access to all of this right now, log in to your blog and have a look! Users running Ghost on their own servers can grab this feature by upgrading to [Ghost 0.9](https://ghost.org/changelog/ghost-0-9-0/). ### Public Dev Meeting 2nd August URL: https://ghost.org/changelog/public-dev-meeting-2nd-august/ Last updated: 2021-09-22T19:30:41.000Z ## Quick Summary Ghost 0.9, and Ghost Desktop 0.6 were released! ## Progress Report - Code improvements and bug fixes - [#7126](https://github.com/TryGhost/Ghost/pull/7126?ref=ghost.org), [#7148](https://github.com/TryGhost/Ghost/pull/7148?ref=ghost.org), [#7160](https://github.com/TryGhost/Ghost/pull/7160?ref=ghost.org), [#7128](https://github.com/TryGhost/Ghost/pull/7128?ref=ghost.org), #7150, [#151](https://github.com/TryGhost/Ghost-Admin/pull/151?ref=ghost.org), [#150](https://github.com/TryGhost/Ghost-Admin/pull/150?ref=ghost.org), [#146](https://github.com/TryGhost/Ghost-Admin/pull/146?ref=ghost.org), [#143](https://github.com/TryGhost/Ghost-Admin/pull/143?ref=ghost.org), [#154](https://github.com/TryGhost/Ghost-Admin/pull/154?ref=ghost.org), [#141](https://github.com/TryGhost/Ghost-Admin/pull/141?ref=ghost.org), [#152](https://github.com/TryGhost/Ghost-Admin/pull/152?ref=ghost.org), [#153](https://github.com/TryGhost/Ghost-Admin/pull/153?ref=ghost.org), [#157](https://github.com/TryGhost/Ghost-Admin/pull/157?ref=ghost.org), [#155](https://github.com/TryGhost/Ghost-Admin/pull/155?ref=ghost.org), [#159](https://github.com/TryGhost/Ghost-Admin/pull/159?ref=ghost.org), [#158](https://github.com/TryGhost/Ghost-Admin/pull/158?ref=ghost.org), [#161](https://github.com/TryGhost/Ghost-Admin/pull/161?ref=ghost.org), [#148](https://github.com/TryGhost/Ghost-Admin/pull/148?ref=ghost.org), [#166](https://github.com/TryGhost/Ghost-Admin/pull/166?ref=ghost.org), [#167](https://github.com/TryGhost/Ghost-Admin/pull/167?ref=ghost.org), [#171](https://github.com/TryGhost/Ghost-Admin/pull/171?ref=ghost.org), [#168](https://github.com/TryGhost/Ghost-Admin/pull/168?ref=ghost.org), [#165](https://github.com/TryGhost/Ghost-Admin/pull/165?ref=ghost.org), [#160](https://github.com/TryGhost/Ghost-Admin/pull/160?ref=ghost.org) - Precursory work on Google AMP support - [#7152](https://github.com/TryGhost/Ghost/pull/7152?ref=ghost.org), [#7151](https://github.com/TryGhost/Ghost/pull/7151?ref=ghost.org) ## Discussion - Ghost 0.9.0 was released - Ghost Desktop 0.6 was released - Next version of Ghost Desktop will have more stability, a "find in page" feature, acknowledgement screen, and bugfixes - Work on client-side refactoring, including making Ghost work in IE and Edge - Ghost Foundation members currently together working on new ideas - 0.9.1 release with bugfixes will be out sometime soon The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1470155434000678?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 9th August, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-08-09,270,6bj). ### Ghost 0.9.0 URL: https://ghost.org/changelog/ghost-0-9-0/ Last updated: 2021-01-11T00:10:42.000Z [Ghost 0.9.0](https://github.com/TryGhost/Ghost/releases/tag/0.9.0?ref=ghost.org) is now available on GitHub, npm and Ghost.org. Ghost 0.9.0 contains the long-awaited scheduled posts feature among other new features and bug fixes. ## Highlights - **\[New\]** Scheduled posts - tell Ghost to publish your post sometime in the future 🕑 - **\[New\]** Configurable blog timezone - super important for making scheduled posts work the way you expect. - **\[New\]** Internal tags (Beta) - use tags for managing content without them appearing in your theme - **\[Improved\]** Install & upgrade process by removing dependency on `semver` which regularly broke npm - **\[Improved\]** Better error handling for visitors and admin users whilst performing upgrades - **\[Fixed\]** "Access Denied" errors when uploading images - **\[Fixed\]** Editing a post via the API without providing a tags list would delete the post's tags 😱 - **\[Fixed\]** Problems running in nested sub-directories, e.g. `mysite.com/my/blog` - **\[Fixed\]** Session handling on intermittent connections - it should now be easier to stay logged in - **\[Changed\]** Referrer policy changed from `origin` to `origin-when-cross-origin` to improve in-site analytics - **\[Changed\]** [Node v4 is now the recommended node version](https://ghost.org/changelog/node-4/) for running Ghost 🎉 - And much more... You can see the [full change log](https://gist.github.com/kevinansfield/ac440cd1433f33df0bc358b786608812?ref=ghost.org) for the details of every change included in this release. ## In Detail A major change for developers since 0.8 is that the ember admin client has been split into [it's own repository](https://github.com/TryGhost/Ghost-Admin?ref=ghost.org). We're using git submodules as per the Casper dependency so after pulling down the core Ghost repo, run `grunt init` to update the submodules (you only need to do this once). If you want to make changes to the client you can then `cd core/client` where you can treat it as a normal git repository - it will be set up with `origin` pointing to [Ghost-Admin](https://github.com/TryGhost/Ghost-Admin?ref=ghost.org) by default so you'll want to rename that or add your own fork remote. Swing by [our slack channel](https://forum.ghost.org/?ref=ghost.org) if you need any help getting set up. ### New Timezone Feature It's now possible to set the timezone of your blog - this should finally fix the "I posted at 3AM this morning but my post says says it was published yesterday" issues that arose from Ghost using the server's timezone which does not always match the blog owner's timezone. In order to support customisable timezones and post scheduling this release contains a migration that will update all datetimes stored in the database to UTC. If your server timezone is already set to UTC there should be no change. **Upgrade notice:** If you have a lot of data in your blog then the timezone migration may take a while, during this time visitors to your blog will see a "503 Under Maintenance" error and the admin panel will not be accessible. Keep an eye on your Ghost console logs to ensure that the migration completes successfully. After upgrading please check and update the timezone setting in the General Settings screen - we use a best-guess method to set this during the migration process to avoid unexpected time changes but it may not match what you want. ### Scheduling The default scheduler uses an internal system to keep track of time. This should work for most cases, however those on infrastructure that isn't always running (e.g. Heroku) will need to use an external service for scheduling. This can be achieved by adding a custom scheduling adapter to Ghost & passing the scheduling requests to another service. The Ghost wiki contains documentation for [how to create your own scheduling adapter](https://github.com/TryGhost/Ghost/wiki/Using-a-custom-scheduling-module?ref=ghost.org). ### Theme API Changes - Addition of `{{@blog.timezone}}` See the [theme API docs](https://ghost.org/docs/changes/?ref=ghost.org) for full details of what changed in Ghost 0.9.0\. The theme documentation is frequently updated with more details and better examples. Please also use the **suggest edits** feature if you find something is missing or out of date. ### Public API Changes A couple of key bug fixes have been incorporated into 0.9.0: - Querying the Post API and reducing the data returned by using `fields=title,url` will no longer return `undefined` - When using the `filter` parameter it's now possible to filter by slugs starting with numbers without needing to escape them, e.g. `filter=slug:5-minutes-to-midnight` ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.9.0 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.9.0](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits This release was lovingly crafted by Kevin Ansfield, Katharina Irrgang, Austin Burdine, Hannah Wolfe, Aileen Nowak, Lukas Strassel, Vijay Kandy, cobbspur, Joris Berthelot, zhenkyle, Gergely Nemeth, Ethan Garofolo, starcwl, and Felix Rieseberg. ### Public Dev Meeting July 26th URL: https://ghost.org/changelog/public-dev-meeting-july-26th/ Last updated: 2021-01-10T23:32:01.000Z ## Quick Summary Continuing work for the upcoming 0.9 release. Ghost officially [recommends Node.js v4 LTS](https://ghost.org/changelog/node-4/). ## Progress Report - Code improvements and bug fixes - [#7032](https://github.com/TryGhost/Ghost/pull/7032?ref=ghost.org), [#6950](https://github.com/TryGhost/Ghost/pull/6950?ref=ghost.org), [#7042](https://github.com/TryGhost/Ghost/pull/7042?ref=ghost.org), [#7121](https://github.com/TryGhost/Ghost/pull/7121?ref=ghost.org), [#7147](https://github.com/TryGhost/Ghost/pull/7147?ref=ghost.org), [#136](https://github.com/TryGhost/Ghost-Admin/pull/136?ref=ghost.org), [#135](https://github.com/TryGhost/Ghost-Admin/pull/135?ref=ghost.org), [#138](https://github.com/TryGhost/Ghost-Admin/pull/138?ref=ghost.org), [#140](https://github.com/TryGhost/Ghost-Admin/pull/140?ref=ghost.org) - Timezone improvements - [#149](https://github.com/TryGhost/Ghost-Admin/pull/149?ref=ghost.org), [#7143](https://github.com/TryGhost/Ghost/pull/7143?ref=ghost.org), [#7142](https://github.com/TryGhost/Ghost/pull/7142?ref=ghost.org) - Maintenance mode improvements - [#7124](https://github.com/TryGhost/Ghost/pull/7124?ref=ghost.org), [#7129](https://github.com/TryGhost/Ghost/pull/7129?ref=ghost.org) - Let navigation links use a port - [#6998](https://github.com/TryGhost/Ghost/pull/6998?ref=ghost.org) - Added support for custom notifications - [#7077](https://github.com/TryGhost/Ghost/pull/7077?ref=ghost.org) - Better handling of intermittent internet connections - [#131](https://github.com/TryGhost/Ghost-Admin/pull/131?ref=ghost.org) ## Discussion - 0.9.0 has been cut and is undergoing final testing before release tomorrow - Lots of new bugs and some beginner issues found for anyone looking to contribute - [https://github.com/tryghost/ghost/issues](https://github.com/tryghost/ghost/issues?ref=ghost.org) - [AMP support](https://github.com/TryGhost/Ghost/issues/6588?ref=ghost.org) being worked on The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1468945923000042?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 2nd August, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-08-02,270,6bj). ### Moving to Node.js v4 LTS URL: https://ghost.org/changelog/node-4/ Last updated: 2021-01-11T00:54:56.000Z As of this week, we've updated our recommended version of Node.js for Ghost to be **Node.js v4 LTS**. We're doing this a little later than planned. However, after much testing we are now confident that Ghost on v4 runs smoothly and with a smaller initial memory footprint than it did previously. Every single blog on [Ghost(Pro)](https://ghost.org/pricing/?ref=ghost.org) now runs on Node.js v4 LTS and we had zero problems upgrading everyone 😅 🎉 ### Why upgrade? Having upgraded everyone on Ghost(Pro) blogs, we've found that the base memory footprint for a Ghost blog is now under 100mb ⚡️ (NB: Your mileage may vary based on theme, content, traffic, and environment) The [Node.js LTS schedule](https://github.com/nodejs/LTS?ref=ghost.org) means the 0.10.x line will reach end of life on 1st October 2016\. Ghost will be following this schedule, meaning the next upgrade released on or after October 1st will no longer support being run on 0.10.x. Support for Node.js 0.12.x will end in a similar fashion on the 31st December 2016. If you self-host Ghost, you should plan to upgrade in the next 3 months. We recommend upgrading Node.js independently of upgrading Ghost to make any issues easier to debug. ### How to upgrade Upgrading your Ghost install from an older version of Node.js to v4 is a 4 step process: 1. Backup! 2. Upgrade the Node.js version on your server 3. Run `npm install --production` inside the Ghost directory to ensure that the binary dependencies are recompiled for Node.js v4 LTS 4. Restart Ghost If you're using a Digital Ocean droplet, you can learn how to upgrade Node.js on a one-click install of Ghost from this [excellent Q & A post](https://www.digitalocean.com/community/questions/how-to-upgrade-node-js-on-older-ghost-droplets?ref=ghost.org). ### More details If you really want the meat and potatoes: - Node.js [Official LTS Schedule](https://github.com/nodejs/LTS?ref=ghost.org) - Ghost's [Supported Node Versions](https://ghost.org/docs/faq/node-versions/?ref=ghost.org) - Details of the switch [on GitHub](https://github.com/TryGhost/Ghost/issues/7098?ref=ghost.org) ### Public Dev Meeting 19th July URL: https://ghost.org/changelog/public-dev-meeting-19th-july/ Last updated: 2021-01-10T23:32:01.000Z ## Quick Summary Continuing work for the upcoming 0.9 release. ## Progress Report Bug fixes and code improvement - [#7089](https://github.com/TryGhost/Ghost/pull/7089?ref=ghost.org), [#7081](https://github.com/TryGhost/Ghost/pull/7081?ref=ghost.org), [#7101](https://github.com/TryGhost/Ghost/pull/7101?ref=ghost.org), [#7000](https://github.com/TryGhost/Ghost/pull/7000?ref=ghost.org), [#6910](https://github.com/TryGhost/Ghost/pull/6910?ref=ghost.org), [#128](https://github.com/TryGhost/Ghost-Admin/pull/128?ref=ghost.org), [#105](https://github.com/TryGhost/Ghost-Admin/pull/105?ref=ghost.org) Test fixes - [#7106](https://github.com/TryGhost/Ghost/pull/7106?ref=ghost.org), [#6992](https://github.com/TryGhost/Ghost/pull/6992?ref=ghost.org), [#7091](https://github.com/TryGhost/Ghost/pull/7091?ref=ghost.org) Install improvements - [#7097](https://github.com/TryGhost/Ghost/pull/7097?ref=ghost.org) Change in recommended node version - [#7102](https://github.com/TryGhost/Ghost/pull/7102?ref=ghost.org), [#126](https://github.com/TryGhost/Ghost-Admin/pull/126?ref=ghost.org) Add maintenance mode - [#7019](https://github.com/TryGhost/Ghost/pull/7019?ref=ghost.org) Multiple sub-directory support - [#7062](https://github.com/TryGhost/Ghost/pull/7062?ref=ghost.org) Adjust default post order for new scheduled posts - [#7096](https://github.com/TryGhost/Ghost/pull/7096?ref=ghost.org) Subscriber fixes - [#7059](https://github.com/TryGhost/Ghost/pull/7059?ref=ghost.org), [#7088](https://github.com/TryGhost/Ghost/pull/7088?ref=ghost.org) Add an upgrade notification to the about page - [#102](https://github.com/TryGhost/Ghost-Admin/pull/102?ref=ghost.org) ## Discussion - Node 0.10.x is no longer going to be supported after October, so everyone will need to upgrade to v4 LTS - More work being done to speed up the testing - Aiming for 0.9 release early next week The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1468945923000042?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 26th July, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-07-26,270,6bj). ### Public Dev Meeting 12th July URL: https://ghost.org/changelog/public-dev-meeting-12th-july/ Last updated: 2021-01-10T23:32:02.000Z ## Quick Summary Continued work towards the 0.9 release. ## Progress Report - Code improvements/bug fixes - [#7021](https://github.com/TryGhost/Ghost/pull/7021?ref=ghost.org), [#110](https://github.com/TryGhost/Ghost-Admin/pull/110?ref=ghost.org), [#99](https://github.com/TryGhost/Ghost-Admin/pull/99?ref=ghost.org) - HTML template for newsletters - [#7045](https://github.com/TryGhost/Ghost/pull/7045?ref=ghost.org) - Error handling improvements - [#112](https://github.com/TryGhost/Ghost-Admin/pull/112?ref=ghost.org), [#65](https://github.com/TryGhost/Ghost-Admin/pull/65?ref=ghost.org), [#104](https://github.com/TryGhost/Ghost-Admin/pull/104?ref=ghost.org) ## Discussion - Continued work on validations - Wrap up the Ghost-side of maintenance, migration and other release related stuff so a release date can be set by the next meeting The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1468341030001209?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 19th July, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-07-19,270,6bj). ### Public Dev Meeting 5th July URL: https://ghost.org/changelog/public-dev-meeting-5th-july/ Last updated: 2021-01-10T23:32:01.000Z ## Quick Summary More work being done on the core/admin repo split. Lots of code improvements and various bug fixes. ## Progress Report - Code improvements and bug fixes - [#7047](https://github.com/TryGhost/Ghost/pull/7047?ref=ghost.org), [#7033](https://github.com/TryGhost/Ghost/pull/7033?ref=ghost.org), [#7035](https://github.com/TryGhost/Ghost/pull/7035?ref=ghost.org), [#7025](https://github.com/TryGhost/Ghost/pull/7025?ref=ghost.org). [#103](https://github.com/TryGhost/Ghost-Admin/pull/103?ref=ghost.org), [#90](https://github.com/TryGhost/Ghost-Admin/pull/90?ref=ghost.org) - Allow manifest.json in Ghost themes - [#6986](https://github.com/TryGhost/Ghost/pull/6986?ref=ghost.org) - Bookshelf/lodash fix - [#7041](https://github.com/TryGhost/Ghost/pull/7041?ref=ghost.org) - Update bower dependencies in the admin and start switching to npm - [#94](https://github.com/TryGhost/Ghost-Admin/pull/94?ref=ghost.org) - Convert ember imports to ember-cli-shim - [#95](https://github.com/TryGhost/Ghost-Admin/pull/95?ref=ghost.org), [#101](https://github.com/TryGhost/Ghost-Admin/pull/101?ref=ghost.org) - Only use the part of jQuery-UI that we need - [#100](https://github.com/TryGhost/Ghost-Admin/pull/100?ref=ghost.org) - Lazy-load code mirror on code injection screen - [#99](https://github.com/TryGhost/Ghost-Admin/pull/99?ref=ghost.org) - Dependency updates ## Discussion - Continued work on validations, waiting on some upstream changes - Pushing towards 0.9 release. No ETA, but sometime soon. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1467736219000998?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 12th July, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-07-12,270,6bj). ### Public Dev Meeting 28th June URL: https://ghost.org/changelog/public-dev-meeting-28th-june/ Last updated: 2021-01-10T23:32:02.000Z ## Quick Summary Mostly dependency updates. Would like some more testers for [0.9.0 Beta 2](https://github.com/TryGhost/Ghost/releases/tag/0.9.0-beta.2?ref=ghost.org). ## Progress Report - Add bower to client dependencies - [#92](https://github.com/TryGhost/Ghost-Admin/pull/92?ref=ghost.org) - Fix on focus out for meta data fields - [#91](https://github.com/TryGhost/Ghost-Admin/pull/91?ref=ghost.org) - Dependency updates - [#84](https://github.com/TryGhost/Ghost-Admin/pull/84?ref=ghost.org), [#85](https://github.com/TryGhost/Ghost-Admin/pull/85?ref=ghost.org), [#7003](https://github.com/TryGhost/Ghost/pull/7003?ref=ghost.org), [#7004](https://github.com/TryGhost/Ghost/pull/7004?ref=ghost.org), [#7018](https://github.com/TryGhost/Ghost/pull/7018?ref=ghost.org), [#7022](https://github.com/TryGhost/Ghost/pull/7022?ref=ghost.org), [#7034](https://github.com/TryGhost/Ghost/pull/7034?ref=ghost.org) ## Discussion - Bookshelf close to a release which will allow us to merge [#7041](https://github.com/TryGhost/Ghost/pull/7041?ref=ghost.org) - Looking to release 0.9 soon The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1467131430000632?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 5th July, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-07-05,270,6bj). ### Public Dev Meeting 21st June URL: https://ghost.org/changelog/public-dev-meeting-21st-june/ Last updated: 2021-01-10T23:32:03.000Z ## Quick Summary A lot of work was done on post scheduling and [0.9.0 Beta 2](https://github.com/TryGhost/Ghost/releases/tag/0.9.0-beta.2?ref=ghost.org) was released. ## Progress Report - Tons of work on post scheduling - [#6987](https://github.com/TryGhost/Ghost/pull/6987?ref=ghost.org), [#6988](https://github.com/TryGhost/Ghost/pull/6988?ref=ghost.org), [#6990](https://github.com/TryGhost/Ghost/pull/6990?ref=ghost.org), [#6993](https://github.com/TryGhost/Ghost/pull/6993?ref=ghost.org) - Rename dates to include UTC - [#72](https://github.com/TryGhost/Ghost-Admin/pull/72?ref=ghost.org) - Sorting posts in the model rather than the controller - [#76](https://github.com/TryGhost/Ghost-Admin/pull/76?ref=ghost.org) - Add a grunt init task to the admin - [#79](https://github.com/TryGhost/Ghost-Admin/pull/79?ref=ghost.org) - Bug fixes and improvements - [#7006](https://github.com/TryGhost/Ghost/pull/7006?ref=ghost.org), [#6946](https://github.com/TryGhost/Ghost/pull/6946?ref=ghost.org), [#7017](https://github.com/TryGhost/Ghost/pull/7017?ref=ghost.org), [#7016](https://github.com/TryGhost/Ghost/pull/7016?ref=ghost.org), [#82](https://github.com/TryGhost/Ghost-Admin/pull/82?ref=ghost.org), [#46](https://github.com/TryGhost/Ghost-Admin/pull/46?ref=ghost.org) - Dependency updates - [#67](https://github.com/TryGhost/Ghost-Admin/pull/67?ref=ghost.org), [#68](https://github.com/TryGhost/Ghost-Admin/pull/68?ref=ghost.org), [#69](https://github.com/TryGhost/Ghost-Admin/pull/69?ref=ghost.org), [#71](https://github.com/TryGhost/Ghost-Admin/pull/71?ref=ghost.org), [#73](https://github.com/TryGhost/Ghost-Admin/pull/73?ref=ghost.org), [#74](https://github.com/TryGhost/Ghost-Admin/pull/74?ref=ghost.org), [#75](https://github.com/TryGhost/Ghost-Admin/pull/75?ref=ghost.org), [#77](https://github.com/TryGhost/Ghost-Admin/pull/77?ref=ghost.org), [#78](https://github.com/TryGhost/Ghost-Admin/pull/78?ref=ghost.org), [#80](https://github.com/TryGhost/Ghost-Admin/pull/80?ref=ghost.org), [#81](https://github.com/TryGhost/Ghost-Admin/pull/81?ref=ghost.org), [#83](https://github.com/TryGhost/Ghost-Admin/pull/83?ref=ghost.org) ## Discussion - Getting final parts all sorted for the 0.9.0 release. - If anyone can try out the [0.9.0 Beta 2](https://github.com/TryGhost/Ghost/releases/tag/0.9.0-beta.2?ref=ghost.org), that would be very helpful The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1466526628000307?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 28th June, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-06-28,270,6bj). ### Public Dev Meeting 14th June URL: https://ghost.org/changelog/public-dev-meeting-14th-june/ Last updated: 2021-01-10T23:32:02.000Z ## Quick Summary The initial version of both internal tags and post scheduling has been merged in. Lots of dependency updates and fixes, and a beta 2 release of 0.9.0 is planned for later this week. **Ghost**: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/Screen-Shot-2016-06-14-at-10-20-03-AM.png) **Ghost-Admin**: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/Screen-Shot-2016-06-14-at-9-48-14-AM.png) ## Progress Report - Post Scheduling - [#25](https://github.com/TryGhost/Ghost-Admin/pull/25?ref=ghost.org), [#6861](https://github.com/TryGhost/Ghost/pull/6861?ref=ghost.org), [#6987](https://github.com/TryGhost/Ghost/pull/6987?ref=ghost.org), [#6988](https://github.com/TryGhost/Ghost/pull/6988?ref=ghost.org) - Internal Tags - [#58](https://github.com/TryGhost/Ghost-Admin/pull/58?ref=ghost.org), [#64](https://github.com/TryGhost/Ghost-Admin/pull/64?ref=ghost.org), [#6771](https://github.com/TryGhost/Ghost/pull/6771?ref=ghost.org) - Timezones - [#6941](https://github.com/TryGhost/Ghost/pull/6941?ref=ghost.org), [#6966](https://github.com/TryGhost/Ghost/pull/6966?ref=ghost.org), [#6962](https://github.com/TryGhost/Ghost/pull/6962?ref=ghost.org), [#6981](https://github.com/TryGhost/Ghost/pull/6981?ref=ghost.org), [#6983](https://github.com/TryGhost/Ghost/pull/6983?ref=ghost.org), [#47](https://github.com/TryGhost/Ghost-Admin/pull/47?ref=ghost.org) - Fixes - [#6938](https://github.com/TryGhost/Ghost/pull/6938?ref=ghost.org), [#6924](https://github.com/TryGhost/Ghost/pull/6924?ref=ghost.org), [#6936](https://github.com/TryGhost/Ghost/pull/6936?ref=ghost.org), [#6952](https://github.com/TryGhost/Ghost/pull/6952?ref=ghost.org), [#6955](https://github.com/TryGhost/Ghost/pull/6955?ref=ghost.org), [#6929](https://github.com/TryGhost/Ghost/pull/6929?ref=ghost.org), [#6945](https://github.com/TryGhost/Ghost/pull/6945?ref=ghost.org), [#62](https://github.com/TryGhost/Ghost-Admin/pull/62?ref=ghost.org), [#63](https://github.com/TryGhost/Ghost-Admin/pull/63?ref=ghost.org) - General Improvements - [#6928](https://github.com/TryGhost/Ghost/pull/6928?ref=ghost.org), [#6909](https://github.com/TryGhost/Ghost/pull/6909?ref=ghost.org), [#6943](https://github.com/TryGhost/Ghost/pull/6943?ref=ghost.org), [#6956](https://github.com/TryGhost/Ghost/pull/6956?ref=ghost.org), [#6960](https://github.com/TryGhost/Ghost/pull/6960?ref=ghost.org), [#6959](https://github.com/TryGhost/Ghost/pull/6959?ref=ghost.org), [#6961](https://github.com/TryGhost/Ghost/pull/6961?ref=ghost.org), [#6963](https://github.com/TryGhost/Ghost/pull/6963?ref=ghost.org), [#49](https://github.com/TryGhost/Ghost-Admin/pull/49?ref=ghost.org), [#55](https://github.com/TryGhost/Ghost-Admin/pull/55?ref=ghost.org) - Dependency Updates - [#6947](https://github.com/TryGhost/Ghost/pull/6947?ref=ghost.org), [#6951](https://github.com/TryGhost/Ghost/pull/6951?ref=ghost.org), [#6965](https://github.com/TryGhost/Ghost/pull/6965?ref=ghost.org), [#6925](https://github.com/TryGhost/Ghost/pull/6925?ref=ghost.org), [#6973](https://github.com/TryGhost/Ghost/pull/6973?ref=ghost.org), [#48](https://github.com/TryGhost/Ghost-Admin/pull/48?ref=ghost.org), [#50](https://github.com/TryGhost/Ghost-Admin/pull/50?ref=ghost.org), [#52](https://github.com/TryGhost/Ghost-Admin/pull/52?ref=ghost.org), [#53](https://github.com/TryGhost/Ghost-Admin/pull/53?ref=ghost.org), [#54](https://github.com/TryGhost/Ghost-Admin/pull/54?ref=ghost.org), [#56](https://github.com/TryGhost/Ghost-Admin/pull/56?ref=ghost.org), [#59](https://github.com/TryGhost/Ghost-Admin/pull/59?ref=ghost.org), [#61](https://github.com/TryGhost/Ghost-Admin/pull/61?ref=ghost.org), [#66](https://github.com/TryGhost/Ghost-Admin/pull/66?ref=ghost.org) ## Discussion - Work on updating bookshelf to use lodash 4 because the ghost lodash 4 update breaks installations on npm v2 - [#1287](https://github.com/tgriesser/bookshelf/pull/1287?ref=ghost.org) - Work on Clients API - [#6674](https://github.com/TryGhost/Ghost/pull/6674?ref=ghost.org) - Work on validations refactor - [#17](https://github.com/TryGhost/Ghost-Admin/pull/17?ref=ghost.org) - Release of 0.9.0 beta 2 imminent The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1465921815000120?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 21st June, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-06-21,270,6bj). ### Public Dev Meeting 7th June URL: https://ghost.org/changelog/public-dev-meeting-7th-june/ Last updated: 2021-01-10T23:32:03.000Z ## Quick Summary Release of 0.9.0 Beta 1\. The back end and front end for timezones has been merged in. ## Progress Report - Force UTC timezone at server level - [#6877](https://github.com/TryGhost/Ghost/pull/6877?ref=ghost.org), [#6917](https://github.com/TryGhost/Ghost/pull/6917?ref=ghost.org), [#6921](https://github.com/TryGhost/Ghost/pull/6921?ref=ghost.org) - Add timezone front end to the admin - [#29](https://github.com/TryGhost/Ghost-Admin/pull/29?ref=ghost.org) - Add version header to api calls - [#38](https://github.com/TryGhost/Ghost-Admin/pull/38?ref=ghost.org), [#39](https://github.com/TryGhost/Ghost-Admin/pull/39?ref=ghost.org) - Improvement to the CSV subscriber import feature - [#6923](https://github.com/TryGhost/Ghost/pull/6923?ref=ghost.org) - Bug fixes - [#6920](https://github.com/TryGhost/Ghost/pull/6920?ref=ghost.org) - General improvements - [#6889](https://github.com/TryGhost/Ghost/pull/6889?ref=ghost.org), [#6915](https://github.com/TryGhost/Ghost/pull/6915?ref=ghost.org) - Dependency updates - [#6927](https://github.com/TryGhost/Ghost/pull/6927?ref=ghost.org), [#35](https://github.com/TryGhost/Ghost-Admin/pull/35?ref=ghost.org), [#33](https://github.com/TryGhost/Ghost-Admin/pull/33?ref=ghost.org), [#42](https://github.com/TryGhost/Ghost-Admin/pull/42?ref=ghost.org), [#43](https://github.com/TryGhost/Ghost-Admin/pull/43?ref=ghost.org), [#16](https://github.com/TryGhost/Ghost-Admin/pull/16?ref=ghost.org), [#6934](https://github.com/TryGhost/Ghost/pull/6934?ref=ghost.org) ## Discussion - Continued progress on the validations refactor - [#46](https://github.com/TryGhost/Ghost-Admin/pull/46?ref=ghost.org) - Would love some testing on the early [0.9.0 beta release](https://github.com/TryGhost/Ghost/issues/6933?ref=ghost.org) - You **must do a backup** before installing this because Ghost will perform a migration of every single date in your database - That allows all the dates and times to be utc which can then be converted based on the date the user choses - Some more work needed to make things better for the repository split - Working on post scheduling is next now that timezones has been added - Ghost 0.9.0 will not including emailing subscribers. Once the scheduling stuff is nailed down, then that will come. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1465317064000058?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 14th June, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-06-14,270,6bj). ### Public Dev Meeting 31st May URL: https://ghost.org/changelog/public-dev-meeting-31st-may/ Last updated: 2021-01-10T23:32:03.000Z ## Quick Summary Dependency updates and the server side of timezones are now merged. ## Progress Report - Test improvements - [#6887](https://github.com/TryGhost/Ghost/pull/6887?ref=ghost.org), [#27](https://github.com/TryGhost/Ghost-Admin/pull/27?ref=ghost.org) - Add server side support for the timezone setting - [#6860](https://github.com/TryGhost/Ghost/pull/6860?ref=ghost.org) - Remove outline from search input - [#26](https://github.com/TryGhost/Ghost-Admin/pull/26?ref=ghost.org) - Dependency updates (greenkeeper) - [#6900](https://github.com/TryGhost/Ghost/pull/6900?ref=ghost.org), [#6886](https://github.com/TryGhost/Ghost/pull/6886?ref=ghost.org), [#6890](https://github.com/TryGhost/Ghost/pull/6890?ref=ghost.org), [#6896](https://github.com/TryGhost/Ghost/pull/6896?ref=ghost.org), [#6901](https://github.com/TryGhost/Ghost/pull/6901?ref=ghost.org), [#6903](https://github.com/TryGhost/Ghost/pull/6903?ref=ghost.org), [#6906](https://github.com/TryGhost/Ghost/pull/6906?ref=ghost.org), [#6908](https://github.com/TryGhost/Ghost/pull/6908?ref=ghost.org), [#24](https://github.com/TryGhost/Ghost-Admin/pull/24?ref=ghost.org), [#31](https://github.com/TryGhost/Ghost-Admin/pull/31?ref=ghost.org) ## Discussion - Working on getting both the client side timezones and post scheduling ready for the next release (which will be 0.9.0) - For Ghost 0.9.0, it will be recommended to have your server running in UTC time The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1464712250002124?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 7th June, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-06-07,270,6bj). ### Sending posts to Slack, and even better structured data support URL: https://ghost.org/changelog/slack-integration/ Last updated: 2021-01-11T01:34:07.000Z As hinted at a few weeks ago in our [3rd birthday post](https://ghost.org/changelog/year-3/), you can now send posts from Ghost directly into your Slack team via a simple webhook integration! This is our very first mini-app for Ghost, which is especially helpful for keeping your whole team up to date on what's being published on the blog. It also comes in particularly handy if you use a private/internal blog instead of Slack posts! ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-77.png) We're planning to add more integrations and apps like this, as well as more powerful customisations for each one. The aim here is to make Ghost the central point of all your publishing efforts which everything else can integrate with. ## Better Structured Data On top of that, we've also just updated Ghost's structured data support to be much more powerful. You can now enter Facebook and Twitter profile URLs for both your blog, as well as each one of your users. This means that you'll see more rich data when embedding posts on social networks, like Facebook: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-78.png) And, places like Twitter will start to give you much more [rich analytics](https://analytics.twitter.com/?ref=ghost.org) data about how the content in your tweets is being engaged with, so you'll have a better understanding of how your audience is responding to the content which you publish: ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-79.png) Of course Ghost also automatically renders all of this Schema.org friendly microformats, to make your publication 100% Google-friendly. No additional HTML markup or attributes required in your theme, it just works straight out of the box. ## \[New:\] Email Subscriber Management We're currently testing a set of features which integrate blog email subscribers directly into Ghost. If you run an active publication and would like to be a part of the early beta, please [get in touch](mailto:hello@ghost.org) and let me know. Enjoy the new things! ### Public Dev Meeting 24th May URL: https://ghost.org/changelog/public-dev-meeting-24th-may/ Last updated: 2021-01-10T23:32:04.000Z ## Quick Summary [Ghost 0.8.0](https://ghost.org/changelog/ghost-0-8-0/) was released. After the release, the admin section of Ghost was moved into its own repository and many dependency updates were made. ## Progress Report - Improvements to Twitter and Facebook handling - [#6848](https://github.com/TryGhost/Ghost/pull/6848?ref=ghost.org) - Use https for schema.org - [#6849](https://github.com/TryGhost/Ghost/pull/6849?ref=ghost.org) - Bug fixes - [#6852](https://github.com/TryGhost/Ghost/pull/6852?ref=ghost.org), [#6856](https://github.com/TryGhost/Ghost/pull/6856?ref=ghost.org), [#6857](https://github.com/TryGhost/Ghost/pull/6857?ref=ghost.org), [#6875](https://github.com/TryGhost/Ghost/pull/6875?ref=ghost.org) - Move admin into its own repository - [#6862](https://github.com/TryGhost/Ghost/pull/6862?ref=ghost.org) - Move `bower install` into an `ember:init` task - [#6882](https://github.com/TryGhost/Ghost/pull/6882?ref=ghost.org) - Dependency updates (greenkeeper) - [#6885](https://github.com/TryGhost/Ghost/pull/6885?ref=ghost.org), [#6876](https://github.com/TryGhost/Ghost/pull/6876?ref=ghost.org), [#6872](https://github.com/TryGhost/Ghost/pull/6872?ref=ghost.org), [#6871](https://github.com/TryGhost/Ghost/pull/6871?ref=ghost.org), [#6858](https://github.com/TryGhost/Ghost/pull/6858?ref=ghost.org), [#6835](https://github.com/TryGhost/Ghost/pull/6835?ref=ghost.org), [#6837](https://github.com/TryGhost/Ghost/pull/6837?ref=ghost.org), [#6843](https://github.com/TryGhost/Ghost/pull/6843?ref=ghost.org), [#6853](https://github.com/TryGhost/Ghost/pull/6853?ref=ghost.org), [#6851](https://github.com/TryGhost/Ghost/pull/6851?ref=ghost.org), [#6820](https://github.com/TryGhost/Ghost/pull/6820?ref=ghost.org), [#6836](https://github.com/TryGhost/Ghost/pull/6836?ref=ghost.org), [#6815](https://github.com/TryGhost/Ghost/pull/6815?ref=ghost.org) ## Discussion - Two main things happened after release, splitting off admin to its [own repo](https://github.com/TryGhost/Ghost-Admin?ref=ghost.org), and dependency updates. The split still needs some work and cleanup, but going well so far. - Working on an ember-sortable PR that should make it possible to convert the tags input field to ember-power-select thus allowing the [dropping of jquery-ui](https://github.com/TryGhost/Ghost/issues/6458?ref=ghost.org). - [Internal tags](https://github.com/TryGhost/Ghost/pull/6771?ref=ghost.org) ready for merge - [Timezones](https://github.com/TryGhost/Ghost/pull/6860?ref=ghost.org) and [scheduling](https://github.com/TryGhost/Ghost/pull/6861?ref=ghost.org) is ready for testing. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1464107552001729?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 31st May, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-05-31,270,6bj). ### Ghost 0.8.0 URL: https://ghost.org/changelog/ghost-0-8-0/ Last updated: 2021-01-11T00:02:03.000Z [Ghost 0.8.0](https://github.com/TryGhost/Ghost/releases/tag/0.8.0?ref=ghost.org) is now available on GitHub, npm and Ghost.org. Ghost 0.8.0 contains a major database upgrade, some breaking changes to the theme API and several new features for you to test out. ## Highlights - **\[New\]** Subscribers (Beta) - enable in labs to collect email addresses from your blog - **\[New\]** Slack integration - notify a slack channel whenever a new blog post is published - **\[New\]** Twitter & Facebook support - add your social profiles to your blog and users, get a meta data boost - **\[New\]** HTTP2 Preload headers - get super speed with CloudFlare - **\[Changed\]** Image uploader - improved editor performance and a smoother upload experience - **\[Changed\]** theme API **breaking changes** \- [see here](https://ghost.org/changelog/get-your-theme-ready-for-0-8-0/) for the details - **\[Fixed\]** Errors in JSON-LD structured data output on blog posts & author pages - And much, much more... You can see the [full change log](https://gist.github.com/ErisDS/9adeb395d3e8caec192622270600c8b1?ref=ghost.org) for the details of every change included in this release. ## In Detail This release contains some new features and all of the theming & API tools needed to make the most of them. The new slack integration allows you to automatically post to slack when a post is published. This feature will likely move to an internal app, and then a default installed external app over the coming months. This is our first experiment with integrations and we're looking to do more. The subscribers feature is implemented, as much as possible, as an internal app. The tools it provides, such as the subscribe page, theme helpers & API endpoint, are only available when the feature is enabled in labs and there's a new helper for detecting if it is enabled from within a theme as well. See the [support guide](https://ghost.org/help/members-introduction/?ref=ghost.org) and [theme docs](https://ghost.org/docs/themes/members/?ref=ghost.org) for more details. Twitter & facebook fields have been added both to users, and to the general settings screen. These store only the unique part of the URL - the twitter username and facebook page name or username. These values are available via the API and also in themes, where helpers have been added to create URLs. Support for HTTP2 Preload headers have been added, but are currently off by default. To enable them, you need to set `preloadHeaders` to a numerical value in your `config.js` file, where the value represents the number of entries stored in the cache: e.g. ``` production: { url: 'https://my-ghost-blog.com', preloadHeaders: 100, ... } ``` Long term, this feature will likely be enabled by default. Short term, users on Ghost(Pro) can contact [support@ghost.org](mailto:support@ghost.org) to ask for this feature to be enabled. ### Theme API Changes **Breaking Changes** The breaking changes to the theme API are explained in detail in [this blog post](https://ghost.org/changelog/get-your-theme-ready-for-0-8-0/). **Other Changes** The theme API has a few additions in 0.8.0 in line with the new feature additions: - The new `{{@labs}}` global allows you to detect if a labs feature is enabled. - Both `{{@blog}}` and `{{author}}` now have `twitter` and `facebook` properties which contain the unique username / page name provided in the admin panel. Two new helpers: `{{facebook_url}}` and `{{twitter_url}}` have been added to make it easy to convert the usernames into full URLs in themes. - You can now add a new `subscribe.hbs` template to override the one provided by Ghost when the subscribers feature is enabled in labs. This comes with a full suite of helpers such as `{{subscribe_form}}` as well as adding a new context. See the [theme API docs](https://ghost.org/docs/changes/?ref=ghost.org) for full details of what changed in Ghost 0.8.0\. The theme documentation is frequently updated with more details and better examples. Please also use the **suggest edits** feature if you find something is missing or out of date. ### Public API Changes The addition (and removal) of several new database fields in Ghost 0.8.0 will result in minor changes to the Public API: - posts, tags and users all now have a `visibility` field - tags no longer have a `hidden` field - users & settings contains a `twitter` & `facebook` field - posts have a currently unused `mobiledoc` field As the hidden field was not yet in use, this is not expected to result in any breaking changes. ## How to Upgrade All Ghost(Pro) users are being **automatically updated** and will be running Ghost 0.8.0 shortly. You're welcome :) For people running Ghost on their own servers, you can [download Ghost 0.8.0](https://ghost.org/docs/?ref=ghost.org) and then check out the [upgrade documentation](https://ghost.org/docs/update/?ref=ghost.org) over on our [support site](https://ghost.org/help/?ref=ghost.org). Enjoy! ## Credits This release was lovingly crafted by Hannah Wolfe, Kevin Ansfield, Austin Burdine, Katharina Irrgang, Aileen Nowak, Jason Williams, Joerg Henning, Sebastian Gierlinger, Terin Stock, David Balderston and Brian Tedder. ### Public Dev Meeting 17th May URL: https://ghost.org/changelog/public-dev-meeting-17th-may/ Last updated: 2021-01-10T23:32:03.000Z ## Quick Summary Tonnes of improvements & bug fixes landed this week ready for 0.8, which will be landing very soon. We're also planning to split off the Ghost admin client into it's own repo shortly after the release. ## Progress Report - General bug fixes - [#6808](https://github.com/TryGhost/Ghost/pull/6808?ref=ghost.org), [#6818](https://github.com/TryGhost/Ghost/pull/6818?ref=ghost.org), [#6821](https://github.com/TryGhost/Ghost/pull/6821?ref=ghost.org), [#6822](https://github.com/TryGhost/Ghost/pull/6822?ref=ghost.org), [#6830](https://github.com/TryGhost/Ghost/pull/6830?ref=ghost.org), [#6834](https://github.com/TryGhost/Ghost/pull/6834?ref=ghost.org) - Dependency upgrades - [#6838](https://github.com/TryGhost/Ghost/pull/6838?ref=ghost.org) - Structured data improvements - [#6823](https://github.com/TryGhost/Ghost/pull/6823?ref=ghost.org), [#6824](https://github.com/TryGhost/Ghost/pull/6824?ref=ghost.org) - Subscribe functionality - [#6764](https://github.com/TryGhost/Ghost/pull/6764?ref=ghost.org), [#6809](https://github.com/TryGhost/Ghost/pull/6809?ref=ghost.org), [#6811](https://github.com/TryGhost/Ghost/pull/6811?ref=ghost.org), [#6814](https://github.com/TryGhost/Ghost/pull/6814?ref=ghost.org), [#6816](https://github.com/TryGhost/Ghost/pull/6816?ref=ghost.org), [#6817](https://github.com/TryGhost/Ghost/pull/6817?ref=ghost.org), [#6842](https://github.com/TryGhost/Ghost/pull/6842?ref=ghost.org) - Test improvement - [#6703](https://github.com/TryGhost/Ghost/pull/6703?ref=ghost.org) - Pre-populate setup values - [#6810](https://github.com/TryGhost/Ghost/pull/6810?ref=ghost.org) - Remove select-all on click for PSM slug - [#6812](https://github.com/TryGhost/Ghost/pull/6812?ref=ghost.org) - Update document title on blog title change - [#6839](https://github.com/TryGhost/Ghost/pull/6839?ref=ghost.org) - Permissions improvements - [#6804](https://github.com/TryGhost/Ghost/pull/6804?ref=ghost.org) Two further open PRs for the structured data [#6841](https://github.com/TryGhost/Ghost/pull/6841?ref=ghost.org), [#6847](https://github.com/TryGhost/Ghost/pull/6847?ref=ghost.org) ## Discussion This week we talked about splitting the Ghost admin client into its own repository. The ember app that is hte admin client has its own needs in terms of testing, tooling and dependency management. Keeping it in the same repository as the Node.js app has started to create serious pain points particularly around the travis builds. We feel we've reached the crossover point, where the cons of having the repos together are starting to outweigh the benefits. The current plan is to move the content of the `core/client` folder into a new repo, and include it back into Ghost using git submodules, in the same way that Casper is managed. Not everyone is convinced this is a good plan. We've tried splitting out pieces of Ghost before and ended up reverting due to the difficulties of managing issues across multiple repos. In this case, we're planning to not have an issues list on the second repo, and to use submodules instead of package dependencies to try to mitigate the issues we saw previously. This is an experiment, and only time will tell us whether splitting is the best option🔬. The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1462897862000906?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 24th May, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-05-24,270,6bj). ### Public Dev Meeting 10th May URL: https://ghost.org/changelog/public-dev-meeting-10th-may/ Last updated: 2021-01-10T23:32:04.000Z ## Quick Summary Slack was integrated into master along with improvements to structured data. Ghost 0.8 is going to be released soon. ## Progress Report - Dependency updates - [#6776](https://github.com/TryGhost/Ghost/pull/6776?ref=ghost.org), [#6781](https://github.com/TryGhost/Ghost/pull/6781?ref=ghost.org), [#6786](https://github.com/TryGhost/Ghost/pull/6786?ref=ghost.org), [#6783](https://github.com/TryGhost/Ghost/pull/6783?ref=ghost.org), [#6790](https://github.com/TryGhost/Ghost/pull/6790?ref=ghost.org) - Code cleanup - [#6789](https://github.com/TryGhost/Ghost/pull/6789?ref=ghost.org), [#6803](https://github.com/TryGhost/Ghost/pull/6803?ref=ghost.org), [#6797](https://github.com/TryGhost/Ghost/pull/6797?ref=ghost.org) - Improve the editor's handling of images - [#6802](https://github.com/TryGhost/Ghost/pull/6802?ref=ghost.org) - Update feature service to be synchronous rather than async - [#6788](https://github.com/TryGhost/Ghost/pull/6788?ref=ghost.org) - Delete null values from incoming data - [#6800](https://github.com/TryGhost/Ghost/pull/6800?ref=ghost.org) - Add config URLs to CORS - [#6739](https://github.com/TryGhost/Ghost/pull/6739?ref=ghost.org) - Slack Integration - [#6795](https://github.com/TryGhost/Ghost/pull/6795?ref=ghost.org) - Large improvements to structured data - [#6784](https://github.com/TryGhost/Ghost/pull/6784?ref=ghost.org) ## Discussion - Wrapping up last pieces then shipping Ghost 0.8. - Will include post-slack integration - Facebook and twitter url support with structured data - New image handling in the editor and performance improvements. - Internal tags and scheduling about done, should be ready for merge after 0.8 release The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1462897862000906?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 17th May, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-05-17,270,6bj). ### Public Dev Meeting 3rd May URL: https://ghost.org/changelog/public-dev-meeting-3rd-may/ Last updated: 2021-01-11T02:04:55.000Z ## Quick Summary Continued work on the new subscribe feature along with more dependency updates and code cleanup. It was also Ghost's [third birthday](https://ghost.org/changelog/year-3/) this week! ## Progress Report - Dependency updates - [#6767](https://github.com/TryGhost/Ghost/pull/6767?ref=ghost.org), [#6519](https://github.com/TryGhost/Ghost/pull/6519?ref=ghost.org), [#6747](https://github.com/TryGhost/Ghost/pull/6747?ref=ghost.org) - Code cleanup - [#6768](https://github.com/TryGhost/Ghost/pull/6768?ref=ghost.org), [#6772](https://github.com/TryGhost/Ghost/pull/6772?ref=ghost.org), [#6760](https://github.com/TryGhost/Ghost/pull/6760?ref=ghost.org), [#6748](https://github.com/TryGhost/Ghost/pull/6748?ref=ghost.org) - Don't add trailing slash if the url has params - [#6766](https://github.com/TryGhost/Ghost/pull/6766?ref=ghost.org) - Add preload headers for links - [#6461](https://github.com/TryGhost/Ghost/pull/6461?ref=ghost.org) ## Discussion - Lots of progress with the new [slack integration](https://github.com/TryGhost/Ghost/pull/6778?ref=ghost.org) as well as the [subscribe feature](https://github.com/TryGhost/Ghost/pull/6764?ref=ghost.org) - [Kate](https://github.com/kirrg001?ref=ghost.org) has joined the Ghost Foundation as a Node.js engineer! - Full explanation of the [breaking theme changes](https://ghost.org/changelog/get-your-theme-ready-for-0-8-0/) coming in 0.8.0 - New [Ghost Desktop](https://ghost.org/changelog/desktop/) app - available on Mac, Windows and Linux! The [full logs of the meeting](https://ghost.slack.com/archives/dev/p1462293080000591?ref=ghost.org) can be found in our Slack logs. ## What is this? We hold a public development meeting pretty much every Tuesday at 5:30pm London time in the #dev channel on Ghost's [slack](https://forum.ghost.org/?ref=ghost.org). In this meeting we discuss progress, important issues, and what is and isn't on [the Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap?ref=ghost.org). It's a chance for everyone to get involved and have their say about where Ghost goes next. Hope to see you at next week's meeting: [Tuesday 10th May, 5:30pm London time](https://everytimezone.com/?ref=ghost.org#2016-04-26,270,6bj). ### It's our birthday! Three years down, $600,000 annual revenue, and what's coming next URL: https://ghost.org/changelog/year-3/ Last updated: 2021-01-10T23:32:06.000Z On the 29th of April in 2013, I sat down in a beautiful little co-working space in Austria called [Daxbau](https://daxbau.at/?ref=ghost.org), and launched the Ghost [Kickstarter campaign](https://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform?ref=ghost.org). Almost precisely 3 years later, I've returned to the exact same spot to write this post while I await the rest of the Ghost team to join me here for our first team trip of 2016. It's always fun to take some time and look back at just how far we've come every 12 months, and I'm even more excited to tell you about where we'll be going next! ## Ghost in Numbers: $600,000 Annual Revenue ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-80.png) - **Total downloads:** 1,088,580 - **Github Stars:** 19,301 - **Ghost(Pro) subscribers:** 4,705 - **Monthly recurring revenue (MRR**): $50,038 - **Annual recurring revenue (ARR**): $600,456 - **Average revenue per user:** $10.59 - **Churn rate:** 4.9% - **Team size**: 9 people across 5 countries and 3 continents (+2 on trial, and 2 [open positions](https://careers.ghost.org/?ref=ghost.org)) In summary? Everything is looking really good, and our growth is healthy, sustainable and profitable. We still do zero marketing, and 100% of Ghost's growth has been word of mouth. ## Looking back on Year 3 Ghost's third year was a weird one, and in many ways a transitional year as both the product and the business went through some teething pains. Here are the highlights for the last year: - Shipped [12 releases](https://github.com/TryGhost/Ghost/releases?ref=ghost.org) of Ghost - Launched [private blogs](https://ghost.org/changelog/private-blogs/) - Completely [redesigned](https://ghost.org/changelog/new-design-better-mobile-support-admin-search-and-more/) Ghost admin - Open sourced [our own blog](https://ghost.org/changelog/blog-theme/) theme - Released the first version of our [API](https://ghost.org/changelog/public-api-labs/) - Moved our [entire infrastructure](https://ghost.org/changelog/digitalocean/) to DigitalOcean - Moved our [entire business](https://ghost.org/changelog/moving-to-singapore/) to Singapore - Added [internationalisation](https://ghost.org/changelog/translate-ghost-org/) to Ghost.org - Created a new [developers area](https://ghost.org/changelog/developer-area/) on Ghost.org - Shipped a suite of Ghost [desktop apps](https://ghost.org/changelog/desktop/) ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-81.png) That's quite a list! But we're not overly satisfied with it. We spent a long time paying off technical debt in the last year, and we're in a much better place now because of it - but we didn't do as much as we were hoping for. Ghost admin got a full redesign because the features outgrew the UI. We fixed countless architectural inefficiencies and functional bugs, and we migrated our servers (literally) [across an ocean](https://ghost.org/changelog/migrating-to-digitalocean/) because Ghost(Pro) outgrew its infrastructure. We went from serving 10Million requests/month at the beginning of last year, to **100Million** requests per month today. In years 1 and 2 we moved as fast as humanly possible to keep up with demand and get the first version of the proverbial ship sailing. In year 3 we pretty much hit breaking-point across the board, and needed to patch some holes and update our strategy. So, while we certainly didn't work any less, it felt like a *quieter* year than usual. ## What's coming next This week marks the start of year 4 for Ghost, and we're excited about it! Recently we had a look back over [the original blog post](https://john.onolan.org/project-ghost/?ref=ghost.org) which outlined the vision for the first version of Ghost, and tried to imagine what that post would look like if we were to rewrite it today. We've learned many lessons in the last 3 years, but the one which stands out most significantly is that there isn't much of a "personal blogging" market any more. Trends have moved on, and simple, beautiful platforms like Medium have come along to cater to individuals who just want to write something every now and then. While personal bloggers have historically made up a large proportion of Ghost's user-base and fueled a great deal of its direction, we're now starting to come back around to what we originally set out to do; focusing strongly on a professional market. We've always been really excited about the prospect of Ghost being used for serious publications, from companies like Buffer and Intercom who rely on brand journalism to fuel their marketing, to independent magazines and newspapers who build an entire business on top of their content. Those are the people we want to be building for. ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/image-82.png) To that end, you can expect to see many more **professional features** coming to Ghost over the next year, from *subscriber management* and audience-growth functionality, to *content analytics* and performance tools. We raised our [prices](https://ghost.org/pricing/?ref=ghost.org) a couple of months ago to reflect this, and we will continue to do so in future as Ghost continues to become more powerful. All users are automatically grandfathered on pricing, though, so early adopters will always get discounted pricing for life. We don't have all the answers yet, but we're going to ship a lot of MVPs of new things this year and learn from them as we go. If you run a publication for an organisation of between 8 and 800 people, regularly producing original content, we'd love to talk to you and get your feedback on some early tools we're working on. Send us an email to hello@ghost.org & say hi!👋 ## One last thing We still haven't entirely figured out how we want to make apps for Ghost work yet. But in the spirit of everything mentioned above, we've started experimenting more. **We're going to be releasing this for the first time in the next few days** ![](https://storage.ghost.io/c/11/12/11129d96-48f2-4637-9c25-b077458f01e2/content/images/2021/01/slack.gif) ## A small favour We’d love your help to share our birthday celebrations, accomplishments and plans for the future! Here’s a pre-written status, to make it extra simple: > 3 years old: @TryGhost now has $600,000 annual revenue and is starting to focus on professional publishers 🔥 /changelog/year-3/ or use 1-click links for *Ultimate Efficiency* TM: [Tweet this](https://twitter.com/share?text=3%20years%20old:%20@TryGhost%20now%20has%20$600,000%20annual%20revenue%20and%20is%20starting%20to%20focus%20on%20professional%20publishers%20%F0%9F%94%A5&url=https://ghost.org/changelog/year-3/&ref=ghost.org) or [Buffer it](https://bufferapp.com/add/?url=https://ghost.org/changelog/year-3/&text=3%20years%20old:%20@TryGhost%20now%20has%20$600,000%20annual%20revenue%20and%20is%20starting%20to%20focus%20on%20professional%20publishers%20%F0%9F%94%A5&ref=ghost.org) **We'll be hanging out in the comments if you have any questions or thoughts! We're also having a party in our [Slack Team](https://forum.ghost.org/?ref=ghost.org) which you're welcome to join!** ### Get your theme ready for 0.8.0 URL: https://ghost.org/changelog/get-your-theme-ready-for-0-8-0/ Last updated: 2021-01-07T04:45:24.000Z Ghost 0.8.0 is set to land soon, and with it come a few **breaking changes** to how the theme API works. These changes come from upgrades to the underlying [handlebars](https://github.com/wycats/handlebars.js?ref=ghost.org) and [express-hbs](https://github.com/barc/express-hbs?ref=ghost.org) libraries. As the changes affect rare use cases, they should not impact on many themes. This post is a guide on what has changed and how to check if your theme will be affected. ## TLDR; The three breaking changes in 0.8.0 1. All partial files **MUST** use the `.hbs` file extension. 2. Handlebars helpers provided to HTML attributes **MUST** be quoted, e.g. `
` 3. `../` in handlebars now behaves naturally and doesn't require multiples when using nested if statements. The first two changes lock down behaviour that is considered bad practice and are easy to spot. The change to `../` probably only affects you if you've had to unexpectedly use multiples (e.g. `{{../../pagination.total}}`) to retrieve a value in your theme. ## In detail... Here's a full breakdown of what's changing, why, how to fix and how to find more information. If you have any questions please drop by the #themes channel on the Ghost [slack community](https://forum.ghost.org/?ref=ghost.org). #### 1\. Partials now require the `.hbs` extension Previously, there was no enforcement around the file extension used for partial files, although the extension `.hbs` is what has been documented and expected. This lack of enforcement has caused problems, for example some editors create backup files with names like `loob.hbs~`, `loop.hbs.bk` or `loop.hbs.swp` and these backup files can be loaded by Ghost instead of the correct file. The result is frustrating issues where changes to template files don't appear to work no matter what you change! Matching the file extension exactly fixes the issue, but also has the side effect of requiring the extension be correct. Impact: Any partial which has an incorrect extension will not be found after the upgrade and this could cause problems rendering pages of a blog. Additionally backup files which were previously incorrectly rendered will be dropped in favour of the correct file. Solution: Check your `/partials/` directory for any file with an extension other than `.hbs`. Look for any sort of backup file and check that the correct file is being rendered already, if not it will be after 0.8.0 so be sure you're happy with that change. You can find out more about this change from the [Ghost bug](https://github.com/TryGhost/Ghost/issues/2459?ref=ghost.org) that it fixes, and also the [pull request](https://github.com/barc/express-hbs/pull/88?ref=ghost.org) which solves the underlying problem. #### 2\. Handlebars helpers passed to HTML attributes must be quoted It has always been best practice to use quotes to surround any handlebars being passed to an HTML attribute, for example: `
` or `