<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[FirePress]]></title><description><![CDATA[Publish your website & monetize your content]]></description><link>https://firepress.org/en/</link><image><url>https://firepress.org/en/favicon.png</url><title>FirePress</title><link>https://firepress.org/en/</link></image><generator>Ghost 3.42</generator><lastBuildDate>Mon, 13 Apr 2026 14:11:50 GMT</lastBuildDate><atom:link href="https://firepress.org/en/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[How to Configure Cloudflare When Hosting Your Website with FirePress]]></title><description><![CDATA[If you're using Cloudflare for your domain AND hosting your website with FirePress (or any external hosting provider), this guide ensures your site works perfectly with both services. Skip this if you're not using Cloudflare.]]></description><link>https://firepress.org/en/how-to-configure-cloudflare-when-hosting-your-website-with-firepress/</link><guid isPermaLink="false">6855d1d1d4c4f1000701fc6d</guid><category><![CDATA[How To]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Fri, 20 Jun 2025 21:28:02 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2025/06/firepress-org-tag-how-to-v2.jpg" medium="image"/><content:encoded><![CDATA[<h2 id="who-should-care-about-this-configuration">Who Should Care about This Configuration?</h2><img src="https://firepress.org/en/content/images/2025/06/firepress-org-tag-how-to-v2.jpg" alt="How to Configure Cloudflare When Hosting Your Website with FirePress"><p>If you're using Cloudflare for your domain AND hosting your website with FirePress (or any external hosting provider), this guide ensures your site works perfectly with both services. Skip this if you're not using Cloudflare.</p><h2 id="why-these-settings-matter">Why These Settings Matter</h2><p>FirePress automatically manages SSL certificates for your website using Let's Encrypt. Cloudflare also provides SSL features. Without proper configuration, these two systems can conflict, causing:</p><ul><li>Certificate renewal failures (which are very random and hard to debug)</li><li>Site downtime</li><li>Security warnings in browsers</li></ul><p>This one-time setup ensures both systems work together seamlessly.</p><h2 id="required-cloudflare-configuration">Required Cloudflare Configuration</h2><h3 id="1-ssl-tls-encryption-mode">1. SSL/TLS Encryption Mode</h3><p><strong>Navigate to:</strong> SSL/TLS → Overview<br><strong>Set to:</strong> Full (NOT Full strict)</p><p><strong>Why:</strong> This allows Cloudflare to accept the SSL certificates that FirePress automatically generates for your site.</p><h3 id="2-dns-records">2. DNS Records</h3><p><strong>Navigate to:</strong> DNS → Records<br><strong>Add:</strong> CNAME record pointing to your assigned FirePress server<br><strong>Proxy status:</strong> Orange cloud (Proxied)</p><p>Example:</p><ul><li>Type: CNAME</li><li>Name: @ (or subdomain)</li><li>Target: yoursite34td.firepresshosting.top (already provided by FirePress)</li><li>Proxy: ✓ (orange)</li></ul><h3 id="3-cache-disable-cache">3. Cache disable cache</h3><figure class="kg-card kg-image-card"><img src="https://firepress.org/en/content/images/2025/07/Final-Analysis---Traefik---Cloudflare-SSL-config-g7s9J-1752506537366.jpeg" class="kg-image" alt="How to Configure Cloudflare When Hosting Your Website with FirePress"></figure><h3 id="4-page-rule-for-certificate-renewal">4. Page Rule for Certificate Renewal</h3><p><strong>Navigate to:</strong> Rules → Page Rules<br><strong>Create rule for:</strong> <code>*yourdomain.com/.well-known/acme-challenge/*</code></p><figure class="kg-card kg-image-card"><img src="https://firepress.org/en/content/images/2025/06/Final-Analysis---Traefik---Cloudflare-SSL-config-g7s9J-20250606225510540.jpeg" class="kg-image" alt="How to Configure Cloudflare When Hosting Your Website with FirePress"></figure><figure class="kg-card kg-image-card"><img src="https://firepress.org/en/content/images/2025/06/Final-Analysis---Traefik---Cloudflare-SSL-config-g7s9J-20250606225812600.jpeg" class="kg-image" alt="How to Configure Cloudflare When Hosting Your Website with FirePress"></figure><p><strong>Why this configuration is needed:</strong> This ensures FirePress can automatically renew your SSL certificates every 90 days without Cloudflare interfering.</p><h2 id="you-are-set">You Are Set</h2><p>These settings create a perfect partnership:</p><ul><li>Cloudflare provides DDoS protection, CDN, and performance benefits</li><li>FirePress handles your hosting and automatic SSL certificates</li><li>Your visitors get a fast, secure experience</li></ul><p>No further action needed - your certificates will auto-renew forever.</p><h2 id="having-issues">Having Issues?</h2><p>Contact FirePress support. We'll help you get it sorted quickly.</p>]]></content:encoded></item><item><title><![CDATA[Migrating from WordPress to Ghost V5]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="introduction">Introduction</h2>
<p>Considering a website revamp? Transitioning from WordPress to Ghost might be your perfect solution! Ghost rivals WordPress with its ease of use and emphasis on content presentation. It's daunting making the switch, but let us help you navigate this with a seamless step-by-step guide. From understanding what elements can</p>]]></description><link>https://firepress.org/en/migrating-from-wordpress-to-ghost-v5/</link><guid isPermaLink="false">6524595c3e742b0008bf5811</guid><category><![CDATA[How To]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Mon, 09 Oct 2023 20:36:47 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2023/10/firepress-org-tag-how-to-v2.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="introduction">Introduction</h2>
<img src="https://firepress.org/en/content/images/2023/10/firepress-org-tag-how-to-v2.jpg" alt="Migrating from WordPress to Ghost V5"><p>Considering a website revamp? Transitioning from WordPress to Ghost might be your perfect solution! Ghost rivals WordPress with its ease of use and emphasis on content presentation. It's daunting making the switch, but let us help you navigate this with a seamless step-by-step guide. From understanding what elements can be migrated to installing the required plugins, we'll help you every step of the way. Embrace the change; the Ghost community awaits you!</p>
<p><strong>Before the Migration:</strong> Ghost handles most WordPress features splendidly; making sure that posts, pages, tags, authors, and images move without hassle. While custom fields and shortcodes may not migrate, Ghost boasts inbuilt features eliminating the need for extra plugins or clutter.</p>
<h3 id="step1plugininstallation">Step 1: Plugin Installation</h3>
<p>The first stop on this journey is installing the Ghost Export Plugin <a href="https://wordpress.org/plugins/ghost/">https://wordpress.org/plugins/ghost/</a>. Sign in to your WordPress dashboard and navigate to 'Plugins' on the sidebar menu. Hit 'Add New' and search for 'Ghost Export' in the search bar to find our plugin provided by Ghost Foundation. Follow the prompts to install and activate the plugin.</p>
<h3 id="step2preparingwordpresscontentforimport">Step 2: Preparing WordPress Content for Import</h3>
<p>Once activated, go to 'Tools' and then 'Export to Ghost' on the sidebar. This will present a guide to prepare your content for Ghost.</p>
<p>Within WordPress, your content is classified into categories and tags. But Ghost utilizes a more simplified organizing technique, it only uses tags. To make this change, use the <a href="https://wordpress.org/plugins/taxonomy-converter/">Taxonomy Converter</a> plugin in WordPress, to effectively change all your categories into tags.</p>
<p>Caution! This action will permanently change your content structure on WordPress. If unsure, create a backup of your content using 'Export' under 'Tools'.</p>
<h3 id="step3exportingcontentfromwordpress">Step 3: Exporting Content from WordPress</h3>
<p>With your content now prepared, return to 'Export to Ghost' in 'Tools'. Click 'Download Ghost File' to download a zip file containing your content.</p>
<p>If faced with troubles in exporting due to huge data content or processing time, click '.json' beneath the download button. This action will generate a single file containing all your posts, pages, and tags, skipping the image downloading step.</p>
<h3 id="step4importingtoghost">Step 4: Importing to Ghost</h3>
<p>You're almost there! Sign into your Ghost admin panel. Under 'Labs' view, click 'Choose file' within 'Import content'. Select your downloaded zip file and hit 'Import'. And just like that, your content from WordPress is now available on your Ghost site.</p>
<p>This step-by-step guide is aimed to provide a seamless transition to Ghost while preserving the essence of your WordPress content. Keep your zip file (or .json file) ready. All it takes is a few clicks and voila; your Ghost blog is ready.</p>
<p>Take a minute to breathe and pat yourself on the back. You’ve navigated through a significant segment of your transition journey.</p>
<h2 id="postmigrationactions">Post Migration Actions</h2>
<p>Congrats on successfully migrating your content from WordPress to Ghost. But there are a few housekeeping actions to ensure your transition is seamless.</p>
<h3 id="tweakingcontentandsettings">Tweaking Content and Settings</h3>
<p>Start by verifying the successful migration of your posts, pages, images, and tags. Don't forget to check if the authors are aligned with their content. If you notice any issues, ensure to weed them out at this stage before moving further.</p>
<p>Ghost flags any duplicate or malformed content during importing, so keep an eye out for any anomalies. If Ghost does flag something, carefully review those flagged portions.</p>
<h3 id="resetpasswords">Reset Passwords</h3>
<p>Authors from WordPress get migrated to Ghost without their passwords. Authors need to reset their passwords and can do so by logging into Ghost and following the prompts. Secure passwords are vital in sustaining your website's safety.</p>
<h3 id="imagesandjsondata">Images and JSON Data</h3>
<p>If your website includes a high number of images, you might find it more useful to upload multiple, smaller zip files, each containing around 100MB of images, one zip file at a time.</p>
<p>Upon migration, the JSON data file from WordPress may require some modifications to align with Ghost's formatting. This change mainly applies if your exported data still contains the former WordPress domain. If your Ghost site is using a different domain, open the JSON file and modify the URL structure using find and replace to replace the old domain with the new one.</p>
<h2 id="changingdomains">Changing Domains</h2>
<p>Switching domains could be a pivotal part of your migration process. So, if you've elected to hang your hat at a new domain post-migration, ensure your URLs match your new home.</p>
<p>If you've chosen to change your domain post-migration, update your URL accordingly in the JSON file to match your new home. You're familiar with this process by now—unzip the export file, open the JSON file in a code editor, and use find and replace to substitute the old domain with your new domain. Following this, zip the export once more to secure your changes.</p>
<h2 id="wrappingup">Wrapping Up</h2>
<p>An admirable round of applause for you – you've successfully transitioned from WordPress to Ghost. Now, skim through your content, revisit your tags and authors, and ensure everything looks fantastic on your Ghost site.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Terms of Service]]></title><description><![CDATA[You can publish any lawful content on FirePress, as long as it complies with all applicable laws. We do not censor or restrict content based on its subject matter.]]></description><link>https://firepress.org/en/terms-of-service/</link><guid isPermaLink="false">5fbbe2f80451820007982863</guid><category><![CDATA[Terms]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Sun, 30 Jul 2023 15:30:00 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2020/12/firepress-org-tag-terms-v1-1.jpg" medium="image"/><content:encoded><![CDATA[<h3 id="acceptance-of-the-terms-of-service">Acceptance of the Terms of Service</h3><img src="https://firepress.org/en/content/images/2020/12/firepress-org-tag-terms-v1-1.jpg" alt="Terms of Service"><p>Welcome to FirePress defined as "we" or "us" or the "Company".</p><p>We want to keep our relationship with you as lean and informal as possible, but please read the Terms of Service carefully before you start using FirePress, because by using our services you accept and agree to be bound and abide by these Terms of Service.</p><h3 id="changes-to-the-terms-of-service-and-the-website">Changes to the Terms of Service and the Website</h3><p>We reserve the right to update the Website and these Terms of Service from time to time, at our discretion. We will make sure to announce any major change in a prominent way, but since "major" is a very subjective concept, you can always monitor and subscribe to changes via our TOS Tracker (yes, we track our own Terms!). Of course, this document is public on FirePress. Your continued use of the Website following the publishing of updated Terms of Service means that you accept and agree to the changes.</p><h3 id="user-contributions-and-content-standards">User Contributions and Content Standards</h3><p>FirePress contains user generated content, and also may contain message boards, personal web pages, forums or other interactive features that allow you to upload, post, submit, publish, display or transmit to other Users Content on or through the Website. All User Content must be lawful, not spammy, and clear of virus or other malware. More specifically, but without limiting the foregoing, it must comply with the following Content Standards:</p><h3 id="allowed-content">Allowed Content</h3><p>You can publish any lawful content on FirePress, as long as it complies with all applicable laws. We do not censor or restrict content based on its subject matter.</p><p>We support free speech and open discussion. We do not believe in censoring, restricting access to, canceling, banning, shadow banning, deplatforming content or removing content solely because we disagree with the opinions or beliefs expressed are a good thing for society.</p><p><strong>Content must not:</strong></p><ul><li>Infringe on any party's intellectual property rights, including trademarks, copyrights, patents, or trade secrets.</li><li>Violate any party's legal rights, including privacy and publicity rights, or contain material that could create civil or criminal liability.</li><li>Promote or assist with any illegal activity or unlawful act.</li><li>Impersonate any person or misrepresent your identity or affiliation.</li><li>Appear to originate from FirePress or any entity if that is not the case.</li></ul><h3 id="accessing-the-website-security-and-privacy">Accessing the Website, Security and Privacy</h3><p>We are working hard on improving FirePress, but we can't guarantee that the Website will be up and running 24/7.</p><p>Our SLA objective is at 99.999%. This represents 26 sec per month or 5m15 per year of potential downtime. See our uptime status dashboard at <a href="https://firepress.org/en/uptime-status/">https://firepress.org/en/uptime-status/</a></p><p>We also reserve the right to suspend or restrict access to some features to users. In any case, we will not be liable if for any reason all or any part of the Website is unavailable at any time or for any period, nor for any data loss (see also section 7 below).</p><p>To access certain features of the Website you have to register by entering your email and choosing a password as part of our security procedures. You must treat such information as confidential, not disclosing it to any third party and only using FirePress in person. There is a password reset procedure in case you forget your password, but please notify us of any breach of security. We highly recommend to choose a strong password (e.g. "coRRect !horse 5battery") and that you log out from your account at the end of every session.</p><p>It is a condition of your use of the Website that all the information you provide on the Website is correct, current and complete. In the future, you may be asked to provide certain registration details or other information. As custom for internet websites, we reserve the right to disable any user account, at any time in our sole discretion for any or no reason, including, if in our opinion you have failed to comply with any provision of these Terms of Service.</p><p>We use SSL encrypted browsing for all logged-in users, but we cannot guarantee that all use will be secure. We also do not guarantee that the Website or any content provided on the Website is error free. We manage your personal data according to our Privacy Policy.</p><h3 id="intellectual-property-rights-and-use-guidelines-">Intellectual Property Rights and Use Guidelines.</h3><p>The Website and its original content, features and functionality including play-with-ghost.com, are owned by FirePress and are protected by Canadian and international copyright, trademark, patent, trade secret and other intellectual property or proprietary rights laws. FirePress is about copying, branching and modifying documents, not Website, design or code. So you agree to not copy, modify, create derivative works of, publicly display, publicly perform, republish, any of our copyrighted material, except to the extent permitted by the Website itself. If you have doubts about whether and how to use of material on the Website, please address your concerns to: relations AT firepress.org</p><p>For purposes of these Terms of Service, the term “Content” includes, without limitation, information, data, text, photographs, videos, audio clips, written posts and comments, software, scripts, graphics, and interactive features generated, provided, or otherwise made accessible on or through the Website. For the purposes of these Terms of Service, “Content” also includes all User Content (as defined below).</p><p>All Content added, created, uploaded, submitted, distributed, or posted to the Website by users (collectively “User Content”), whether publicly posted or privately transmitted, is the sole responsibility of the person who originated such User Content. You represent that all User Content provided by you is accurate, complete, up-to-date, and in compliance with all applicable laws, rules and regulations. You acknowledge that all Content, including User Content, accessed by you using the Website is at your own risk and you will be solely responsible for any damage or loss to you or any other party resulting therefrom. We do not guarantee that any Content you access on or through the Website is or will continue to be accurate.</p><p>By submitting public User Content through the Website, you hereby do and shall grant us a worldwide, non-exclusive, perpetual, royalty-free, fully paid, sub-licensable and transferable license to use, edit, modify, reproduce, distribute, prepare derivative works of, display, perform, and otherwise fully exploit the User Content in connection with the Website and our (and our successors’ and assigns’) businesses, including without limitation for promoting and redistributing part or all of the Website (and derivative works thereof) in any media formats and through any media channels (including, without limitation, third party websites and feeds). You also hereby do and shall grant each user of the Website a non-exclusive, perpetual license to access your User Content through the Website, and to use, edit, modify, reproduce, distribute, prepare derivative works of, display and perform such User Content. For clarity, the foregoing license grants to us and our users does not affect your other ownership or license rights in your User Content, including the right to grant additional licenses to your User Content, unless otherwise agreed in writing. You represent and warrant that you have all rights to grant such licenses to us without infringement or violation of any third party rights, including without limitation, any privacy rights, publicity rights, copyrights, trademarks, contract rights, or any other intellectual property or proprietary rights.</p><p>We do not guarantee that any Content will be made available on the Website. We reserve the right to, but do not have any obligation to, (i) remove, edit or modify any Content in our sole discretion, at any time, without notice to you and for any reason (including, but not limited to, upon receipt of claims or allegations from third parties or authorities relating to such Content or if we are concerned that you may have violated these Terms of Service), or for no reason at all and (ii) to remove or block any Content from the Website.</p><p>You are permitted to use the Website for your personal, non-commercial use, or legitimate business purposes, provided that your activities are lawful and in accordance with these Terms of Service. Prohibited uses include violation of laws and regulations, hacking the Website in any manner, or violating the Content Standards set below. No right, title or interest in or to the Website or any content on the site is transferred to you, and all rights not expressly granted are reserved. Any use of the Website not expressly permitted by these Terms of Service is a breach of these Terms of Service and can lead to account termination.</p><p>We encourage your feedback, in the form of reviews, comments, and suggestions or recommendations for modifications, improvements or changes to the Services or the Site that you may choose in your sole discretion to provide us from time to time (“Feedback”). When you provide Feedback, you grant us, under all right, title and interest in and to the Feedback, a non-exclusive, royalty-free, worldwide, transferable, sub-licensable, irrevocable, perpetual license to use that Feedback or to incorporate it into the Website or other products or services.</p><p>The Website may contain Content specifically provided by us, our partners or our users and such Content is protected by copyrights, trademarks, service marks, patents, trade secrets or other proprietary rights and laws. You shall abide by and maintain all copyright notices, information, and restrictions contained in any Content accessed through the Website.</p><h3 id="law-and-copyright-infringement">Law and Copyright Infringement</h3><p>We do not undertake to review all material before it is posted on the Website, and cannot ensure prompt removal of objectionable material after it has been posted. Accordingly, we assume no liability for any action or inaction regarding transmissions, communications or content provided by any user or third party. In the unlikely event we receive a disclosure request from an authorized party, we reserve the right to disclose user identities when required to do so by the law, including in response to a law enforcement request supported by a valid court order. You waive and hold harmless the Company from any claims resulting from any action taken by the Company during or as a result of its investigations and from any actions taken as a consequence of investigations by either the Company or law enforcement authorities.</p><p>If you believe that any User Content violate your copyright, please follow the procedure set forth by article 512(c) of the DMCA and provide us a written takedown notice including the following information:</p><ul><li>A physical or electronic signature of a person authorized to act on behalf of the owner of an exclusive right that is allegedly infringed.</li><li>Identification of the copyrighted work claimed to have been infringed, or, if multiple copyrighted works at a single online site are covered by a single notification, a representative list of such works at that site.</li><li>Identification of the material that is claimed to be infringing or to be the subject of infringing activity and that is to be removed or access to which is to be disabled, and information reasonably sufficient to permit us to locate the material.</li><li>Information reasonably sufficient for us to contact you, such as email, address, telephone number.</li><li>A statement that you a good faith belief that use of the material in the manner complained of is not authorized by the copyright owner, its agent, or the law.</li><li>A statement that the information in the notification is accurate, and under penalty of perjury, that you is authorized to act on behalf of the owner of an exclusive right that is allegedly infringed.</li><li>The notice should be addressed to relations AT firepress.org</li></ul><h3 id="disclaimer-of-warranties-limitations-of-liability-and-indemnification-">Disclaimer of Warranties, Limitations of Liability and Indemnification.</h3><p>Your use of FirePress is at your sole risk. The service is provided "as is" and "as available". We disclaim all warranties of any kind, express or implied, including, without limitation, the warranties of merchantability, fitness for a particular purpose and non-infringement. We are not liable for damages, direct or consequential, resulting from your use of the Website, and you agree to defend, indemnify and hold us harmless from any claims, losses, liability costs and expenses (including but not limites to attorney's fees) arising from your violation of any third-party's rights. You acknowledge that you have only a limited, non-exclusive, nontransferable license to use the Website. Because the Website is not error or bug free, you agree that you will use it carefully and avoid using it ways which might result in any loss of your or any third party's property or information.</p><h3 id="geographic-restrictions">Geographic Restrictions</h3><p>You do so on your own initiative and are responsible for compliance with local laws.</p><h3 id="governing-law-and-jurisdiction">Governing Law and Jurisdiction</h3><p>These Terms of Service and any dispute or claim arising out of, or related to them, shall be governed by and construed in accordance with the internal laws of Canada without giving effect to any choice or conflict of law provision or rule.</p><p>Any legal suit, action or proceeding arising out of, or related to, these Terms of Service or the Website shall be instituted exclusively in the federal courts of the Canada.</p><h3 id="waiver-and-severability">Waiver and Severability</h3><p>Our failure to exercise or enforce any right or provision of the Terms of Service shall not constitute a waiver of such right or provision. The Terms of Service constitutes the entire agreement between you and FirePress and govern your use of the service, superseding any prior agreements (including, but not limited to, any prior versions of the Terms of Service). If any provision of these Terms of Service is held by a court of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of the Terms of Service will continue in full force and effect.</p><h3 id="feedback">Feedback</h3><p>We welcome any comment, question and communication at relations AT firepress.org</p>]]></content:encoded></item><item><title><![CDATA[How to configure ghost using mailgun for sending emails?]]></title><description><![CDATA[<pre><code>The content on: https://firepress.org/en/how-to-configure-ghost-using-mailgun-for-sending-emails/
has moved here: https://firepress.org/en/how-to-send-to-emails-to-your-membership-with-ghost/

(You will be redirected automatically in few seconds.)</code></pre><!--kg-card-begin: html--><script type="text/javascript">
      window.location.href = "https://firepress.org/en/how-to-send-to-emails-to-your-membership-with-ghost/"
</script><!--kg-card-end: html-->]]></description><link>https://firepress.org/en/how-to-configure-ghost-using-mailgun-for-sending-emails/</link><guid isPermaLink="false">646fbd753e742b0008bf5781</guid><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Thu, 25 May 2023 19:57:30 GMT</pubDate><content:encoded><![CDATA[<pre><code>The content on: https://firepress.org/en/how-to-configure-ghost-using-mailgun-for-sending-emails/
has moved here: https://firepress.org/en/how-to-send-to-emails-to-your-membership-with-ghost/

(You will be redirected automatically in few seconds.)</code></pre><!--kg-card-begin: html--><script type="text/javascript">
      window.location.href = "https://firepress.org/en/how-to-send-to-emails-to-your-membership-with-ghost/"
</script><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[How to do a Ghost migration to FirePress?]]></title><description><![CDATA[To transition your Ghost website to FirePress, we presume you are acquainted with configuring your domain or DNS for FirePress servers. Simply adhere to these instructions.]]></description><link>https://firepress.org/en/how-to-do-a-ghost-migration-to-firepress/</link><guid isPermaLink="false">5fb6ae8ffcd34a0006e714cb</guid><category><![CDATA[How To]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Tue, 18 Apr 2023 16:47:00 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2020/12/firepressorg-tag-how-to-v2-3.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2020/12/firepressorg-tag-how-to-v2-3.jpg" alt="How to do a Ghost migration to FirePress?"><p>To transition your Ghost website to FirePress, we presume you are acquainted with <a href="https://firepress.org/en/how-can-i-configure-my-domain-or-dns-to-firepress-servers/">configuring your domain or DNS</a> for FirePress servers. Simply adhere to these instructions.</p><h3 id="prerequisites-for-migration">Prerequisites for Migration</h3><ol><li>Obtain or request the <code>ghost/content/*</code> directory from your website.</li><li>Export and secure a backup of your content (a <code>*.json</code> file). Navigate to: <code>Settings &gt; Labs &gt; Migration options &gt; Export</code>. From this location, download the <code>*.json</code> file to your computer.</li><li>You are required to transmit the <code>ghost/content/*</code> directory to us. To facilitate this, compress (zip) the <code>ghost/content/*</code> directory along with the <code>*.json</code> file.</li><li>Utilize services such as <a href="https://wetransfer.com/">wetransfer.com</a>, <a href="https://www.dropbox.com/">dropbox.com</a>, <a href="https://jumpshare.com/pricing">JumpShare</a>, or a comparable platform to upload your zip file. Refrain from transmitting zip files directly within an email, as it consumes excessive space.</li><li>Kindly forward a link where we can retrieve this zip file at relations AT firepress.org.</li><li>FirePres will copy your data into your Ghost instance.</li><li>Import your data from your backup (see Step 2). Navigate to: <code>Settings &gt; Labs &gt; Migration options &gt; Import</code>. From this location, upload the <code>*.json</code> file to your computer.</li></ol><p>If assistance is required during the migration, our services can be provided for a nominal fee. Contact us for further information.</p><h3 id="regarding-ghost-content-directory">Regarding <code>ghost/content/</code> directory</h3><p>This directory encompasses images, database, logs, settings, themes, and more.</p><p>Please be cognizant of the fact that FirePress' esteemed clientele will not possess the ability to access our server through SFTP, SSH, or any alternative method.</p><figure class="kg-card kg-image-card"><img src="https://firepress.org/en/content/images/2020/11/Screen-Shot-2020-11-27-at-3.18.59-PM.jpg" class="kg-image" alt="How to do a Ghost migration to FirePress?"></figure><h3 id="potential-downtime">Potential Downtime</h3><p><strong>A modicum of downtime</strong> may transpire during the migration. We encourage you to consult <a href="https://firepress.org/en/will-there-be-some-downtime-during-the-migration/">this post</a> for a comprehensive understanding of the reasons behind this occurrence.</p>]]></content:encoded></item><item><title><![CDATA[How to send to emails to your membership with Ghost?]]></title><description><![CDATA[1) The SMTP configurations, which play a pivotal role in ensuring proper email delivery, are completely managed by our team at Firepress. 2) API Key ..]]></description><link>https://firepress.org/en/how-to-send-to-emails-to-your-membership-with-ghost/</link><guid isPermaLink="false">5fcaba91b1db730006bf222a</guid><category><![CDATA[How To]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Tue, 03 May 2022 21:48:00 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2020/12/firepressorg-tag-how-to-v2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2020/12/firepressorg-tag-how-to-v2.jpg" alt="How to send to emails to your membership with Ghost?"><p>Configuring Ghost for sending emails to your members requires two essential configurations:</p><h2 id="1-smtp-credentials">1)  SMTP Credentials</h2><p>The SMTP configurations, which play a pivotal role in ensuring proper email delivery, are completely managed by our team at Firepress. These configurations are vital for various transactional email services, including:</p><ul><li>subscription confirmations</li><li>login recovery</li><li>secure login links</li><li>emails to staff users</li><li>etc.</li></ul><h2 id="2-api-key">2) API Key</h2><p>At Firepress, we take care of managing the API keys for you. Once you receive the necessary information from us, simply copy and paste it into the designated sections of the configuration. The following values will be shared with you:</p><ul><li>Mailgun Private API key</li><li>Mailgun region</li><li>Mailgun domain</li></ul><p>To configure your API key, please follow these steps:</p><ol><li>Access the Admin Panel.</li><li>Navigate to the Settings section.</li><li>Locate the Email Newsletter settings.</li><li>Proceed to the Mailgun configuration.</li></ol><figure class="kg-card kg-image-card"><img src="https://firepress.org/en/content/images/2023/05/SCR-20230525-nwfs.png" class="kg-image" alt="How to send to emails to your membership with Ghost?"></figure><p>By adhering to these configurations, you can ensure seamless email communication with your valued members.</p>]]></content:encoded></item><item><title><![CDATA[8 reasons to host your Ghost website on FirePress]]></title><description><![CDATA[Since we launched back in May 2019, I felt it was a good opportunity to share eight reasons you might consider our hosting solution.]]></description><link>https://firepress.org/en/8-reasons-to-host-your-ghost-website-on-firepress/</link><guid isPermaLink="false">5fbc6543045182000798289e</guid><category><![CDATA[Article]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Sat, 06 Nov 2021 00:44:00 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2020/12/firepress-org-tag-article-v1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2020/12/firepress-org-tag-article-v1.jpg" alt="8 reasons to host your Ghost website on FirePress"><p>From time to time, we see <a href="https://forum.ghost.org/t/managed-hosting-services-reviewed/18239">a post</a> on the forums comparing the different hosting providers. Since <a href="https://forum.ghost.org/t/host-your-ghost-website-on-firepress/7092">we launched back in May 2019</a>, I felt it was a good opportunity to share <strong>eight reasons you might consider our hosting solution</strong>.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://firepress.org/en/content/images/2021/01/server-animated.gif" class="kg-image" alt="8 reasons to host your Ghost website on FirePress"></figure><h3 id="i-homepage">I. Homepage</h3><p>A big feature we offer over our competitors is the ability to host your custom <strong>homepage</strong> along with your <strong>Ghost site</strong>. This is NOT an 'enterprise' feature. Two examples:</p><p><strong>A)</strong> Your domain structure could look like:</p><ul><li><a href="https://pascalandy.com/">pascalandy.com/</a> (custom homepage)</li><li><a href="https://pascalandy.com/blog/">pascalandy.com/blog/</a> (ghost)</li></ul><p><strong>B)</strong> or if you prefer, you could set up your domain this way as well:</p><ul><li>juliaburns.com/ (custom homepage)</li><li>blog.juliaburns.com/ (ghost)</li></ul><p><strong>You are responsible</strong> to design your <strong>homepage</strong> (HTML, CSS, JS). FirePress is not a website builder after all, it's a hosting service. In the future, we will offer templates that are easy to customize but we can't provide a timeline at the moment.</p><p>See all details regarding <a href="https://firepress.org/en/adding-a-homepage-in-front-of-your-ghost-website/">our homepage solution</a>.</p><h3 id="ii-pricing-regarding-the-members">II. Pricing regarding the members</h3><p><strong>A) <strong>Staff user</strong></strong></p><ul><li>Unlimited</li></ul><p><strong>B) <strong>Is there any limit of </strong>members/subscribers</strong></p><ul><li>Our plan includes the first 1 000 members for 190$ /year or 19$ /month.</li><li>For every additional 1 000 members, we charge 90$ /year or 9$ per month.</li><li>Per example: let's say for <strong>10 500 members</strong> on an annual plan, we would charge: <strong>67.50$</strong> month ( which is the equivalent of  (190$ + (9 X 90$) = 810$ /year).</li></ul><p><strong>C) <strong>Are Mailgun emails included or do users have to pay extra?</strong></strong></p><ul><li>Your plan includes sending transactional emails (newsletter to your members) for the first 1000 emails sent/month. If you need to send more emails, we will charge you 5$/month for every 2500 emails sent/month. <a href="https://firepress.org/en/are-there-any-limits-on-transactional-emails/">source</a></li></ul><p><strong>D) <strong>Do you allow custom integrations?</strong></strong></p><ul><li>Yes absolutely. You can generate your API keys from the Admin Panel.</li></ul><h3 id="iii-migration">III. Migration</h3><p>You will be able to export/import your content from the 'labs' sections.</p><p>For the images, you will need to request an export from your existing hosting provider as you can't export them from the Admin Panel. It's something we do all the time. See all details regarding <a href="https://firepress.org/en/how-to-do-a-ghost-migration-to-firepress/">our migration process.</a></p><h3 id="iv-security">IV. Security</h3><p>We manage the whole backend for you. Our servers run on Linux OS, highly available (HA) configurations, CDN, Docker that orchestrate services (containers), load balancer, CI/CD automation, zero-downtime deployments and other <a href="https://firepress.org/en/how-do-we-update-hundreds-of-ghosts-websites-on-docker-swarm/">DevOps best-practices</a>.</p><ul><li>🔐 Automatic SSL (HTTPS).</li><li>⚔ DDoS attack mitigation.</li><li>🔄 Automatic weekly updates.</li><li>💾 Automatic daily backup. Backups are encrypted and transferred outside our servers cluster (cold storage). We back up your database every four hours and we back up your whole Ghost installation (pictures, themes, database) every 24 hours.</li><li>🔥 Threat &amp; uptime management with an SLA of 99.999%. This represents 26 sec per month or 5m15 per year of potential downtime. See our uptime status dashboard.</li></ul><h3 id="v-try-ghost-on-the-spot">V. Try Ghost on the spot</h3><p><a href="https://play-with-ghost.com/">play-with-ghost.com</a> is a playground made by us to explore Ghost by using it and feeling it. What's remarkable here, is that you have the option to log in to the <strong>admin panel</strong> of our demo sites. In short, <strong>you can try Ghost on the spot without having to sign-up for a trial!</strong> Use these dummy credentials: <em><a>relations@firepress.org</a></em> | <em>firepress1</em></p><h3 id="vi-forums">VI. Forums</h3><p>I'm <a href="https://forum.ghost.org/u/pascalandy/activity">very active on the Ghost forums</a>. I like to help people that are within the Ghost ecosystem regardless they are clients are not. In other words, I am here for the long term.</p><h3 id="vii-transparent-backlog">VII. Transparent backlog</h3><p>We share publicly what we are working on <a href="https://trello.com/b/0fCwwzqc/firepress-roadmap">our public Trello board</a></p><h3 id="viii-open-source">VIII. Open-source</h3><p>We contribute to the open-source space as well. Here are some git repositories we maintain:</p><ul><li><a href="https://github.com/firepress-org/ghostfire">https://github.com/firepress-org/ghostfire</a> (CI/CD in Github Actions)</li><li><a href="https://hub.docker.com/repository/docker/devmtl/ghostfire/tags?page=1">https://hub.docker.com/repository/docker/devmtl/ghostfire/tags?page=1</a></li></ul><p>You might be curious to know <a href="https://firepress.org/en/how-do-we-update-hundreds-of-ghosts-websites-on-docker-swarm/">How do we update hundreds of Ghost's websites on Docker Swarm?</a></p><h3 id="conclusion">Conclusion</h3><p>Finally, It's good to know we eat our own « Ghost food ». <a href="https://firepress.org/en/pricing/">Our payment system</a> is one built on a core Ghost functionality. In other words, we don't have a crazy fancy website that showcases things you can't do. At FirePress, what you see, is what you can do.</p><p>We can always <a href="https://firepress.org/en/pricing/">sign-up for your free trial here</a>. Let me know if you have other questions on <a href="https://twitter.com/askpascalandy">Twitter</a> or via our <a href="https://firepress.org/en/contact/">Contact page</a>.<br><br>Pascal Andy — Founder<br><a href="https://firepress.org/">https://firepress.org</a></p><p><em>One last thing… be careful when someone states “no other competitor can do X”. It’s probably not true :-p</em></p><figure class="kg-card kg-image-card"><img src="https://aws1.discourse-cdn.com/business4/uploads/ghost2/optimized/2X/c/c4dfbe59ca8eac5342e85a91b9be118c93071f3a_2_690x203.jpeg" class="kg-image" alt="8 reasons to host your Ghost website on FirePress"></figure>]]></content:encoded></item><item><title><![CDATA[Are there any limits on transactional emails ?]]></title><description><![CDATA[Your plan includes sending transactional emails (newsletter to your members) for the first 1000 emails sent/month. If you need to send more emails ...]]></description><link>https://firepress.org/en/are-there-any-limits-on-transactional-emails/</link><guid isPermaLink="false">6155d0e71b84da0007e35b9a</guid><category><![CDATA[Terms]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Thu, 30 Sep 2021 15:02:04 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2021/09/firepress-org-tag-terms-v1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2021/09/firepress-org-tag-terms-v1-1.jpg" alt="Are there any limits on transactional emails ?"><p>Yes. The reason is that sending transactional emails is not free. </p><p>Your plan includes sending transactional emails <em>(newsletter to your members)</em> for the first 1000 emails sent/month. If you need to send more emails, we will charge you 5$/month for every 2500 emails sent/month.</p><p>You might be aware that we use Mailgun to do so. See also: <a href="https://firepress.org/en/how-is-it-interconnected-firepress-ghost-mailgun-membership-stripe-payments/">How is it interconnected? (FirePress, Ghost, Mailgun, Membership, Stripe, Payments)</a></p>]]></content:encoded></item><item><title><![CDATA[How do we update hundreds of Ghost's websites on Docker Swarm?]]></title><description><![CDATA[Our clients care about their Ghost updates. In this post, we will reveal how we update for all Ghost sites. Under the hood, many updates happen all the time. We maintain our own Ghost's docker image. Check it out on our GitHub release page.]]></description><link>https://firepress.org/en/how-do-we-update-hundreds-of-ghosts-websites-on-docker-swarm/</link><guid isPermaLink="false">5d1e7f3bc85611000755f343</guid><category><![CDATA[Under the hood]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Thu, 27 May 2021 22:38:00 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2020/12/firepress-rg-tag-under-the-hood-v1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2020/12/firepress-rg-tag-under-the-hood-v1-1.jpg" alt="How do we update hundreds of Ghost's websites on Docker Swarm?"><p>Our clients care about their <strong>Ghost updates</strong>. In this post, we will reveal how we update for all Ghost sites. Under the hood, many updates happen all the time. We maintain our own Ghost's docker image. Check it out on our <a href="https://github.com/firepress-org/ghostfire/releases">GitHub release</a> page.</p><p>At high level, we manage the <strong>backend</strong> for our clients. Our whole cluster runs on top of the public cloud, Linux OS, Docker Swarm, orchestrated services (containers), CI/CD, zero-downtime deployments and many other <a href="https://firepress.org/en/how-we-update-hundreds-of-ghosts-websites-on-docker-swarm/">DevOps best-practices</a>.</p><p><strong>DevOps best practices</strong> are essential to us. Many checkpoints ensure our Ghost sites run smoothly.</p><!--kg-card-begin: markdown--><p><a id="ghost-updates"></a></p>
<!--kg-card-end: markdown--><h2 id="ghost-updates">Ghost updates</h2><p>Now let's talk about the way we update Ghost for our clients. <strong>We usually wait 1-2 weeks</strong> before applying updates to our Ghost sites (and all our software packages really).</p><p>Here is <a href="https://github.com/TryGhost/Ghost/issues/10482#issuecomment-462906913">an example</a> showing why we don't automatically update Ghost as soon as it's released. This way, as a community, we can catch any emergency bugs that could emerge.</p><!--kg-card-begin: markdown--><p><a id="ci-cd"></a></p>
<!--kg-card-end: markdown--><h2 id="ci-cd">CI/CD</h2><p>We take <strong>Continuous Integration</strong> and <strong>Continuous Deployment</strong> very seriously at FirePress. Only if you are curious to see what is happening with our Ghost builds, you can follow our Ghost builds here:<br><a href="https://github.com/firepress-org/ghostfire/actions/workflows/build.yml">github.com/firepress-org/ghostfire/actions/workflows/build.yml</a></p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://firepress.org/en/content/images/2021/05/Screen-Shot-2021-05-28-at-4.09.36-PM.jpg" class="kg-image" alt="How do we update hundreds of Ghost's websites on Docker Swarm?"></figure><p>The <code>master branch</code> is probably the one you want to watch as it's the build your website will run on.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/firepress-org/ghostfire/actions/workflows/build.yml"><div class="kg-bookmark-content"><div class="kg-bookmark-title">firepress-org/ghostfire</div><div class="kg-bookmark-description">Docker image 🐳 for Ghost V3.x.x. This docker image is used on FirePress.org and play-with-ghost.com - firepress-org/ghostfire</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/favicons/favicon.svg" alt="How do we update hundreds of Ghost's websites on Docker Swarm?"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">firepress-org</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://repository-images.githubusercontent.com/131502775/4b411e00-c031-11e9-9f3a-fbdcc97713d5" alt="How do we update hundreds of Ghost's websites on Docker Swarm?"></div></a></figure><h2 id="best-practices">Best practices</h2><p>This is how we carefully push every one of the Ghost updates. We use three kinds of <strong>tags</strong>:</p><ol><li>site <strong>edge</strong></li><li>site <strong>stable</strong></li><li>site <strong>stable-hash</strong> (client's site)</li></ol><p>It goes like this:</p><ol><li>We use a repeatable <a href="https://github.com/firepress-org/ghostfire/blob/master/Dockerfile">Dockerfile declaration</a> that executes everything that needs to happen to have a perfect installation of the software. No manual mistake can happen here as the Dockerfile contains the OS, libraries and the Ghost app<a href="https://firepress.org/en/faq/#what-is-ghost">.</a></li><li>A commit happens via Github. A webhook builds the docker image <strong>edge</strong> using Travis in a <strong>CI</strong> <em>(continuous integration)</em> system using the <strong>edge</strong> branch.</li><li>Within the <strong>CI</strong>, the system executes many tests. You can see <a href="https://travis-ci.org/firepress-org/ghostfire/jobs/489601142#L593">one of them here</a>. When the build is successful, the system tag this docker image as devmtl/ghostfire:<strong>edge</strong>.  <em>If something fails, everything stops at this point, and we receive an email saying something has failed.</em></li><li>In our PROD environment, our CD <em>(continuous deployment) </em>checks every minute if a new <strong>edge</strong> image is available on the Dockerhub. This is almost magic! This applies only for the site <em>edgetest.firepress.org (fake site, this is only to help you understand the concept)</em></li><li>We manually surf on <em>edgetest.firepress.org </em>. If we can navigate the site normally we consider the docker image <strong>edge</strong> as "passed. <em>In the future, we might automate this part as well. Follow <a href="https://github.com/firepress-org/ghostfire/issues/13">this issue</a> for all details.</em></li><li>A commit happens via Github. A webhook builds the docker image <strong>stable</strong> using Travis in a <strong>CI</strong> (continuous integration) system using the <strong>stable</strong> branch.</li><li>Within the <strong>CI</strong>, the system executes many tests. You can see <a href="https://travis-ci.org/firepress-org/ghostfire/jobs/489601142#L593">one of them here</a>. When the build is successful, the system tag two specific tags: devmtl/ghostfire:<strong>stable</strong> and devmtl/ghostfire:<strong>stable-hash</strong>. <em>If something fails, everything stops at this point, and we receive an email saying something has failed.</em></li><li>In our PROD environment, our CD <em>(continuous deployment) </em>checks every minute if a new <strong>stable</strong> image is available on Docker hub. It is still magical! This applies only for the site <em>edgestable.firepress.org (fake site, this is only to help to reader understand the concept)</em></li><li>We manually surf on <em>stabletest.firepress.org </em>. If we can navigate the site normally we consider the docker image <strong>stable</strong> as "passed. <em>In the future, we might automate this part as well. Follow <a href="https://github.com/firepress-org/ghostfire/issues/13">this issue</a> for all details.</em></li></ol><h2 id="now-all-our-tests-are-passed-">Now all our tests are passed!</h2><ol><li>We are now ready to update all our client's sites using the Docker image devmtl/<strong>ghostfire:stable-hash</strong>.</li><li>We need to understand that the tags devmtl/<strong>ghostfire:stable and </strong>devmtl/<strong>ghostfire:stable-hash </strong>are actually the same docker image. This make our CD process so easy.</li><li>We update a configuration that specifies a tag (devmtl/<strong>ghostfire:stable-hash</strong>) that every site must run on. For a real-world example: <a href="https://api.travis-ci.org/v3/job/544570482/log.txt">see at the end</a> of this log file and you will find: <code>devmtl/ghostfire:2.23.3-30da41f</code></li><li>We commit the fact that every Ghost site must now run <code>devmtl/ghostfire:2.23.3-30da41f</code></li><li>We launch the command which is a <strong>rolling update </strong>from the previous docker image to the newest one (<code>devmtl/ghostfire:2.23.3-30da41f</code>). This means <strong>zero downtime</strong>. Not even one second down.</li><li>If something is failing, it's probably not related to the docker container. It might be a network issue, a proxy issue, a load balancer issue, or something else.</li></ol><p>Below, is a screenshot of three sites running in our cluster:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://firepress.org/en/content/images/2019/06/best-practice.jpg" class="kg-image" alt="How do we update hundreds of Ghost's websites on Docker Swarm?"></figure><h2 id="our-cluster">Our cluster</h2><ul><li>There is no staging cluster. The staging is done in Github Action CI. We only have "staging sites" (<strong>edge, stable</strong>) along with all other sites we manage in the cluster.</li><li>Our main cluster lives in New-York on top of one of the big Cloud providers.</li><li>In the future, we might run two clusters in two regions. Per example, one in New-York and the other in Amsterdam. This will depend on our client's location. Fortunately, this is not a challenge at the moment as our sites run behind a powerful <a href="https://www.cloudflare.com/learning/cdn/what-is-a-cdn/">CDN</a> powered by Cloudflare.</li></ul><h2 id="conclusion">Conclusion</h2><p>You can see how we do everything we can to avoid human errors and to ensure that you are always running a fresh build.</p><p>It's good to understand that we never update the existing docker image. We always build a new one from scratch. This way, all patches and security fixes are applied onto your Ghost site during every update.</p><p>Cheers!<br>Pascal — FirePress Team 🔥📰</p>]]></content:encoded></item><item><title><![CDATA[How to run bash scripts like a crontab for Mac? (Big Sur)]]></title><description><![CDATA[The trick is there is no crontab on mac since 6-7 years. You must use launchctl. If you are confortable running cronjob on linux]]></description><link>https://firepress.org/en/how-to-run-bash-scripts-like-a-crontab-for-mac-big-sur/</link><guid isPermaLink="false">60898282a41a38000772a278</guid><category><![CDATA[Under the hood]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Wed, 28 Apr 2021 15:49:24 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2021/04/firepress-rg-tag-under-the-hood-v1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2021/04/firepress-rg-tag-under-the-hood-v1.jpg" alt="How to run bash scripts like a crontab for Mac? (Big Sur)"><p>The trick is... there is no crontab on Mac since 6-7 years. You must use <code>launchctl</code> to schedule a "cron job".</p><p>In my case, I simply want to run a <strong>bash script</strong> for my local backup. I guess that if you are confortable running cron jobs on Linux, you will be at home with these instructions.</p><h3 id="how-to">How To</h3><pre><code>launchctl unload ~/Library/LaunchAgents/com.pascalandy.macbackup.plist

cd ~/Library/LaunchAgents
nano com.pascalandy.macbackup.plist

&lt;INSERT XML CODE BELOW&gt;
&lt;SAVE AND QUIT NANO&gt;

launchctl load ~/Library/LaunchAgents/com.pascalandy.macbackup.plist
launchctl list | grep 'pascalandy'
</code></pre><h3 id="code-example">Code example</h3><pre><code class="language-xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
    &lt;dict&gt;

        &lt;key&gt;Label&lt;/key&gt;
        &lt;string&gt;com.pascalandy.macbackup&lt;/string&gt;

        &lt;key&gt;ProgramArguments&lt;/key&gt;
        &lt;array&gt;
            &lt;string&gt;/bin/bash&lt;/string&gt;
            &lt;string&gt;/Volumesxyz/pascalandy/macbkp/runup.sh&lt;/string&gt;
        &lt;/array&gt;

        &lt;key&gt;LowPriorityIO&lt;/key&gt;
        &lt;true/&gt;

        &lt;key&gt;Nice&lt;/key&gt;
        &lt;integer&gt;1&lt;/integer&gt;

        &lt;key&gt;StartCalendarInterval&lt;/key&gt;
        &lt;dict&gt;
            &lt;key&gt;Hour&lt;/key&gt;
            &lt;integer&gt;11&lt;/integer&gt;
            &lt;key&gt;Minute&lt;/key&gt;
            &lt;integer&gt;39&lt;/integer&gt;
        &lt;/dict&gt;

    &lt;/dict&gt;
&lt;/plist&gt;
</code></pre><p><em>(XML format)</em></p><h3 id="sources">Sources</h3><p>If you need more blabla, there you go :)</p><ul><li>https://alvinalexander.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs/</li><li>https://thejandroman.wordpress.com/2013/02/13/introduction-to-launchd/</li><li>https://www.launchd.info/</li><li><a href="https://firepress.org/en/how-to-run-bash-scripts-like-a-crontab-for-mac-big-sur/">https://firepress.org/en/how-to-run-bash-scripts-like-a-crontab-for-mac-big-sur/</a></li></ul>]]></content:encoded></item><item><title><![CDATA[How to change your NS (NameServers) records on namecheap.com]]></title><description><![CDATA[<p><strong>The right way </strong>is to go to your Namecheap account, click on manage next to your domain. In the domains tab, navigate to NameServers section and you need to select <strong>Custom DNS</strong> on the main page and add the NameServers.</p><p>Use the <a href="https://firepress.org/en/how-to-update-your-nameservers-from-your-domain-registrar-to-point-them-to-cloudflare/">two NameServers used at FirePress</a> in the dotted</p>]]></description><link>https://firepress.org/en/how-to-change-your-ns-nameservers-records-on-namecheap-com/</link><guid isPermaLink="false">606da679fbc57700073de19d</guid><category><![CDATA[How To]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Wed, 07 Apr 2021 12:34:24 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2021/04/firepressorg-tag-how-to-v2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2021/04/firepressorg-tag-how-to-v2.jpg" alt="How to change your NS (NameServers) records on namecheap.com"><p><strong>The right way </strong>is to go to your Namecheap account, click on manage next to your domain. In the domains tab, navigate to NameServers section and you need to select <strong>Custom DNS</strong> on the main page and add the NameServers.</p><p>Use the <a href="https://firepress.org/en/how-to-update-your-nameservers-from-your-domain-registrar-to-point-them-to-cloudflare/">two NameServers used at FirePress</a> in the dotted lines and click on the green tick to save the changes.</p><p><em><strong>Avoid this mistake!</strong><br>When you go to the Advanced DNS section on Namecheap you can only add NameServers for a subdomain and not the bare domain.</em></p>]]></content:encoded></item><item><title><![CDATA[How is it interconnected? (FirePress, Ghost, Mailgun, Membership, Stripe, Payments)]]></title><description><![CDATA[In March 2021, Ghost v4.0 was finally released. It's an eight years old platform build on top of Node JS. You got so much out of it.]]></description><link>https://firepress.org/en/how-is-it-interconnected-firepress-ghost-mailgun-membership-stripe-payments/</link><guid isPermaLink="false">605e0b594cf1710008ba6bf0</guid><category><![CDATA[Article]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Fri, 26 Mar 2021 16:30:36 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2021/03/firepress-org-tag-article-v1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2021/03/firepress-org-tag-article-v1.jpg" alt="How is it interconnected? (FirePress, Ghost, Mailgun, Membership, Stripe, Payments)"><p>In March 2021, Ghost v4.0 was finally released. It's an eight years old platform build on top of Node JS. You got so much out of it:</p><ul><li>the best <strong>CMS</strong>/blog</li><li>a <strong>membership</strong> 0% fees based on @stripe (recurring revenues). In other words, FirePress doesn't take a commission on top of it. Only Stripe fees apply</li><li>a great<strong> newsletter</strong> platform to send emails to your members</li><li>a blazing-fast website</li><li>a great theme selection</li></ul><h2 id="how-does-it-work-together">How does it Work Together?</h2><ul><li><strong>Ghost</strong> is the core software to manage your website.</li><li>We at <strong>FirePress</strong> manages your Ghost installation for you. It's a fully managed service. We are your hosting company.</li><li><strong>Mailgun</strong> to send <strong>transactional emails</strong> (newsletter) from Ghost via an API. Those emails are sent to your members. It's managed by FirePress. To see what's included in your plan: <a href="https://firepress.org/en/are-there-any-limits-on-transactional-emails/">Are there any limits on transactional emails?</a></li><li>The <strong>memberships</strong> are managed within Ghost. You can configure three subscription plans within Ghost: Free, Monthly, Yearly payments. The limitation is that you can have only one plan for a monthly subscription AND only one plan for a yearly subscription. In other words. you can't have a "basic", "regular", "premium" plans. This is not made to sell products but subscriptions.</li><li><strong>Stripe</strong> is the <strong>payment</strong> gateway between your clients and your subscription plans. You will need a Stripe account. Then, you must link your Stripe account with Ghost. There is nothing technical here, it's a simple configuration :)</li></ul>]]></content:encoded></item><item><title><![CDATA[Adding a homepage in front of your Ghost website]]></title><description><![CDATA[Having a homepage is optional, but it's a powerful feature. It's the default page your visitors will come across. An homepage is sometimes referred to as a landing page]]></description><link>https://firepress.org/en/adding-a-homepage-in-front-of-your-ghost-website/</link><guid isPermaLink="false">5bfc715d21198c0007a56cee</guid><category><![CDATA[How To]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Thu, 18 Mar 2021 21:15:00 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2020/12/firepressorg-tag-how-to-v2-35.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2020/12/firepressorg-tag-how-to-v2-35.jpg" alt="Adding a homepage in front of your Ghost website"><p>Having a homepage is optional, but it's a powerful feature. It's the default page your visitors will come across. An homepage is sometimes referred to as a <em>landing page</em>, a <em>splash page</em>, as a <em>static page</em> or as a <em>lead page</em>.</p><!--kg-card-begin: markdown--><p><a id="structure"></a></p>
<!--kg-card-end: markdown--><h3 id="structure">Structure</h3><p>A homepage is the best way to focus the user's experience and guide your visitors into a specific part of your website, which is managed by Ghost. Its design can be totally different than the pages managed by Ghost. Two examples:</p><!--kg-card-begin: markdown--><p><a id="example"></a></p>
<!--kg-card-end: markdown--><p><strong>Your domain structure</strong> could look like this:</p><!--kg-card-begin: markdown--><pre><code>pascalandy.com/ (custom homepage)
pascalandy.com/blog/ (ghost)
</code></pre>
<!--kg-card-end: markdown--><p><strong>Another way of seeing it</strong> is to say :</p><ul><li>the homepage (pascalandy.com) lives under <strong>root</strong> <code>/</code></li><li>the <code>/blog</code> lives under a <strong>subdirectory</strong></li></ul><p><strong>Or, if you prefer</strong>, you could set up your domain this way as well:</p><!--kg-card-begin: markdown--><pre><code>juliaburns.com/ (custom homepage)
blog.juliaburns.com/ (ghost)
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><a id="designer"></a></p>
<!--kg-card-end: markdown--><h3 id="you-are-the-designer">You are the designer</h3><p>You have to be aware that <strong>you are responsible to design your custom homepage</strong> (HTML, CSS, JS). As the owner of your website, you can use any static page you want. You could download <a href="https://github.com/BlackrockDigital/startbootstrap-new-age">this landing page</a>, tweak it and host it <em>in front</em> of your Ghost website. FirePress is not a website builder after all.</p><p>In the future, we might offer templates that are easy to customize, but we can't provide a timeline at the moment.</p><!--kg-card-begin: markdown--><p><a id="pricing"></a></p>
<!--kg-card-end: markdown--><h3 id="pricing">Pricing</h3><p>The cost of hosting a custom homepage is only <strong>90$ per year.</strong></p><p>You must have an <a href="https://firepress.org/en/pricing/">active plan for Ghost</a> with us prior to adding a homepage in front of your Ghost's website. If you only want a homepage on FirePress, we will charge you the same price as our <a href="https://firepress.org/en/pricing/">Ghost yearly plan</a>.</p><p>Don't hesitate to <a href="https://firepress.org/en/contact/">contact us</a> for more details.</p><!--kg-card-begin: markdown--><p><a id="how"></a></p>
<!--kg-card-end: markdown--><h1 id="how-does-it-work">How does it work?</h1><p>You have two options:</p><ol><li>Using Git </li><li>Send us a zip file</li></ol><!--kg-card-begin: markdown--><p><a id="git"></a></p>
<!--kg-card-end: markdown--><h3 id="1-workflow-option-using-git">1. Workflow option using Git</h3><p>We assume you can do basic git commits in a GitHub repo. All the configurations are fully managed by FirePress.</p><p><strong>Here is what you get</strong> when you sign-up for our homepage plan:</p><ul><li>FirePress will create a new private repo. This is where you will host the code for your homepage.</li><li>The URL will look like <a href="https://github.com/firepress-org/%5BYOUR_SITE%5D">https://github.com/firepress-org/[YOUR_SITE]</a></li><li>Send us a quick email (at <a>relations@firepress.org</a>) and tell us which email you are using on GitHub. We will add you to this git repo.</li><li>From now on, you will work on this repo to do any updates on your homepage.</li><li>Every commits made on the <code>master</code> branch will be deployed on your homepage thank to the CI/CD. This means that on every commits, the system will push your code the your website.</li><li>You will see all the details on each builds! Check this out as an example: <a href="https://github.com/firepress-org/ghostfire/actions/workflows/build.yml">https://github.com/firepress-org/ghostfire/actions/workflows/build.yml</a></li><li>Updates are applied to your homepage</li></ul><p><strong>Rules we must agree with</strong>:</p><ul><li>Your homepage's code (i.e. HTML/CSS/JS) must be under the <code>/public</code> directory.</li><li>Your homepage file must be named <code>/index.html</code> directory.</li><li>Don't update/modify/delete branch <code>edge</code> because it's reserved to FirePress folks.</li><li>Yes, you can invite other people like freelancers. Send us a quick email (at <a>relations@firepress.org</a>) and tell us which email this person is using on GitHub. We will add him/her to this git repo.</li><li>On this plan, we host pure HTML/CSS/JS sites. If your site needs a specific framework like NodeJS or PHP, please contact us.</li></ul><p><strong>Best practice</strong>:</p><p>You should work on a "dev" branch while you code. Merge to <code>master</code> only when your code is production-ready.</p><!--kg-card-begin: markdown--><p><a id="zip"></a></p>
<!--kg-card-end: markdown--><h3 id="2-workflow-option-using-a-zip-file">2. Workflow option using a Zip file</h3><p>If you simply want to send us a zip file once in a while, it's fine too :-p</p><!--kg-card-begin: markdown--><p><a id="staging"></a></p>
<!--kg-card-end: markdown--><h2 id="staging-site">Staging site</h2><p>You might consider having a <strong>staging</strong> site at your disposal. For example, you can commit to branch <code>staging</code> and see the results of your work at <code>stg.example.com</code></p><p>A) For which instance(s) do you need a staging site?</p><ul><li>Your <strong>homepage</strong> and/or<strong> </strong>your <strong>Ghost</strong> instance?</li></ul><p>B) Which domain URL structure do you want?</p><p>In <strong>Production</strong>, you could have something like:</p><ul><li><code>example.com/</code> (homepage prod)</li><li><code>example.com/news/</code> (Ghost prod)</li></ul><p>In <strong>Staging</strong>, you could have something like:</p><ul><li><code>stg.example.com/</code> (Homepage staging)</li><li><code>stg.example.com/news/</code>(Ghost staging)</li></ul><p>Regarding <strong>pricing</strong>, we will simply add more plans (homepage, Ghost) for each staging site required.</p>]]></content:encoded></item><item><title><![CDATA[Refund policy]]></title><description><![CDATA[We offer a risk free 30 day money back guarantee, in the case you change your mind.]]></description><link>https://firepress.org/en/refund-policy/</link><guid isPermaLink="false">5bfc715d21198c0007a56cf2</guid><category><![CDATA[Terms]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Wed, 03 Mar 2021 03:59:00 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2020/12/firepress-org-tag-terms-v1-2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2020/12/firepress-org-tag-terms-v1-2.jpg" alt="Refund policy"><p>If for any reason you would like to cancel your plan, we will respect your decision. No nasty lock-in at FirePress. We refund a ratio over the period which is calculated in weeks. Here are the refund's conditions:</p><ul><li>We will keep the equivalent of <strong>twelve</strong> hosting weeks for<strong> management fees</strong>. This includes the credit card fees.</li><li>If your <strong>domain</strong> was bought by FirePress, we will subtract the cost-related.</li><li>If your <strong>domain</strong> was set up and managed by FirePress, we will charge you a <strong>$35 fee to set up a transfer</strong> to another registrar or each time we have to point the domain to another server.</li></ul><h3 id="calculation-example">Calculation example</h3><p>In this example, we would refund $<strong>51.15</strong> after hosting your site for <strong>26 weeks:</strong></p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th style="text-align:left"></th>
<th style="text-align:right"></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">Fixed fees</td>
<td style="text-align:right">12w</td>
</tr>
<tr>
<td style="text-align:left">Utilization</td>
<td style="text-align:right">26w</td>
</tr>
<tr>
<td style="text-align:left">Ratio</td>
<td style="text-align:right">$190 - ($190 * ((12w + 26w) / 52w)) = $51.15</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><h3 id="refund-table">Refund Table</h3><figure class="kg-card kg-image-card"><img src="https://firepress.org/en/content/images/2021/04/refund.jpg" class="kg-image" alt="Refund policy"></figure>]]></content:encoded></item><item><title><![CDATA[Changelog for Ghost]]></title><description><![CDATA[This is a friendly changelog page to follow the new features for Ghost updates. It's an abstract from the releases found on Github.]]></description><link>https://firepress.org/en/changelog-for-ghost/</link><guid isPermaLink="false">5fd043aa9056cf0007df3c4d</guid><category><![CDATA[Article]]></category><dc:creator><![CDATA[FirePress Team]]></dc:creator><pubDate>Wed, 09 Dec 2020 14:25:55 GMT</pubDate><media:content url="https://firepress.org/en/content/images/2020/12/firepress-rg-tag-under-the-hood-v1-12.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://firepress.org/en/content/images/2020/12/firepress-rg-tag-under-the-hood-v1-12.jpg" alt="Changelog for Ghost"><p>This <strong>CHANGELOG</strong> tracks what you need to know regarding the Ghost updates. It focuses on new features visible for our clients at FirePress. It's an abstract from <a href="https://github.com/TryGhost/Ghost/releases">the releases</a> found on Github. </p><p>You might also be curious to know about our Docker image changelog <a href="https://github.com/firepress-org/ghostfire/blob/master/CHANGELOG.md">here</a>. In the screenshot below, you see that our  Docker images for Ghost are rebuilt every day. It's these images that run your Ghost site. Refer to <a href="https://firepress.org/en/how-do-we-update-hundreds-of-ghosts-websites-on-docker-swarm/">How do we update hundreds of Ghost's websites on Docker Swarm?</a> for more details.</p><figure class="kg-card kg-image-card"><img src="https://firepress.org/en/content/images/2021/05/117327756-f5458700-ae60-11eb-8174-a1de1163ef21.jpg" class="kg-image" alt="Changelog for Ghost"></figure><h3 id="4-6-4"><a href="https://github.com/firepress-org/ghostfire/releases/tag/4.6.4">4.6.4</a></h3><p><strong>Updated</strong>: 2021-05-28</p><ul><li>✨ Added error message from limit service to theme upload</li><li>✨ Simplified management of membership settings</li><li>✨ Reverted ability to set post access level to labels</li><li>✨ Added custom product settings and multiple price support</li><li>✨ Added support for gating content by member labels and products</li><li>✨ Added label and product options for email recipients</li><li>✨ Added ability to send a newsletter to members with a certain label or product</li><li>✨ Added default newsletter recipients setting</li><li>✨ Added <code>@site.signup_url</code> data property for themes</li><li>✨ Added option to disable member subscriptions</li><li>🔒 Added a way to hide the secret settings once they are set</li><li><a href="https://gist.github.com/pascalandy/6c55b08a0a4ec0fae9c896937da0e720">logs</a></li></ul><h3 id="4-3-3-r3"><a href="https://github.com/firepress-org/ghostfire/releases/tag/4.3.3-r3">4.3.3-r3</a></h3><p><strong>Updated</strong>: 2021-05-06</p><ul><li>🔒 Removed unused and insecure preview endpoint</li><li>✨ Added ability to bulk delete members by label or status</li><li><a href="https://gist.github.com/pascalandy/4e58c65af1755293efe521136fa9fcfb">logs</a></li></ul><h3 id="3-41-x">3.41.x</h3><ul><li>✨ Added activity feed to member details screen</li><li>✨ Added new members CSV importer</li><li>✨ Added email stats overview to member details page</li><li>✨ Added open-rate column and ordering to the members list</li><li>✨ Added <code>email.open_rate</code> order option to posts api</li><li>✨ Added new FirstPromoter integration</li><li>✨ Updated newsletter design to use accent color</li></ul><h3 id="3-40-x">3.40.x</h3><ul><li>✨ Added activity feed to member details screen</li><li>✨ Added new members CSV importer</li><li>✨ Added email stats overview to member details page</li><li>✨ Added open-rate column and ordering to the members list</li></ul><h3 id="3-39-x">3.39.x</h3><ul><li>✨ Added email open rate to posts list in admin</li><li>✨ Added cancellation reason to Members UI</li><li>✨ Supported custom redirects for member signup</li><li>✨ Added new portal links for plan checkout</li></ul><h3 id="3-38-x">3.38.x</h3><ul><li>✨ Added newsletter design settings</li><li>✨ Allowed sending newsletter to free members only</li><li>✨ Added .yaml format support in redirects configuration</li></ul><h3 id="3-37-x">3.37.x</h3><ul><li>✨ Enabled Portal</li><li>✨ Added snippets feature to editor</li></ul><h3 id="3-36-x">3.36.x</h3><ul><li>✨ Added Ctrl/Cmd+P shortcut in editor to open preview in new tab</li></ul><h3 id="3-35-x">3.35.x</h3><ul><li>✨ Update Members to sync email changes with Stripe</li><li>✨ Added support for data-members-name in themes</li></ul><h3 id="3-34-x">3.34.x</h3><ul><li>✨ Added support for Stripe promo codes in config</li></ul><h3 id="3-33-x">3.33.x</h3><ul><li>✨ Added Location header to API's POST request responses</li></ul><h3 id="3-32-x">3.32.x</h3><ul><li>✨ Added new support and reply-to address for members</li></ul><h3 id="3-31-x">3.31.x</h3><ul><li>✨ Added subscription cancellation button to member page</li><li>✨ Added admin endpoint for editing member subscription</li></ul><h3 id="3-30-x">3.30.x</h3><ul><li>✨ Allowed Admin users to impersonate members</li></ul><h3 id="3-28-x">3.28.x</h3><ul><li>✨ Added Admin API v3 stable endpoint for webhooks</li></ul><h3 id="3-27-x">3.27.x</h3><ul><li>✨ Updated members deletion to optionally cancel Stripe subscriptions</li></ul><h3 id="3-26-x">3.26.x</h3><ul><li>✨ Added UI for AMP GA Tracking ID</li></ul><h3 id="3-25-x">3.25.x</h3><ul><li>✨ Added UI for setting tag metadata</li></ul><h3 id="3-24-x">3.24.x</h3><ul><li>🎨 New Google AMP template</li></ul><h3 id="3-22-x">3.22.x</h3><ul><li>✨ Switched on Stripe Connect by default</li></ul><h3 id="3-20-x">3.20.x</h3><ul><li>✨ Added INR currency support</li><li>✨ Added all/free/paid filter to members admin screen</li></ul><h3 id="3-19-x">3.19.x</h3><ul><li>✨ Added responsive-image srcset attribute to image and gallery card output</li><li>✨ Added access level filter to posts and pages lists in admin</li><li>✨ Allowed domain change for members "from" address</li><li>✨ Switched per-user custom views to shared custom views</li></ul><h3 id="3-18-x">3.18.x</h3><ul><li>✨ Improved performance of members admin screens</li><li>✨ Added ?search= param to Admin API members endpoint</li></ul><h3 id="3-17">3.17</h3><ul><li>✨ Added Admin API endpoint for basic member stats</li></ul><h3 id="3-16-x">3.16.x</h3><ul><li>✨ Added success indicator for members magic links</li></ul><h3 id="3-15-x">3.15.x</h3><ul><li>✨ Improved password reset and session invalidation for "locked" users</li><li>✨ Added regenerate button to integration api keys</li><li>✨ Improved display of video embed cards in member emails</li></ul><h3 id="3-14-x">3.14.x</h3><ul><li>✨ Added "Email" card for inserting content that only appears when emailing posts to members</li><li>✨ Added description and logo to admin/site endpoint</li></ul><h3 id="3-10-x">3.10.x</h3><ul><li>✨ Added custom currency support for Member's plans</li></ul><h3 id="3-9-x">3.9.x</h3><ul><li>✨ Added member's geographic location to admin</li><li>✨ Added capture of geolocation during member signup</li><li>✨ Added member impersonation</li><li>✨ Added handling allowing members to edit their billing info</li></ul><h3 id="3-8-">3.8.</h3><ul><li>✨ Added member.avatar_image for member gravatars in themes</li></ul><h3 id="3-6-x">3.6.x</h3><ul><li>✨Added labels for Members</li></ul><h3 id="3-5-x">3.5.x</h3><ul><li>✨ Added new fields to members CSV import</li><li>✨ Added default and custom post views (filters) to the admin sidebar</li><li>💄Added shadow to What's new footer</li></ul><h3 id="3-4-x">3.4.x</h3><ul><li>✨ Added ability to give members complimentary subscriptions</li><li>✨ Added {{price}} helper for formatting stripe amounts</li></ul><h3 id="3-3-x">3.3.x</h3><ul><li>✨ Enabled manual typing of post publish dates</li><li>✨ Allowed pages to accept HTML as a source</li></ul><h3 id="3-2-x">3.2.x</h3><ul><li>✨ Added members growth chart</li><li>✨ Added member's subscription cancellation helper {{cancel_link}}</li></ul><h3 id="3-1-x">3.1.x</h3><ul><li>✨ Added the ability to email posts to all subscribed members when publishing</li><li>✨ Added support for secondary navigation</li><li>✨ Improved adding first members on no-members screen</li><li>✨ Added member "add" screen</li><li>✨ Added Secondary Navigation</li></ul><h3 id="3-0-x">3.0.x</h3><ul><li>✨ Added members + subscriptions labs feature</li><li>✨ Added v3 Content and Admin APIs</li><li>🔒 Fully separated front-end and admin when a separate admin URL is configured</li><li>🔒 Added admin:redirects config option for disabling admin redirects</li><li>✨ Added no-image class to content w/o feature_image</li><li>✨ Added member.edited webhook</li><li>✨ Added member.deleted webhook</li></ul><h3 id="2-x-x">2.X.X</h3><ul><li>For earlier versions <a href="https://github.com/TryGhost/Ghost/releases?after=2.37.0">see releases on GitHub</a></li></ul>]]></content:encoded></item></channel></rss>