# Magic Pages
> Get your Ghost CMS publication up and running in no time with Magic Pages' Ghost CMS web hosting – starting at EUR 13.00/month!
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
### Legal Disclosure in accordance with §5 (1) ECG, § 25 MedienG, § 63 GewO und § 14 UGB
URL: https://www.magicpages.co/legal/
Last updated: 2024-06-17T08:23:25.000Z
**Website operator**: Jannis Fedoruk-Betschki
**Address**: Wiesingerstraße 2, 4820 Bad Ischl
**VAT Identification**: ATU80756629
## Contact details:
Email: help@magicpages.co
Applicable legislation: [www.ris.bka.gv.at ](https://www.ris.bka.gv.at/?ref=magicpages.co)Professional title: web designer and internet services
## Online dispute resolution
Consumers who are established in Austria or in another contracting state of the ODR-VO have the possibility to solve problems regarding the purchase of goods or services against payment within the framework of an online dispute resolution (according to OS, AStG). The European Commission provides a platform for this purpose: [https://ec.europa.eu/consumers/odr](https://ec.europa.eu/consumers/odr?ref=magicpages.co)
## Copyright
The contents of this website are, as far as legally possible, subject to various intellectual property rights (e.g. copyright). Any use/distribution of material provided that is prohibited by copyright law requires the written consent of the website operator.
## Disclaimer
Despite careful checking of the content, the website operator of this website accepts no liability for the content of external links. The operators of the linked pages are solely responsible for their content. Should you nevertheless become aware of outgoing links that refer to a website with illegal activity/information, we request that you inform us accordingly so that we can remove them immediately in accordance with § 17 Para. 2 ECG.
The copyrights of third parties are protected by the operator of this website with the utmost respect.
## Source
This legal disclosure has been generated in cooperation with [Rechtsanwalt Arbeitsrecht](https://www.ortner-rechtsanwalt.at/rechtsanwalt-fuer-arbeitsrecht//?ref=magicpages.co) and translated with [deepl.com](https://www.deepl.com/Translator?ref=magicpages.co).
### Privacy Policy
URL: https://www.magicpages.co/privacy/
Last updated: 2026-05-31T09:53:43.000Z
We want to be transparent about how we handle your data. This privacy policy explains what information we collect, why we collect it, and what your rights are. We've tried to keep this readable and honest – no walls of legalese.
This policy applies to our website at magicpages.co and the Magic Pages hosting service.
**Last updated**: 31 May 2026
## Who We Are
Magic Pages is operated by:
**Jannis Fedoruk-Betschki**
"Magic Pages"
Wiesingerstraße 2
4820 Bad Ischl
Austria
Email: [help@magicpages.co](mailto:help@magicpages.co)
We are the data controller for the personal data described in this policy, as defined by the EU General Data Protection Regulation (GDPR) and the Austrian Data Protection Act (Datenschutzgesetz, DSG).
## What Data We Collect and Why
### When You Visit Our Website
When you browse magicpages.co, we collect basic usage data through [**Rybbit**](https://github.com/rybbit-io/rybbit?ref=magicpages.co), a self-hosted, privacy-focused analytics tool running on our own infrastructure. This means your analytics data never leaves our servers and is not shared with any third party. Rybbit does not use cookies and does not collect personally identifiable information. We use this data to understand how our website is used and to improve it.
Our website is served through [**Cloudflare**](https://www.cloudflare.com/?ref=magicpages.co), which acts as our DNS provider and content delivery network (CDN). Cloudflare may process technical data such as your IP address and request metadata to deliver the website to you and to protect against malicious traffic. This processing is necessary for our legitimate interest in operating a secure and performant website. For details, see [Cloudflare's privacy policy](https://www.cloudflare.com/privacypolicy/?ref=magicpages.co).
### When You Subscribe to Our Newsletter
If you sign up for our newsletter through the built-in Ghost membership feature, we collect your **email address and name**. We use [**Mailgun**](https://www.mailgun.com/?ref=magicpages.co) as our email delivery service to send newsletters and transactional emails. Your email address is shared with Mailgun solely for the purpose of delivering these emails. For details, see [Mailgun's privacy policy](https://www.mailgun.com/legal/privacy-policy/?ref=magicpages.co).
Legal basis: Your consent (Art. 6(1)(a) GDPR). You can unsubscribe at any time using the link in every email.
### When You Create an Account and Use Our Service
When you sign up for Magic Pages, we collect your **email address and name**.
When you subscribe to a paid plan, payments are processed by [**Paddle**](https://paddle.com/?ref=magicpages.co), our merchant of record. Paddle collects the data necessary to process your payment directly, which may include your name, billing address, payment information, VAT number, and other details required for the transaction. We do not store your payment details. Paddle handles this as an independent data controller. For details, see [Paddle's privacy policy](https://www.paddle.com/legal/privacy?ref=magicpages.co).
We use **Retain by ProfitWell** (a product offered by Paddle) to analyse subscription metrics such as churn and revenue. This service processes your email address, a user identifier, and usage data to help us understand and improve our business.
Legal basis: Performance of our contract with you (Art. 6(1)(b) GDPR), and our legitimate interest in operating and improving our service (Art. 6(1)(f) GDPR).
### User-Configured Backup Destinations
Magic Pages offers optional backup delivery to storage services you configure, including cloud storage providers such as Google Drive, OneDrive, and Dropbox via OAuth, and custom destinations such as SFTP or S3-compatible storage.
These integrations are entirely optional and only run when you choose to set them up. If you configure a backup destination, we store the necessary OAuth tokens or credentials on our infrastructure in encrypted form. We use them only to deliver backup archives to the location you specify. We do not use these credentials or tokens to access, analyse, modify, or share your files for any other purpose.
Backup archives may contain your website content, configuration, media, database exports, member data, and other data needed to restore your site. We may also process operational backup metadata, such as the configured destination type, backup time, delivery status, and error information, so we can operate and troubleshoot the backup feature.
Once a backup archive is delivered to your chosen destination, that service's own privacy policy and terms apply, such as [Google's privacy policy](https://policies.google.com/privacy?ref=magicpages.co), [Microsoft's privacy statement](https://privacy.microsoft.com/privacystatement?ref=magicpages.co), or [Dropbox's privacy policy](https://www.dropbox.com/privacy?ref=magicpages.co). Magic Pages does not control how your chosen storage provider handles data after delivery. If your chosen destination is located outside the EU/EEA, you are directing that transfer by configuring the destination.
You can remove a configured backup destination at any time in your account settings. This deletes the stored credentials or tokens and stops future transfers to that destination.
Legal basis: Performance of our contract with you (Art. 6(1)(b) GDPR).
### When You Come Through Our Affiliate Program
We use [**Partnero**](https://www.partnero.com/?ref=magicpages.co) to run our affiliate program. If you arrive at our website through an affiliate link, Partnero may set a cookie to track the referral. This data is used to attribute sign-ups to the referring affiliate. For details, see [Partnero's privacy policy](https://partnero.com/privacy?ref=magicpages.co).
Legal basis: Our legitimate interest in running an affiliate program (Art. 6(1)(f) GDPR).
### When You Contact Us
If you email us or reach out via any other channel, we process the data you provide (typically your name and email address) to respond to your inquiry.
Legal basis: Our legitimate interest in responding to inquiries (Art. 6(1)(f) GDPR), or performance of a contract (Art. 6(1)(b) GDPR) if your inquiry relates to our service.
## Hosting and Infrastructure
Your data is hosted on servers provided by [**Hetzner Online GmbH**](https://www.hetzner.com/?ref=magicpages.co), located in the European Union. Hetzner acts as our data processor. For details, see [Hetzner's privacy policy](https://www.hetzner.com/legal/privacy-policy/?ref=magicpages.co).
## Cookies
We use a minimal number of cookies:
- **Essential cookies**: Ghost sets a session cookie when you log in as a member. This is necessary for the website to function and does not require consent.
- **Consent cookie**: Since we use a cookie consent banner, a cookie is stored to remember your consent preferences. This is also a necessary, functional cookie.
- **Affiliate tracking cookie**: Partnero may set a cookie when you arrive via an affiliate link.
We do not use advertising cookies. Our analytics tool (Rybbit) does not use cookies.
## Third-Party Services Overview
| Service | Purpose | Data Processed | Location |
| ------------------------------------------------------------------------------------------------------------ | ------------------------ | -------------------------------------------------------------------------------- | --------------------------------------- |
| Hetzner | Hosting & infrastructure | All service data | EU (Germany) |
| Cloudflare | DNS & CDN | IP address, request metadata | Global (EU-adequate) |
| Paddle | Payment processing | Billing & payment data | UK/EU |
| Mailgun | Email delivery | Email address | EU/US |
| Retain (ProfitWell) | Subscription analytics | Email, user ID, usage data | US |
| Partnero | Affiliate tracking | Referral & cookie data | EU |
| Rybbit | Website analytics | Anonymized usage data | Self-hosted (EU) |
| User-configured backup destinations, such as Google Drive, OneDrive, Dropbox, SFTP, or S3-compatible storage | Optional backup delivery | Backup archives, encrypted OAuth tokens or credentials, backup delivery metadata | User-defined; may be outside the EU/EEA |
Where data is transferred outside the EU/EEA, we rely on appropriate safeguards such as Standard Contractual Clauses (SCCs) or adequacy decisions by the European Commission. For user-configured backup destinations, the destination location depends on the service or server you choose.
## How Long We Keep Your Data
- **Account data**: For as long as your account is active, and for a reasonable period afterward to comply with legal obligations (such as tax and accounting requirements under Austrian law).
- **Email/newsletter data**: Until you unsubscribe.
- **Payment data**: Retained by Paddle in accordance with their retention policy and applicable tax laws.
- **Analytics data**: Rybbit data is aggregated and does not contain personal data.
- **Communication data**: Emails and support inquiries are kept for as long as necessary to resolve your request, and may be retained for a reasonable period for quality and legal purposes.
- **Backup destination credentials**: Stored only while the destination remains configured, and deleted when you remove the destination.
## Your Rights
Under the GDPR and the Austrian DSG, you have the following rights:
- **Access**: You can request a copy of the personal data we hold about you.
- **Rectification**: You can ask us to correct inaccurate data.
- **Erasure**: You can ask us to delete your personal data, subject to legal retention obligations.
- **Restriction**: You can ask us to restrict processing of your data in certain circumstances.
- **Data portability**: You can request your data in a structured, machine-readable format.
- **Objection**: You can object to processing based on legitimate interests.
- **Withdraw consent**: Where processing is based on your consent (e.g., newsletter), you can withdraw it at any time.
To exercise any of these rights, email us at [**help@magicpages.co**](mailto:help@magicpages.co). We will respond within 30 days.
If you believe your data protection rights have been violated, you have the right to lodge a complaint with the Austrian Data Protection Authority:
**Österreichische Datenschutzbehörde**
Barichgasse 40–42
1030 Vienna
Austria
[https://www.dsb.gv.at](https://www.dsb.gv.at/?ref=magicpages.co)
## Changes to This Policy
We may update this privacy policy from time to time. When we make significant changes, we will update the "Last updated" date at the top and, where appropriate, notify you by email. We encourage you to review this policy periodically.
## Questions?
If you have any questions about this privacy policy or how we handle your data, reach out to us at [**help@magicpages.co**](mailto:help@magicpages.co). We're happy to help.
### Terms & Conditions
URL: https://www.magicpages.co/terms/
Last updated: 2026-01-06T14:16:16.000Z
This page represents Magic Pages' Terms & Conditions. To use our services, you acknowledge this agreement between Magic Pages and you ("the Customer").
Magic Pages is legally represented as Jannis Fedoruk-Betschki, incorporated in Austria with its registered office at Wiesingerstraße 2, 4820 Bad Ischl.
References in this Agreement to "you" or "your" mean the Customer entering into this Agreement and any person who accesses or uses the Services (as defined below) by or through the account of the Customer.
This Agreement shall be governed by the laws of Austria.
## Services
Magic Pages shall provide hosting services ("the Services") comprising web hosting, server space, technical support and other infrastructure services necessary for the Customer to host one or more instances of the Ghost CMS software on Magic Pages' servers. The Customer shall be solely responsible for providing and maintaining any software, content or other materials on their hosted Ghost CMS instances.
Magic Pages shall use commercially reasonable efforts to ensure the Services have an uptime of at least 99% per calendar month. Magic Pages shall respond to support requests submitted by the Customer within one business day. Magic Pages shall maintain adequate backup and disaster recovery capabilities to protect Customer content from data loss.
The Customer shall provide accurate and truthful information during registration for the Services and update such information as needed to ensure its accuracy and truthfulness.
The Customer shall use the Services only in a manner that does not interfere with or disrupt the integrity or performance of the Services or third party data contained therein. The Customer shall not attempt to gain unauthorised access to the Services or their related systems or networks.
Magic Pages grants the Customer a limited, revocable, non-exclusive license to access and use the Services for the agreed upon purposes during the Subscription period.
The Customer shall not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information or software obtained from the Services, including any of the Ghost themes provided to them for exclusive use on the Magic Pages platform.
Magic Pages may make backup copies of the Customer's content as required for the technical functioning of the Services.
### Plans and Pricing
Magic Pages offers Services to the Customer on the basis of
- a lifetime plan, whereby "lifetime" refers to the operational lifetime of the Services, or
- monthly subscription plans, or
- yearly subscription plans.
No refunds shall be provided if a subscription is cancelled.
The Customer may purchase add-ons to the Services for an additional fee. All fees are non-refundable.
Magic Pages shall provide the Services to the Customer on a trial basis free of charge for the first 14 days.
### Restrictions on Use
The Services may only be used for standard website and blogging purposes. The Customer agrees not to use the Services for any illegal, harmful, fraudulent or infringing purpose or in violation of any applicable laws or third party rights. The Customer shall comply with all acceptable use policies of which it is notified by Magic Pages from time to time.
### Intellectual Property
Magic Pages retains ownership of all infrastructure, platforms, and other materials provided under the Services. The Customer retains ownership of all content, data, materials or other information uploaded to or stored as part of its hosted Ghost CMS instances. Ghost itself is a software released under the MIT software license.
Magic Pages may remove any content that infringes intellectual property rights of any third party upon receipt of a valid notice.
### Changes to Services
Magic Pages may update or modify the Services from time to time, provided it uses commercially reasonable efforts to provide advance notice to the Customer. Magic Pages may withdraw obsolete Services upon reasonable notice to the Customer. Major changes to the Services require one month's prior written notice to the Customer.
### Liability
Magic Pages shall not be liable in any way for any content uploaded or hosted by the Customer on their Ghost CMS instances. The Customer shall be solely liable for any illegal or infringing content.
## Acceptable Use Policy
The Customer shall use the Services only for lawful purposes that comply with this Agreement and all applicable laws, regulations, and generally accepted practices or guidelines in the relevant jurisdictions.
### Prohibited Content
The Customer shall **not** use the Services to share, make available, transmit, or store content that:
**Is Unlawful or Infringes Rights:**
- Is unlawful, harmful, fraudulent, infringing, defamatory, obscene, or otherwise objectionable.
- Infringes any party's intellectual property or other proprietary rights, including but not limited to copyrights, trademarks, patent rights, or trade secrets.
**Promotes Hate, Violence, or Discrimination:**
- Constitutes illegal hate speech or incites violence against individuals or groups based on race, religion, nationality, ethnicity, gender, sexual orientation, disability, or any other protected characteristic.
- Promotes or glorifies terrorism, violent extremism, or organized criminal activities.
**Harasses or Threatens Others:**
- Includes content that harasses, bullies, or threatens individuals or groups.
- Encourages or facilitates harassment, either directly or indirectly.
**Violates Privacy or Personal Data Protections:**
- Shares personal data or sensitive information without consent.
- Violates privacy laws or regulations pertaining to the protection of personal information.
**Encourages Self-Harm or Harm to Others:**
- Includes content that promotes self-harm, suicide, or violence against others.
### Anti-Spam and Email Usage Policy
Magic Pages provides email and newsletter functionality as part of the Services. The Customer shall use these capabilities only in compliance with applicable laws, including Regulation (EU) 2016/679 (GDPR), Directive 2002/58/EC (ePrivacy Directive), and any other applicable data protection or electronic communications legislation.
**Native Signup Protection**
Ghost CMS enforces double opt-in for all members who subscribe through the standard signup flow. Members who do not confirm their subscription via magic link cannot receive newsletters and do not appear in the member database.
**Customer Responsibility for Imported Members**
The Customer acknowledges that importing members via CSV, the Admin API, or third-party integrations bypasses Ghost's native double opt-in mechanism. When importing members through any such method, the Customer shall ensure that all imported email addresses belong to individuals who have provided explicit, verifiable consent to receive email communications from the Customer.
**Prohibited Practices**
The Customer shall **not**:
- Import email addresses obtained from purchased, rented, or third-party lists.
- Import email addresses without prior verifiable consent from each recipient.
- Use the Admin API or integrations to add members who have not opted in to receive communications.
- Engage in any email practice that damages or is likely to damage the reputation, deliverability, or infrastructure of Magic Pages or its email service providers.
**Records and Verification**
The Customer shall maintain records demonstrating valid consent for all imported members and shall provide such records to Magic Pages upon request.
**Enforcement**
Magic Pages reserves the right to monitor email-related activities and delivery metrics to detect abuse. Magic Pages may suspend or disable email functionality, or suspend or terminate the Customer's account, without prior notice if Magic Pages reasonably suspects spam or abusive email practices. Confirmed abuse shall constitute grounds for immediate termination without refund.
**Liability**
Magic Pages shall not be liable for any penalties, blacklisting, deliverability issues, reputational harm, or legal consequences arising from the Customer's email practices. The Customer shall indemnify Magic Pages against any claims, costs, or damages arising from the Customer's breach of this policy.
### Enforcement and Compliance
Magic Pages reserves the right to:
- **Review and Remove Content:** Monitor, review, and remove any content that violates this Acceptable Use Policy without prior notice.
- **Suspend or Terminate Accounts:** Suspend or terminate the accounts of users who repeatedly violate these terms or engage in prohibited activities.
- **Report Illegal Activities:** Report any unlawful activities or content to appropriate legal authorities as required by law.
### Consequences of Violation
Violations of this Acceptable Use Policy may result in:
- **Content Removal:** Immediate removal of the offending content.
- **Account Suspension:** Temporary suspension of the Customer's account.
- **Account Termination:** Permanent suspension of the Customer's account, after repeated violations of these terms.
- **Legal Action:** Pursuit of legal remedies available under Austrian law for severe violations.
### Amendments to the Policy
Magic Pages may update or modify this Acceptable Use Policy from time to time. Customers will be notified of significant changes through email or via the customer portal. Continued use of the Services after such changes constitutes acceptance of the new terms.
## Warranties and Disclaimers
Magic Pages warrants that:
- It has all necessary rights to provide the Services to the Customer; and
- It shall use reasonable care and skill in providing the Services.
Except as expressly provided above, the Services are provided on an "as is" basis without warranties of any kind, whether express or implied. Magic Pages expressly disclaims all implied warranties of merchantability, fitness for a particular purpose, quiet enjoyment, and non-infringement.
Magic Pages does not warrant that the Services will meet the Customer's requirements or be error free. Magic Pages does not warrant or make any representations regarding the use or results of the Services, including their correctness, accuracy, reliability or otherwise.
## Limitation of Liability
In no event shall Magic Pages be liable to the Customer or any third party for any loss of use, revenue or profit or loss of data or diminution in value, or for any consequential, incidental, indirect, exemplary, special or punitive damages whether arising out of breach of contract, tort (including negligence) or otherwise, regardless of whether such damages were foreseeable and whether or not Magic Pages has been advised of the possibility of such damages.
The aggregate liability of Magic Pages for all claims arising from or relating to this agreement shall be limited to a maximum of the total amounts paid by the Customer under this agreement in the twelve (12) months preceding the event giving rise to the claim. This limitation applies to all causes of action in the aggregate, including without limitation breach of contract, breach of warranty, negligence, strict liability, misrepresentations and other torts.
Magic Pages shall not be liable for any failure or delay in performing obligations due to causes beyond its reasonable control, including natural catastrophes, labor strikes, shortages, riots, insurrection, war, terrorist attacks, fire, communication line failures, power failures, equipment or software malfunction or governmental restrictions.
All services are provided on an "as is" and "as available" basis. Magic Pages expressly disclaims all warranties of any kind, whether express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
The Customer shall indemnify, defend and hold harmless Magic Pages from any claim, suit or proceeding brought against Magic Pages by a third party arising from or relating to the Customer's use of the services or breach of this agreement, including claims for negligence, fraud, misrepresentation, or any personal injury.
## Term and Termination
The initial term of this Agreement shall commence on the date the Customer signs up to use Magic Pages' services and shall continue for the duration of the lifetime of the Services for lifetime plans, or for the selected subscription period (monthly or yearly) for limited term subscriptions.
Subscription periods shall automatically renew for successive periods of the same duration as the initial term unless either party provides notice of non-renewal at least one day before the end of the then-current term.
Upon termination of this Agreement:
- Magic Pages will delete all Customer Content from the Services within 30 days;
- all rights and licenses granted under this Agreement will terminate; and
- any rights, remedies, obligations or liabilities that have accrued up to the date of termination, including the right to claim damages in respect of any breach of the agreement which existed at or before the date of termination shall not be affected.
## Payment and Pricing
The pricing of all hosting services shall be specified on Magic Pages' website.
The pricing for additional services such as additional backups or the usage of a content delivery network shall be as specified on Magic Pages' website.
Subscription fees are payable annually or monthly in advance via credit card or PayPal. Billing will occur within 3 days before the start of each subscription period.
All prices are exclusive of any applicable sales tax or VAT, which shall be added to the price and paid by the Customer. Prices are subject to change if applicable taxes change.
### Refunds and Cancellation
Except for the 14-day trial period, all hosting fees are non-refundable. To cancel a service, the customer has to inform Magic Pages through the dedicated "Cancel"-button in the customer portal (my.magicpages.co). No refunds will be provided for any unused portion of a pre-paid subscription.
## Confidentiality
"Confidential Information" means all information disclosed by a party ("Disclosing Party") to the other party ("Receiving Party"), whether orally or in writing, that is designated as confidential or that reasonably should be understood to be confidential given the nature of the information and the circumstances of disclosure. Customer Data shall be deemed Confidential Information of Customer.
The Receiving Party shall use the same degree of care that it uses to protect the confidentiality of its own confidential information (but in no event less than reasonable care) not to disclose or use any Confidential Information of the Disclosing Party for any purpose outside the scope of this Agreement.
Confidential Information shall not include information that:
- was rightfully known to the Receiving Party prior to receipt from the Disclosing Party;
- becomes rightfully known to the Receiving Party from a third party not under a duty of confidentiality;
- is or becomes generally known to the public without breach of this Agreement; or
- is independently developed by the Receiving Party without use of or reference to the Confidential Information of the Disclosing Party.
The Receiving Party may disclose Confidential Information of the Disclosing Party to the extent compelled by law pursuant to a lawful order of a court or regulatory body, provided the Receiving Party gives the Disclosing Party reasonable prior written notice to contest such order.
The obligations under this Section shall apply to any Confidential Information disclosed by either party to the other whether before or after the effective date of this Agreement and shall continue during the term and survive termination of this Agreement for a period of 5 years.
## Force Majeure
Neither party shall be liable or responsible to the other party, nor be deemed to have defaulted or breached this Agreement, for any failure or delay in fulfilling or performing any term of this Agreement when and to the extent such failure or delay is caused by or results from acts or circumstances beyond the reasonable control of the affected party including, without limitation, acts of God, flood, fire, earthquake, explosion, governmental actions, war, invasion or hostilities (whether war is declared or not), terrorist threats or acts, riot, or other civil unrest, national emergency, revolution, insurrection, epidemic, lockouts, strikes or other labor disputes (whether or not relating to either party's workforce), or restraints or delays affecting carriers or inability or delay in obtaining supplies of adequate or suitable materials, materials or telecommunication breakdown or power outage (each, a "Force Majeure Event").
The party suffering a Force Majeure Event shall give written notice to the other party of such event within a reasonable time after becoming aware of the occurrence of the Force Majeure Event, and such notice shall describe the Force Majeure Event. The party affected by the Force Majeure Event shall use reasonable efforts to mitigate the impact and remedy its inability to perform the obligations under this Agreement due to the Force Majeure Event.
If the Force Majeure Event prevents a party's performance for more than thirty (30) calendar days, then the other party may terminate this Agreement immediately by written notice to the affected party.
The occurrence of a Force Majeure Event does not relieve the Customer of its obligation to pay for the Services provided to the Customer prior to the Force Majeure Event. Fees for Services may be suspended during the Force Majeure Event.
In no event will either party be liable to the other, or be deemed to have defaulted under or breached this Agreement, for any failure or delay in fulfilling or performing any term of this Agreement to the extent and for so long as such failure or delay is due to any Force Majeure Event.
## Notices
All notices given by one party to the other must be in writing and sent by email. Notices to Magic Pages shall be sent to help@magicpages.co. Notices to the Customer shall be sent to the email address registered in the Customer's account.
Notices shall be deemed to be received upon confirmation of delivery by email. If deemed receipt is not within business hours, notice shall be deemed to be received at the start of the next business day.
Either party may change its contact details by giving seven (7) days' notice to the other party in accordance with this clause. Until such time as notice of any change has been properly given, notices will be sent to the last contact details notified.
Notices given under this Agreement must be in English or German.
## Miscellaneous
This Agreement constitutes the entire agreement between the parties relating to its subject matter. No terms submitted by the Customer shall be incorporated into this Agreement unless agreed to in writing by Magic Pages.
If any part of this Agreement is held invalid or unenforceable, that part will be construed to reflect the parties' original intent, and the remaining portions will remain in full force and effect.
A waiver of any term or breach shall not be deemed a waiver of any other term or existing or future breach. A waiver shall not be enforceable unless made in writing and signed by an authorised representative of the waiving party.
This Agreement may only be amended by mutual written agreement of authorised representatives of the parties.
This Agreement is governed by the laws of Austria. The parties submit to the exclusive jurisdiction of the courts of Austria.
---
Last updated: 6 January 2025
### Changelog
URL: https://www.magicpages.co/changelog/
Last updated: 2023-12-08T11:01:50.000Z
All notable changes to Magic Pages will be documented in this file. If you have questions, please reach out at [help@magicpages.co](mailto:help@magicpages.co).
---
??
Currently, Magic Pages customer websites are running on Ghost 5.46.1\. The update to further versions is currently blocked due to a bug within the Ghost core. We have [reported the bug](https://github.com/TryGhost/Ghost/issues/16835?ref=magicpages.co) and are awaiting a fix to role out newer minor versions of Ghost to Magic Pages customers.
## 25.05.2023
### Infrastructure
- added changelog (this page) to keep an overview of developments
- added [help@magicpages.co](mailto:help@magicpages.co) as official support email address
## 24.05.2023
### Themes
- added success and error state handling of subscription form in Vienna theme
- added new announcement bar styles in Vienna theme after [Ghost release](https://forum.ghost.org/t/announcement-bar-ghost-changelog/38190?ref=magicpages.co)
## 23.05.2023
### Infrastructure
- changed content path of Ghost installations in deployment scripts to persist through updates
## 19.05.2023
### Themes
- added support for footnotes in Vienna theme
## 16.05.2023
### Magic Pages Core
- released v0.1, based on [Ghost 5.46.0](https://github.com/TryGhost/Ghost/releases/tag/v5.46.0?ref=magicpages.co)
- added custom email newsletter functionality based on Amazon SES
- added custom email confirmation routine for email newsletter functionality
### Themes
- released v1.0.0 of [Vienna](https://vienna.magicpages.co/?ref=magicpages.co) theme
### Infrastructure
- released [customer portal](my.magicpages.co)
- added automatic setup of new Magic Pages websites
- added sync between Lemon Squeezy orders and customer portal
- added automatic daily, weekly, and monthly backups of customer content and databases
### Ghost CMS for Business - The Ideal Solution for Your Website
URL: https://www.magicpages.co/business/
Last updated: 2023-12-08T10:59:25.000Z
_No content available._
### DMARC Generator - Protect Your Email From Impersonators
URL: https://www.magicpages.co/dmarc-generator/
Last updated: 2026-05-30T12:20:02.000Z
Use our free DMARC record generator below to create a standards-compliant DMARC policy that protects your domain from spoofing and impersonation.
### Data Processing Agreement (DPA)
URL: https://www.magicpages.co/data-processing-agreement/
Last updated: 2026-09-07T19:48:38.000Z
**according to Art. 28 GDPR · Version 2 · 7 September 2026**
This Data Processing Agreement (“DPA”) is an addendum to the Terms of Service (“Agreement”) between Magic Pages e.U. (FN 674823m, Landesgericht Wels), represented by Jannis Fedoruk-Betschki (“Service Provider”, Data Processor) and the Customer (“Customer”, Data Controller), which incorporates by reference the Privacy Policy of Magic Pages (collectively, the “Agreement”). This DPA governs the processing of personal data under the Agreement.
## 1\. Subject Matter of the Agreement
The subject of this DPA is the provision of Ghost CMS hosting services by the Service Provider to the Customer, which includes, but is not limited to, hosting and providing an internet site based on the open-source Content Management System “Ghost” ([https://ghost.org](https://ghost.org/?ref=magicpages.co)), including the dispatch of newsletters.
This DPA supplements the general terms and conditions available at .
## 2\. Definitions
– **“Personal Data”** refers to any data relating to an identified or identifiable natural person processed on behalf of the Customer in the course of providing the Services.
– **“Controller”** means the entity which determines the purposes and means of the processing of Personal Data.
– **“Processor”** means the entity which processes Personal Data on behalf of the Controller.
– **“Sub-processor”** means any Processor engaged by the Service Provider to assist in fulfilling its obligations with respect to providing the Services under this DPA.
– **“Data Protection Laws”** means all applicable laws and regulations in relation to data protection and privacy that apply to the respective parties.
– **“Security Incident”** means a breach of security leading to the accidental or unlawful destruction, loss, alteration, unauthorised disclosure of, or access to Personal Data processed under this DPA.
## 3\. Duration of the Agreement
This DPA is entered into for an indefinite duration and remains in force for as long as the Service Provider processes Personal Data on behalf of the Customer. It may be terminated by either party at the end of a given billing period. The right to terminate for cause remains unaffected.
Sections 10 (Deletion and Return of Personal Data) and 11.1 (Liability) survive termination of this DPA.
## 4\. Roles and Responsibilities of the Parties
As between the Customer and Service Provider, the Customer is the Controller of Personal Data and the Service Provider is the Processor.
The Service Provider shall process Personal Data only on documented instructions from the Customer, including with regard to transfers of Personal Data to a third country, unless required to act without such instructions by Union or Member State law to which the Service Provider is subject. In such a case, the Service Provider shall inform the Customer of that legal requirement before processing, unless that law prohibits such information on important grounds of public interest.
The Agreement, this DPA, and the Customer’s use of the Services in accordance with the Agreement constitute the Customer’s complete and final documented instructions to the Service Provider.
The Service Provider shall immediately inform the Customer if, in its opinion, an instruction infringes the GDPR or other applicable Data Protection Laws.
The Customer is responsible for ensuring that it has a valid legal basis for the processing of Personal Data through the Services, and for the lawfulness of the Personal Data it or its data subjects introduce into the Services.
## 5\. Sub-processors
The Customer grants the Service Provider general written authorisation to engage Sub-processors for the provision of the Services. The Sub-processors engaged at the time of conclusion of this DPA are listed in **Annex B**.
The Service Provider shall maintain an up-to-date list of Sub-processors at .
**5.1 Notice of changes.** The Service Provider shall notify the Customer by email of any intended addition or replacement of a Sub-processor at least **fourteen (14) days** before that Sub-processor begins processing Personal Data. Where a Sub-processor must be engaged at shorter notice to maintain the security or continuity of the Services, the Service Provider shall notify the Customer as early as reasonably possible and explain the reason for the shortened period.
**5.2 Objection.** The Customer may object to an intended change on reasonable data protection grounds by written notice to [help@magicpages.co](mailto:help@magicpages.co) within **fourteen (14) days** of receiving the notice under Section 5.1.
**5.3 Consequence of objection.** Where the Customer objects, the parties shall discuss the objection in good faith. If the Service Provider is unable to provide the Services without the Sub-processor concerned, or cannot offer the Customer a commercially reasonable alternative, the Customer may terminate this DPA and the affected Services with effect from the date the Sub-processor is engaged, by written notice and without incurring termination fees. Fees paid in advance for the period after the effective date of such termination shall be refunded on a pro rata basis.
**5.4 Obligations of Sub-processors.** The Service Provider shall impose on each Sub-processor, by way of contract, data protection obligations that are no less protective than those set out in this DPA. The Service Provider remains fully liable to the Customer for the performance of each Sub-processor’s obligations.
## 6\. International Data Transfers
Primary storage and processing of Personal Data takes place on servers located within the European Union.
Where the provision of the Services involves the transfer of Personal Data to a country outside the EU/EEA that is not the subject of an adequacy decision by the European Commission, the Service Provider shall ensure that such transfer is subject to appropriate safeguards under Chapter V GDPR. This is achieved through one or more of the following mechanisms, as applicable to the Sub-processor concerned:
– an adequacy decision by the European Commission;
– the Standard Contractual Clauses adopted by the European Commission under Implementing Decision (EU) 2021/914, as incorporated into the Service Provider’s agreement with the relevant Sub-processor; or
– another valid transfer mechanism under Chapter V GDPR.
The transfer mechanism applicable to each Sub-processor is identified in **Annex B**. On request, the Service Provider shall provide the Customer with information about the safeguards in place.
## 7\. Security
**7.1 Security Measures.** Considering the state of the art, the costs of implementation, and the nature, scope, context, and purposes of Processing as well as the risk to the rights and freedoms of natural persons, the Service Provider shall implement appropriate technical and organisational measures to ensure a level of security appropriate to the risk. The measures in place at the time of conclusion of this DPA are described in **Annex C**.
The Service Provider may update these measures over time, provided that the level of security is not materially reduced.
**7.2 Confidentiality of Processing.** The Service Provider shall ensure that any person authorised to process Personal Data is under an appropriate obligation of confidentiality, whether contractual or statutory.
**7.3 Security Incident Response.** Upon becoming aware of a Security Incident, the Service Provider shall notify the Customer without undue delay and in any event within **forty-eight (48) hours** of becoming aware of it.
**7.4 Content of Notification.** A notification under Section 7.3 shall, to the extent the information is available to the Service Provider at the time, include:
– a description of the nature of the Security Incident;
– the categories of Personal Data concerned;
– the approximate number of data subjects and records affected;
– the likely consequences of the Security Incident;
– the measures taken or proposed to address the Security Incident and to mitigate its adverse effects; and
– a contact point at the Service Provider from which further information can be obtained.
Where and insofar as this information cannot be provided in full at the same time, it shall be provided in phases without further undue delay. The Service Provider shall continue to provide the Customer with timely information as it becomes known or as reasonably requested by the Customer, so as to enable the Customer to meet its own obligations under Arts. 33 and 34 GDPR.
## 8\. Assistance and Cooperation
**8.1 Data Subject Requests.** To the extent that the Customer is unable to independently access the relevant Personal Data within the Services, the Service Provider shall provide reasonable cooperation to assist the Customer by appropriate technical and organisational measures, insofar as possible, to respond to any requests from data subjects exercising their rights under Chapter III GDPR.
Where the Service Provider receives a request directly from a data subject relating to Personal Data processed on behalf of the Customer, it shall not respond to the request itself, but shall forward it to the Customer without undue delay.
**8.2 Assistance with Arts. 32 to 36 GDPR.** Taking into account the nature of the processing and the information available to it, the Service Provider shall provide reasonable assistance to the Customer in ensuring compliance with the Customer’s obligations under Arts. 32 to 36 GDPR, including security of processing, notification of personal data breaches to the supervisory authority and to data subjects, data protection impact assessments, and prior consultation.
**8.3 Requests from Authorities.** The Service Provider shall notify the Customer without undue delay of any legally binding request for disclosure of Personal Data by a law enforcement or other public authority, unless prohibited from doing so by law. The Service Provider shall not disclose Personal Data to any authority except where required to do so by applicable law.
## 9\. Audits and Evidence of Compliance
**9.1 Information.** The Service Provider shall make available to the Customer all information necessary to demonstrate compliance with the obligations laid down in Art. 28 GDPR and this DPA. It shall do so by providing, on written request:
– the description of technical and organisational measures set out in Annex C, and any updates to it;
– written responses to a reasonable data protection or information security questionnaire, no more than once per calendar year;
– the current list of Sub-processors and information about the transfer safeguards in place; and
– any relevant certification or third-party audit report held by the Service Provider or its Sub-processors.
The parties agree that the provision of this information is the primary means by which the Service Provider demonstrates compliance, and that it satisfies the Customer’s audit rights under Art. 28(3)(h) GDPR in the ordinary course.
**9.2 Inspections.** The Customer may request an on-site or remote inspection only where (a) a competent supervisory authority requires it, or (b) a Security Incident affecting the Customer’s Personal Data has been confirmed, and in either case the information provided under Section 9.1 is not sufficient to address the matter.
Such an inspection is subject to the following conditions:
– it shall be requested in writing with at least **fourteen (14) days’** prior notice and take place during normal business hours;
– it shall be conducted remotely where this is sufficient to achieve its purpose;
– it shall be limited in scope to the processing of the Customer’s Personal Data, and shall not extend to shared infrastructure, systems, or documentation where access would compromise the security or confidentiality of other customers’ data;
– it may be carried out no more than once per calendar year;
– any auditor mandated by the Customer shall not be a competitor of the Service Provider and shall be bound by appropriate confidentiality obligations;
– the Customer shall bear its own costs and the costs of any auditor it mandates, and shall reimburse the Service Provider for time spent supporting the inspection at the Service Provider’s standard rate of **EUR 120** per hour.
## 10\. Deletion and Return of Personal Data
**10.1 Export during the term.** The Customer may at any time export Personal Data held in its Ghost instance using the export functions available within the Services, including the Ghost administration interface, the available APIs, and the backup functionality described in the Agreement. The Service Provider shall provide reasonable assistance on request.
**10.2 On termination.** Upon termination or expiry of the Agreement, the Customer may, within **thirty (30) days**, request the return of Personal Data in a structured, commonly used and machine-readable format, or request its deletion. Absent such a request, the Service Provider shall delete Personal Data from the Services in accordance with Section 10.3.
**10.3 Deletion.** The Service Provider shall delete Personal Data from the active production environment within **thirty (30) days** of termination or expiry of the Agreement, in accordance with the Terms of Service.
**10.4 Backups.** Personal Data contained in backup copies is deleted in the ordinary course of the backup rotation cycle and is fully removed no later than **three (3) months** after deletion from the production environment. Until deletion, such data remains subject to the security measures set out in Annex C and is not processed for any purpose other than restoration and disaster recovery.
**10.5 Legal retention.** The Service Provider may retain Personal Data to the extent and for as long as required by Union or Member State law, in which case it shall ensure the confidentiality of that data and process it only to the extent necessary for the purpose of the retention obligation.
**10.6 Confirmation.** The Service Provider shall confirm deletion in writing on request.
## 11\. Miscellaneous
**11.1 Liability.** Each party shall be liable for damages it causes by processing the Personal Data subject to this DPA. Art. 82 GDPR remains unaffected. The limitations of liability set out in the Agreement apply to this DPA to the extent permitted by applicable law.
**11.2 Governing Law.** This DPA is governed by the laws of Austria. Any changes to this DPA require the written consent of both parties. This DPA prevails over any conflicting terms of the Agreement.
**11.3 Legal Effects.** This DPA is intended to supplement the terms of the Agreement. Except as explicitly modified or supplemented by this DPA, the terms of the Agreement remain unchanged and in full force and effect. In the event of any conflict between this DPA and the Agreement, the terms of this DPA will prevail to the extent of the conflict.
**11.4 Severability.** If any provision of this DPA is held to be invalid or unenforceable, the remaining provisions remain in full force and effect. The invalid provision shall be replaced by a valid provision that most closely reflects the original intent.
**11.5 Compliance with GDPR.** This DPA is designed to ensure compliance with the strict standards of data protection in the European Union, specifically the GDPR.
## Annex A: Details of Data Processing
### A.1 Categories of Data Subjects
The Personal Data processed under this DPA may concern the following categories of data subjects:
– Visitors to the Customer’s website
– Newsletter subscribers and registered members of the Customer’s website
### A.2 Categories of Personal Data
– Email addresses
– Names (where provided by data subjects)
– IP addresses
– Browser and device metadata (user agent, referrer)
– Newsletter engagement data (open/click tracking)
– Subscription and membership status
– Any additional data the Customer collects through their Ghost instance
No special categories of personal data within the meaning of Art. 9 GDPR are processed under this DPA, unless the Customer introduces such data into its Ghost instance on its own initiative and responsibility.
### A.3 Nature and Purpose of Processing
The processing is carried out for the purpose of providing Ghost CMS hosting services, including website hosting, newsletter delivery, and member management.
The nature of the processing comprises hosting, storage, transmission, backup, restoration, and deletion of Personal Data, as well as the technical operations necessary to deliver the Services.
### A.4 Duration of Processing
Personal Data is processed for the duration of the Agreement, followed by the deletion and return periods set out in Section 10 of this DPA.
## Annex B: Sub-processors
The Customer consents to the use of the following Sub-processors. The Service Provider shall maintain an up-to-date list of Sub-processors at and notify the Customer by email of any intended changes in accordance with Section 5.
| Sub-processor | Purpose | Processing location | Transfer mechanism |
| ---------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- |
| Hetzner Online GmbH | Server hosting, data storage | Germany (EU) | Not applicable, EU only |
| Cloudflare, Inc. | CDN, DNS, Web Application Firewall | EU with global edge network | Standard Contractual Clauses, as incorporated in Cloudflare’s Data Processing Addendum |
| Mailgun Technologies, Inc. (Sinch) | Transactional and newsletter email delivery | EU region (message processing and storage in the EU); administrative access from the US possible | Standard Contractual Clauses, as incorporated in Sinch’s Data Processing Agreement |
## Annex C: Technical and Organisational Measures
The Service Provider implements the following measures to protect Personal Data:
– **Encryption in transit:** All data transmitted via TLS/SSL encryption
– **Encryption at rest:** Server disks use full-disk encryption
– **Access control:** SSH key-based authentication only; no password access to servers
– **Server location:** All primary data stored on servers within the European Union
– **Backups:** Automated daily backups with encrypted storage, retained for **three (3) months**
– **Network security:** Cloudflare WAF and DDoS protection for all hosted sites
– **Confidentiality:** All persons with access to Personal Data are bound by confidentiality obligations
– **Monitoring:** Automated server and service monitoring with alerting
– **Availability:** Service availability target as set out in the Service Level Agreement at
– **Separation:** Each Customer’s Ghost instance runs in a separate container with its own database, isolating Customer data from that of other customers
### Service Level Agreement (SLA)
URL: https://www.magicpages.co/sla/
Last updated: 2024-06-30T12:28:19.000Z
Magic Pages provides a Service Level Agreement (SLA) for all monthly and yearly Pro plans. Essentially, Magic Pages guarantees that your Ghost CMS website hosted on its servers will have a minimum uptime of 99.9%, excluding specific exceptions like planned and emergency maintenance, or any uncontrollable events (force majeure).
This SLA does not apply to lifetime or Starter plans. The terms of this agreement may be updated periodically at Magic Pages' sole discretion. The latest version is always accessible at [https://magicpages.co/legal/sla](https://magicpages.co/legal/sla?ref=magicpages.co).
## Availability
Magic Pages ensures that websites on its monthly and yearly Pro plans will be available 99.9% of the time each month. Uptime is calculated by the following formula:
`Monthly Website Availability (minutes) * 100 / Total Minutes in the Month = Uptime Percentage`
For example, if your website experiences a downtime of 30 minutes in a month with 31 days:
`44,610 minutes (uptime) * 100 / 44,640 minutes (total) = 99.93% uptime`
## Exceptions to SLA Coverage
To maintain and improve website availability, Magic Pages may perform:
- **Planned Maintenance:** Scheduled maintenance announced at least three days in advance or coordinated directly with you.
- **Emergency Maintenance:** Unscheduled maintenance necessary to safeguard the security or integrity of the Magic Pages services.
- **Ghost CMS Updates:** As Ghost releases new versions weekly, Magic Pages implements these updates as quickly as possible, which may cause brief downtimes. These are not covered by the SLA.
Both planned and emergency maintenance, along with force majeure events, are excluded from the uptime calculation.
## Credit for Downtime
Should the availability fall below 99.9% in any given month, Magic Pages offers a credit of 5% of your monthly fee for every full hour of downtime beyond the guaranteed uptime. For those on yearly plans, the credit is calculated based on the monthly equivalent of the annual fee.
To claim a credit, please send a brief email to [help@magicpages.co](mailto:help@magicpages.co).
Credits are issued based on Magic Pages monitoring and are capped at 100% of your monthly (or its yearly equivalent) subscription fee.
### Example of Credit Calculation
If your site was unavailable for 3 hours in a 31-day month:
- **Total Minutes in Month:** 44,640
- \- **Acceptable Downtime:** 45 minutes (0.1% of total minutes)
- \- **Actual Downtime:** 180 minutes
- \- **Excess Downtime:** 135 minutes (or 2.25 hours)
- \- **Credit:** 3 hours of excess downtime \* 5% = 15% credit
## Why Is the SLA Not Available on Lifetime Plans?
Lifetime plans are designed to provide long-term access to Magic Pages's services at a one-time cost. They are directly targeted at users who prefer a one-time investment. However, extending an SLA to these plans presents pratctical challenges.
Technology and business environments are always changing. Committing to a lifetime SLA is unsustainable as it's impossible to predict future operational and maintenance needs.
Monthly and yearly plans, with recurring revenue, allow Magic Pages to adapt to changes in technology and market conditions, ensuring that a service level agreement can also work in 5 or 10 years.
This doesn't mean that Ghost websites on lifetime plans are "worse" in any way. They are built on the exact same hardware and chances are, you're getting the same uptime availability as subscription-based plans. Magic Pages's goal is always to maintain a high-quality service across all plans, so that even without a formal SLA, you'll have a smooth experience.
## Why Is the SLA Not Available on Starter Plans
Starter plans are tailored for users with basic hosting needs and are priced accordingly. While these plans run on the same high-quality hardware and infrastructure as Magic Pages's Pro plans, the revenue from Starter plans primarily covers the basic costs of hosting and maintenance.
Allocating resources for the extensive monitoring, incident documentation and resolvent, as well as the detailed reporting required by an SLA would be impractical within the pricing model of these plans.
Similarly to lifetime plans, chances are that you're getting the same uptime availability as Pro plans, since Magic Pages is committed to delivering reliable service across all plans.
### Set Up An SPF Record For Your Ghost Site
URL: https://www.magicpages.co/spf-generator/
Last updated: 2026-05-30T12:20:03.000Z
Use our free SPF record generator below to set up SPF correctly for your domain, so your newsletters and emails reach the inbox.
### Pintura Image Editor for Ghost CMS | Built into Magic Pages
URL: https://www.magicpages.co/pintura/
Last updated: 2025-01-12T08:23:49.000Z
_No content available._
### Search
URL: https://www.magicpages.co/search/
Last updated: 2025-02-07T19:13:44.000Z
Search /
↑↓to navigate escto close
Common searches
how to set up my custom domain
how to install ghost
login not working, how to reset password
No results found for your search
### Migrate to Magic Pages
URL: https://www.magicpages.co/migrate/
Last updated: 2025-02-25T08:46:19.000Z
_No content available._
### Magic Pages for Educational Institutions
URL: https://www.magicpages.co/education/
Last updated: 2025-03-03T10:55:36.000Z
_No content available._
### Magic Pages for Non-Profit Organisations
URL: https://www.magicpages.co/nonprofit/
Last updated: 2025-03-03T16:15:39.000Z
_No content available._
### Datacenters
URL: https://www.magicpages.co/datacenters/
Last updated: 2025-03-29T22:30:48.000Z
_No content available._
### A New Home For Your Compiled Ghost CMS Site
URL: https://www.magicpages.co/compiled/
Last updated: 2025-06-03T06:04:31.000Z
_No content available._
### About
URL: https://www.magicpages.co/about/
Last updated: 2025-07-03T09:20:46.000Z
_No content available._
### Ghost 6 on Magic Pages
URL: https://www.magicpages.co/ghost-6/
Last updated: 2025-08-04T06:57:22.000Z
_No content available._
### A New Home For Your Gloat Ghost CMS Site
URL: https://www.magicpages.co/gloat/
Last updated: 2025-09-04T09:06:10.000Z
_No content available._
### Sub-processors
URL: https://www.magicpages.co/sub-processors/
Last updated: 2026-03-01T11:01:08.000Z
Magic Pages uses a limited number of third-party service providers ("sub-processors") to help deliver our hosting services. Each sub-processor only processes personal data to the extent necessary for their specific purpose.
We will notify customers by email before adding or replacing any sub-processor. If you have concerns about a new sub-processor, you may object in accordance with our [Data Processing Agreement](https://www.magicpages.co/data-processing-agreement/).
## Current Sub-processors
### **Hetzner Online GmbH**
- Purpose: Server hosting and data storage
- Location: Germany (EU)
- Website: [hetzner.com](https://hetzner.com/?ref=magicpages.co)
### **Cloudflare, Inc.**
- Purpose: Content delivery network (CDN), DNS, and web application firewall
- Location: EU/US – Data processing governed by [Cloudflare's Data Processing Addendum](https://www.cloudflare.com/cloudflare-customer-dpa/?ref=magicpages.co)
- Website: [cloudflare.com](https://www.cloudflare.com/?ref=magicpages.co)
### **Mailgun Technologies, Inc.**
- Purpose: Transactional and newsletter email delivery
- Location: EU/US – Data processing governed by [Mailgun's Data Processing Agreement](https://sinch.com/legal/terms-and-conditions/other-sinch-terms-conditions/data-protection-agreement/?ref=magicpages.co)
- Website: [mailgun.com](https://www.mailgun.com/?ref=magicpages.co)
## Posts
### Updated Customer Websites to Ghost v6.63.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-63-0/
Last updated: 2026-09-09T06:02:47.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.63.0 today. You can read about changes included in Ghost's official release.
[Release 6.63.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.63.0?ref=magicpages.co)
### Writing that lasts ten years
URL: https://www.magicpages.co/a-press-of-your-own/writing-that-lasts-ten-years/
Last updated: 2026-09-04T21:16:39.000Z
On 27 June 2011, Justice Samuel Alito filed a concurring opinion in the United States Supreme Court. Footnote 14 cites a web page: *Inside the Sick Site of a School Shooter Mod*, at **ssnat.com**.
In April 2011 that address held what he said it held. By March 2012 the domain had lapsed. In June 2012 somebody else bought it and put up a note: if you had cited this page in the Supreme Court Reporter, “the original content would have long since disappeared”.
I checked it this month. The note has gone, and the page now argues about the size of the Supreme Court.
The opinion is printed, bound, and shelved in law libraries in several countries. It cannot be edited. The footnote is still there, still pointing, with a supreme court’s authority behind it.
A dead address on the back of three hundred zine copies fails the same way: the paper outlives the thing it points at, and the paper cannot be corrected.
## The one that still works is the one that lies
Footnote 14 holds two links, and the footnote after it a third. I checked all three on 15 August 2026.
The three web pages cited in a Supreme Court opinion Justice Alito’s concurrence in *Brown v. Entertainment Merchants Association*, 27 June 2011 — printed, bound in law libraries, and impossible to correct. All three addresses tested 16 August 2026.
1. 1The address returns an error.
Footnote 14
newsfeed.time.com/2011/04/20/school-shooter-video-game-reenacts-columbine-virginia-tech-killings
Time is still publishing. This article is no longer on its site.
2. 2The address no longer exists.
Footnote 15
articles.cnn.com/2010-03-30/world/japan.video.game.rape\_1\_game-teenage-girl-japanese-government
Nothing answers: the name points at no working machine.
3. 3The address answers perfectly well.
Footnote 14
[ssnat.com](https://ssnat.com/?ref=magicpages.co)
1. 2011Cited for an article about a video game.
2. 2012The name lapses and somebody else buys it. They leave a note:
> “Aren’t you glad you didn’t cite to this webpage in the Supreme Court Reporter \[…\]. If you had, like Justice Alito did, the original content would long since have disappeared and someone else might have come along and purchased the domain in order to make a comment about the transience of linked information in the internet age.”
3. 2026The note has gone. The page now argues about the size of the Supreme Court, under a heading reading “404 Error – File Not Found”.
A link checker finds the first two. The third looks fine to it. Only a reader can tell that what was cited has gone.
The Time article is gone: the address answers with an error. The CNN one is worse off, because the computer it used to live on no longer exists at all. And **ssnat.com** loads perfectly well, instantly, with nothing on it that has anything to do with what Alito read.
Librarians and archivists separate these. Link rot is when the address stops answering. Reference rot is when it answers and what you cited is no longer there.
Two Harvard studies measured both. Zittrain, Albert and Lessig found in 2014 that more than 70% of the links in law journal articles, and half of those in Supreme Court opinions, no longer led to the material being cited. Then in 2021 Bowers, Stanton and Zittrain went through the *New York Times* archive: 553,693 articles, 2.3 million links pointing off the site, a quarter of them completely inaccessible. Of 4,500 surviving links they checked by hand, 13% had drifted to something significantly different.
Anything that tallies broken links catches only link rot. Reference rot is invisible to a machine and worse for a person, because nothing tells you that you are reading the wrong thing.
## How long a page actually lasts
Two studies have run long enough to be useful, and most of what gets quoted is not either of them. A web page lives 44 days, or 75, or 100, depending which article you read, and all three trace back to one man quoted in magazines across six years with no study underneath any of it. The Library of Congress in Washington, DC untangled that in 2011\. Its own source link for the hundred-day version is now dead.
Two hold up. Wallace Koehler followed 361 randomly chosen pages from December 1996 to May 2003, the longest continuous study of a single set of addresses. He put the half-life of a random web page at about two years. Pew Research sampled just under a million pages and reported in 2024 that 38% of the pages that existed in 2013 had gone ten years later, with a quarter of everything they looked at across the whole decade gone.
The shape of Koehler’s loss matters more than its size. His sample fell from every page present in December 1996 to 34.4% by February 2001\. Two years later, in May 2003, it stood at 33.8%.
Two further years cost it six-tenths of a percentage point. Almost all the dying happens early, and what gets through the first few years mostly keeps going. The question was never whether your work will still be there in ten years. It is whether it survives its first two, because after that the odds turn sharply in your favour.
Koehler also tabulated figures from other people’s studies, and the spread across them is the useful part. A random web page, two years. A citation in a scholarly article, eighteen months. A legal citation, seventeen. An object held in a digital library, twenty-four and a half years.
The difference there is not technical. It is whether keeping the thing is somebody’s job.
One more detail from his paper. He lost most of 2001, partly because the software he collected the data with would not run on anything newer than Windows 95\. The tool he was measuring persistence with had not persisted.
## What actually rots
The Movable Type announcement in Part Two left 236 blog addresses attached to it, one from every blog that replied on the day. I checked each one twice: is the name still theirs, and is the post still there?
Ninety-nine names are. Nineteen posts are.
Every blog that replied to the Movable Type announcement 13 May 2004, in the order they replied. Checked 15 August 2026.
megacity.org · gamewhore.org · stupidevilbastard.com · arsenic.net · freepgs.com · cocaineinmotion.com · vinsonweb.com · pj.doland.org · dipl-wirt-inf.de · jubilee.bloghosts.com · teller.diip.ee · mysimpleexperience.com · onepotmeal.com · weblog.mrbill.net · serialpurrs.org · libraryplanet.com · [mkelley.net](http://mkelley.net/archive/2004/05/13/3348.php?ref=magicpages.co) · lunenburg.org · embruns.net · nijst.org · weblog.burningbird.net · blog.dorward.me.uk · jasonlefkowitz.net · prwdot.org · [wingedspirit.net](http://www.wingedspirit.net/blog/archives/002476.html?ref=magicpages.co) · hebig.org · sweeting.net · blog.75thtrombone.com · hill-kleerup.org · [blog.zog.org](http://blog.zog.org/2004/05/movable%5Ftype%5F3.html?ref=magicpages.co) · aripaparo.com · [usersavvy.com](http://www.usersavvy.com/ofnote/archives/000046.html?ref=magicpages.co) · pirate.org · dejahthoris.net · danavan.net · dasme.org · ijustwantedtoleaveacomment.com · lechoso.com · [studio2f.com](http://www.studio2f.com/misc/2004/05/13mt%5F30.php?ref=magicpages.co) · karolczak.com · intraordinary.com · poorbuthappy.com · urbanfarmhouse.org · enki.cthuugle.com · drunkenmonkeys.org · brianburnham.com · droyer.org · whiterose.org · grahamazon.com · soveryposh.com · loiclemeur.com · [dienstraum.com](http://www.dienstraum.com/archiv/2004/05/13/movabletype%5Fwird%5Fkostenpf.php?ref=magicpages.co) · uberbin.net · zonageek.com · gabeanderson.com · blog.sophoto.cn · highcontext.com · blog.authenticgeek.net · sfad.org · laze.net · typeblog.de · [newsgoat.com](http://www.newsgoat.com/2004/05/13/1023/index.html?ref=magicpages.co) · adam.tinworth.name · everytomorrow.org · wordpress.org · kevintdriver.hopto.org · timaoutloud.org · 0xdeadbeef.org · 8bitjoystick.com · wolfandturtle.net · [blog.com.mx](http://www.blog.com.mx/archives/001162.php?ref=magicpages.co) · neoflux.com · acrosstheatlantic.com · brokendreams.angelsfall.org · web.yaroslavl.ru · afrique-web.net · philsdiary.net · [drbacchus.com](http://www.drbacchus.com/journal/archives/000566.html?ref=magicpages.co) · [nonplus.net](http://www.nonplus.net/geek/000851.php?ref=magicpages.co) · vlokfeest.net · uncorked.org · michellejones.net · [lawtechguru.com](http://www.lawtechguru.com/archives/2004/05/13%5Fmovable%5Ftype%5F30%5Fdeveloper%5Fedition%5Freleased.html?ref=magicpages.co) · pinseri.com · sillybean.net · iknowwhatimdoing.com · bbuchs.f2o.org · donkitchen.com · salivation.org · brilliantcorners.org · samizdata.org · ebtb.info · [offthekuff.com](http://www.offthekuff.com/mt/archives/003473.html?ref=magicpages.co) · radinfo.musc.edu · psynthesis.net · justorb.com · uncledirtae.com · dreaminglucidity.net · talknerdy2me.com · confusedkid.com · blog.siegler.net · robgirl.com · larrycloud.com · idontthink.com · brendoman.com · alaina.org · falconred.net · stitchingforsanity.com · leftandright.us · pxnet.pixelechoes.net · orangeguru.net · tzankoffradio.com · johnsjottings.com · lilirose.net · desk003.com · [gwenharlow.com](http://www.gwenharlow.com/building/mt/20040513%5Fmt%5F9995%5Fand%5Fup%5Fspecial%5Fintro%5Fprices%5Fstarting%5Fat%5F6995%5Ffor%5Fa%5Flimited%5Ftime.php?ref=magicpages.co) · ospreydesign.com · patchworkprogression.com · [molly.com](http://www.molly.com/mt/archives/000161.php?ref=magicpages.co) · beanbagcentral.com · [robertkbrown.com](http://www.robertkbrown.com/2004/05/13/holy%5Ftrackbacks%5Fbatman.html?ref=magicpages.co) · beafraid.com · seadoc.net · hello.typepad.com · bigpinkcookie.com · blinger.org · blog.h4xx0r.co.uk · metagrrrl.com · geekgrrl.com · geekable.com · emersons.net · rhapsodic.org · powazek.com · me3dia.com · chaddycakes.com · alum.blogcap.com · vek.perlmonk.org · cynics.info · mommyneedscoffee.com · kanai.net · jensbaumeister.de · scriptygoddess.com · koziarski.net · digitalwoe.com · cybr.org · sunpig.com · mullingitover.com · 7nights.com · fahrbotz.com · ablogslife.com · [longstoryshortpier.com](http://www.longstoryshortpier.com/vaults/2004/05/13/mt%5F30?ref=magicpages.co) · cygnoir.net · kingnothing.com · zulyzu.com · tangognat.com · paulbeard.org · leblogueur.com · memoirsofageek.com · geekasaurus.com · tongfamily.com · webdiva.co.uk · prolific.org · weblogs.about.com · martiegras.com · pixelkitty.net · jluster.org · firepile.com · blog.twblog.net · arguewithsigns.net · chaosmagnet.com · elise.com · typedby.com · antseyeview.com · e53.org · meltoni.com · abqwildcat.psychdude.com · puetz.webhop.net · beltzner.ca · jared.virbeta.com · linkmeister.com · ericrice.com · scott.yang.id.au · blog.mittenartworks.com · ryanbeam.com · faithiepoo.com · parmet.net · wilyness.com · maestrosdelweb.com · asmallvictory.net · ordinary-life.net · radicalcongruency.com · grudnuk.com · milbertus.com · cafe.weblog.com.pt · wrt-brooke.syr.edu · [munuviana.mu.nu](http://munuviana.mu.nu/archives/028473.php?ref=magicpages.co) · tribolum.com · nicoleswan.com · redwolf.com.au · bri-man.com · [cruftbox.com](http://cruftbox.com/blog/archives/000940.html?ref=magicpages.co) · allthepages.org · tonkinese.net · gaiser.org · macchianera.net · [struat.com](http://www.struat.com/here/002282.php?ref=magicpages.co) · blogdaddy.com · claytonhackett.com · msmk.org · livinginindia.com · w8in.com · garylapointe.com · insanus.org · rodentregatta.com · codepoetry.net · lomara.org · thebishop.net · karmakars.com · fotoslop.com · dailything.com · andshesaid.com · strangechord.com · blog.arvind-satya.com · rit.edu · sgtstryker.com · melankolia.net · sports.intertext.com · onefinejay.com · anthropomorphy.org · mt.juby.net · kenyattacheese.net · karavshin.org · nambiar.org · mwarden.f2o.org · numenor.ca · teammurder.com
19
still have the post at the address it was written at
80
still the writer’s, but the post is gone
137
lost to somebody else, or gone entirely
The gap between those two numbers is the thing worth looking at. A name is cheap to keep and hard to lose by accident. The writing behind it is neither. Of the ninety-nine, nine redirect to wherever the writer went next, and three carry a note where the blog used to be: asmallvictory.net says “the end”, and gives a forwarding address. Of the rest, thirty-five belong to somebody else now, parked or for sale or filled with spam, and a hundred and two answer nothing at all.
The announcement is still quoted, and so is the best response to it, Mark Pilgrim’s “Freedom 0”, written the next day. Neither is still at the address where it was published. Both survive because other people kept copies.
Pilgrim’s piece was a reaction, the same as the 236 from the day before. The difference is what is inside it. He sets out what the old license allowed, what the new one allowed, what it would cost him, and why he objected. You can read it today knowing nothing about Movable Type and follow every step.
I should be careful about what that proves, though. The posts that died were mostly on personal sites that lapsed, and the ones that survived had somebody else keeping them. I tested whether addresses answer, not whether the writing was any good. All I can fairly claim is this: Pilgrim’s essay is readable by someone who has never heard of Movable Type, and a post saying “I can’t believe they’ve done this, see Mena’s announcement” would not be, even if its address had held.
## Write for somebody who wasn’t there
That is the whole craft of it, as far as I can tell, and it costs nothing.
Name the date. Say what the thing said, rather than pointing at it. Quote the number instead of calling it high. Write “in August 2026” rather than “recently”, because a reader in 2036 cannot tell whether you meant last week or last decade.
If you print, this matters more rather than less. The copy in somebody’s flat is the one that outlives your address, and it is the one you cannot go back and fix. Everything in it has to work without you standing next to it.
It is also the same discipline that makes a claim checkable. A sentence with a date in it can be verified, argued with, or corrected. A sentence that gestures can only be believed or ignored. Researching the other parts I found several widely repeated dates that were simply wrong, and they were correctable only because somebody had written a specific claim down. Nobody can correct “a few years ago”.
## Hosting is not preservation
I sell hosting, and I want to be plain about what it is not.
A host keeps your site answering while you pay. It is not an archive, it has no duty to outlive your subscription, and mine will not. The Internet Archive might have a copy of your work or might not, and owes you nothing either way: it is a charity with its own legal problems, doing a job nobody assigned it.
So the person who survives their supplier is the one holding their own copy. Not a backup inside somebody’s control panel. A folder of files, on a disk you can see, that opens without anybody’s permission. Run the export today and open what comes out, because the version of you who needs it will be having a much worse week.
That, and the printed copies. Paper turns out to have the longest support window anybody ever shipped.
Write it, so a stranger in ten years can follow it without you, and keep the address so they have somewhere to arrive. The copy that depends on neither of us is the one I would bet on.
### Five places worth visiting
URL: https://www.magicpages.co/a-press-of-your-own/five-places-worth-visiting/
Last updated: 2026-09-04T21:16:25.000Z
What these five have in common is not what they publish, but where. Each lives at a name its owner controls, and each got there a different way. The routes are the reason they are here.
Two are Magic Pages customers, marked below.
---
**kottke.org** – Jason Kottke registered this in December 1998 and has published there ever since. Not moved onto it, not migrated. He started there, and he is still posting daily. The footer still reads “home of fine hypertext products since 1998”. Blog platforms arrived and left. So did social networks, and then the newsletter boom. All of it happened alongside one man at his own domain, writing.
**theapiarist.org** *(hosted by us)* – A scientist in Scotland, writing about bees since 2013, now around a million words in. What earns it a place is one paragraph on his about page: no advertising, no merchandise, no affiliate links, no sponsored posts, and no equipment accepted in return for a favourable review. Anything he reviews he bought himself, out of what he calls “the meagre profits from my honey sales and talks”. Since 2024 the site has had paying readers, which he calls sponsors, and he writes that they are what make it sustainable. That he had to start charging is the most useful thing on this page, and I’ll come back to it later.
**republik.ch** – A Swiss magazine for politics and culture, crowdfunded in April 2017 and publishing since January 2018\. It is a cooperative, funded by more than thirty thousand subscribers, and it puts its annual accounts online. Its own description of who owns it was the clearest sentence in all of this research. *“Wir gehören niemandem – aber jedem unserer Mitglieder ein bisschen.”* We belong to nobody, but a little bit to each of our members.
**pluralistic.net** – Cory Doctorow calls his method POSSE, for Post Own Site, Syndicate Everywhere. He writes the day’s post here, then reformats and republishes it as a newsletter, a Medium post, a Tumblr post and threads on two social networks. The site carries no trackers and no advertising, and its privacy policy says it collects no data at all. Everything on those other platforms is a copy. This is the original.
**dispatch-media.com** *(hosted by us)* – Jacob Furedi launched Dispatch on 1 April 2025 with a piece arguing that this was the worst possible moment to start a magazine of long reportage. Then he asked what if it was also the best. About a hundred and forty pieces since, roughly twice a week, paid for by readers. It is the youngest thing here by years rather than months, and that is why it is on the list: the road is still open, and somebody took it last spring.
---
Kottke never left, because he never joined anything to leave. The Apiarist refuses the advertising economy outright, and puts the refusal where you can read it. Republik answered the ownership question in its founding documents. Doctorow treats his own address as the original and everything else as a copy. Dispatch started anyway.
The Apiarist’s sentence is the honest counterweight to all of this. Owning your address pays for nothing. It won’t find you readers, and it won’t keep the lights on. He has been at it for thirteen years, a million words in, and still had to start charging to keep it going.
Every publication on this list worked. That is the flaw built into choosing five places worth visiting: I can only point you at the ones still standing, and neither of us knows how many people did the same thing and stopped.
So what these five share is smaller than independence — yet it’s worth having anyway. Any of them could decide tomorrow to change the software, the host and the entire way the thing works.
You’d still find them at the same address.
Where to go next All five re-checked on 16 August 2026.
- [kottke.org](https://kottke.org/?ref=magicpages.co)
Daily, at the same name since 1998
- [theapiarist.org](https://theapiarist.org/?ref=magicpages.co)
Bees, since 2013, about a million words in · hosted by us
- [republik.ch](https://republik.ch/?ref=magicpages.co)
Swiss politics and culture, owned by its members
- [pluralistic.net](https://pluralistic.net/?ref=magicpages.co)
Written here first, copied out everywhere else
- [dispatch-media.com](https://dispatch-media.com/?ref=magicpages.co)
Long reportage, twice a week since 2025 · hosted by us
### A short history of the home page
URL: https://www.magicpages.co/a-press-of-your-own/a-short-history-of-the-home-page/
Last updated: 2026-09-04T21:16:12.000Z
In 1996 your address might have been **geocities.com/RodeoDrive/4021**.
You didn’t choose the number. You chose a neighbourhood, because GeoCities was laid out like a town: Hollywood for entertainment, Area51 for science fiction, RodeoDrive for shopping. You picked a district, the system handed you a plot in it, and then you printed that whole string on the back of your zine and hoped people typed it correctly.
You could have had a name of your own instead. Domains existed. In 1996 one company, Network Solutions, had the exclusive right to sell .com addresses and charged a hundred dollars for two years. So the choice was fifty dollars a year and some technical homework, or free and immediate.
Almost everyone took free, and they were right to.
But if you print things as well, you have a version of this problem that people who only publish online don’t. A dead link on a website is annoying: somebody clicks it, gets an error, searches your name, finds you anyway. A dead address on the back of a printed issue is permanent. Those copies are in people’s flats, in distro boxes, in a library in another country, and every one of them points at a place that now belongs to somebody else. You can correct a website in an afternoon. But you cannot correct three hundred printed copies.
If you have ever applied for an ISSN, this is a problem you already know. You registered a permanent identifier so a librarian in thirty years could still work out what your magazine was, and you did it before the first issue rather than after the sixth.
## The price stopped being the reason in 1999
Network Solutions was sued in 1997 and dropped its price to seventy dollars for two years. Then, in 1998, a new nonprofit called ICANN took over the job of deciding who is allowed to sell domain names, and opened it to competitors. That ended the monopoly, and prices fell hard. By the end of 1999 the registries were charging six dollars a year for a name, and what people paid at the counter came down with them.
It has stayed down ever since. In 2026 a .com is somewhere between ten and twenty euros a year, depending where you buy it and whether the price you were quoted was for the first year only. It costs a magazine with forty readers exactly what it costs a billion dollar enterprise.
So owning your address never became impossible or expensive. It got cheap in 1999\. Free was still less work, yet its cost arrives so much later that it looks like bad luck rather than a decision.
## Two different things can be taken from you
The story usually gets told in chapters: personal sites, then blogs, then platforms, then feeds, with each step handing a little more control to somebody else. That flattens two separate problems into one.
One is who owns the software you write in. The other is who owns the address people find you at. They are not the same question, and they come apart in every combination. Three of the four have sections below. The fourth, your own software at somebody else’s address, is a Jekyll site on github.io: you keep every file, and they keep the name.
Two questions, four combinations Who runs the software, and whose the address is. They are not the same question.
their software · their address
GeoCities, Splinder, Blog.pl, and Substack on substack.com
their software · your address
Substack with a domain attached; a managed Ghost or WordPress host
your software · their address
your own HTML on a GeoCities page; Jekyll or Hugo on github.io
your software · your address
Ghost or WordPress on a server you rent yourself
Two things to own, not one. Lose the address and every printed copy is wrong. Lose the software and you move house, keeping the name.
## Their software, their address
GeoCities, Splinder, and every free blog host since. Somebody else runs everything and your name sits inside theirs.
Dada, the media group that owned Splinder, announced on 22 November 2011 that it would close ten weeks later. Splinder’s own front page was still counting that day: 707,867 blogs created since 2002\. Dada behaved decently and gave everyone an export file and a redirect from their old address to a new one. In contrast, when Onet and Wirtualna Polska closed Blog.pl and Bloog.pl in early 2018, they gave people the export and no redirect at all.
If you only published online, the Blog.pl outcome costs you a few months of confused readers. If you had printed that address on the back of three hundred copies, some of them in libraries, the redirect is the difference between those copies still working and those copies being wrong forever. Nothing forced either decision. Somebody chose, in a meeting, and the people whose printed addresses were at stake were not in the room.
## Their software, your address
A zine on Substack, or on a managed Ghost or WordPress host, with a domain of your own pointed at it. Somebody else runs the software, and the name people type is yours.
It is older than people think. Blogger launched in August 1999, and for its first decade you could write in Blogger and have it push the finished pages onto a server of your own, at your own address. Google bought it in 2003 and switched that off on 1 May 2010, after which your blog lived at a blogspot.com subdomain unless you pointed a domain you owned at Google’s machines.
The current version of the same exposure is quieter. Medium will let you put your own domain on a publication, and as of August 2026 its help pages say you need an active paid membership to keep it. You own the name. Whether the platform answers to it is their decision, renewed monthly.
That is what going wrong looks like here, and it is survivable. The platform changes its terms, its prices, or what it is willing to host, and you keep the name and rebuild behind it.
If what you care about is the address on the back of a printed issue, you can stop here. It solves that completely. A platform can throw you off tomorrow, and if the name is yours you can set the same address up somewhere else over a weekend, and all three hundred printed copies still work. The address is the part that print pins down. The software isn’t.
It is not quite as simple as pointing, though. A domain only works somewhere that has agreed to answer to it, and that is the platform’s decision, not yours. Most paid plans allow it. Some charge extra, and Substack asks fifty dollars once. Some free tiers won’t do it at all. It is worth asking before you commit to anything.
Get that right and every copy you have ever printed keeps working. Nothing else in here is necessary for that.
One more difference only shows up on the day you leave. Anyone can download and run the software behind Ghost and WordPress, so a hosted account is one company among many running a copy of it for you. Leave, and you move the site to another company running the same software, and it works the same the next morning. Only Substack runs Substack, so going elsewhere means building the site again from scratch. You keep your writing and your subscribers’ email addresses, which for a newsletter is the part that matters. An afternoon against a project.
I make my living from managed hosting for Ghost, so that argument happens to favour me. Discount it accordingly.
## Your software, your address
Running the software yourself answers a different question, and it is not automatically better. It has more suppliers in it, not fewer. What it settles is who decides what happens to the tool you write in.
On 13 May 2004, Mena Trott of Six Apart published the pricing for Movable Type 3.0\. Movable Type had been the serious publisher’s tool for three years, never open source but free enough: the site said there was no fee, though a donation was appreciated. Version 3.0 introduced licenses. The free one allowed one author and three weblogs. The paid ones started at $69.95 and capped weblogs too, at five, then eight, then ten.
Six Apart was, Trott wrote, “fairly comfortable these licenses will meet the needs of over 85% percent \[sic\] of our current users.”
Two hundred and sixty-seven replies from two hundred and thirty-six different blogs are attached to that post, timestamped between five in the morning and ten at night the same day. “Looks Like I’ll Be Dumping MovableType Soon.” “Movable Type RIP?” “And that’s the end of that.”
The clearest was Mark Pilgrim’s, the next day, under the title “Freedom 0”:
> With Movable Type 2.6, I was allowed to run 11 sites. In 3.0, that right will cost me $535\. It’s not about money; it’s about freedom.
Six Apart retreated over the following two years and open-sourced the whole thing in December 2007\. People had already gone. They could go because the software was theirs to move: WordPress 1.0, released on 3 January 2004, four months before any of this, already shipped an importer for Movable Type.
It happened again in August 2005, when twenty of Mambo’s core developers walked out over who controlled the project. Mambo was run by an Australian company, and when that company set up a new foundation the developers judged it handed control to the company rather than to them. They took the code, because the license let them. They could not take the name, which the company owned, so they picked a new one and called it Joomla. Mambo’s last release was in 2008\. Joomla shipped version 6.1.2 in July 2026.
In November 2012, John O’Nolan wrote that WordPress “no longer has a purpose. It’s no longer for anything specific, it’s for everything you can imagine doing with it,” and proposed building something that was only a publishing tool. He called it Ghost. The Kickstarter he ran the following spring closed on 28 May 2013 with £196,362 from 5,236 backers, most giving ten or twenty-five pounds. He promised on the campaign page, before the organisation existed, that it would be a non-profit.
Ghost is run by a non-profit foundation registered in Singapore, set up with no shares and no shareholders. In its own words, its constitution “ensures that the company can never be bought or sold”. TYPO3, a content management system which a great many German agencies grew up on, is held by a non-profit association in Switzerland. Both settled the ownership question in their paperwork rather than leaving it to whoever happens to be in charge. Neither has an owner who could sell it, whatever the people currently running them might want.
## Why there was anywhere to go
WordPress exists because of a man in Corsica having a bad year.
Michel Valdrighi started b2/cafelog in June 2001, on dial-up. He put it under a license that let anyone copy and continue it. His reason, in his own words: “I didn’t want the code to end up abandoned and forgotten because of the choice of an exotic license.” Then in May 2002 he lost his job. After that came depression, health problems, and at one point the electricity being cut off. His last post was December 2002.
On 24 January 2003 a nineteen-year-old in Houston wrote:
> My logging software hasn’t been updated for months, and the main developer has disappeared, and I can only hope that he’s okay. What to do? Fortunately, b2/cafelog is GPL, which means that I could use the existing codebase to create a fork.
That was Matt Mullenweg. Mike Little answered the next afternoon and offered to help. Two people, which is what it took to start the software that in 2026 runs about two in five websites. The license Valdrighi chose so his work wouldn’t be abandoned is the exact reason it wasn’t, at the moment he couldn’t carry it himself.
## It really was harder
None of that would matter if running your own installation stayed the preserve of people who enjoy wrangling servers, and for a long time it did. The difficulty fell away in pieces, years apart. Keeping a site patched was a manual job until WordPress switched on automatic security updates in October 2013\. Certificates cost money and were installed by hand until Let’s Encrypt opened in December 2015.
Managed hosting sold a paid shortcut through those middle years, from WordPress.com VIP at $250 a month in 2006 to Ghost’s own hosting at $5 in 2013.
## What none of it protects you from
In September 2024, a dispute between the hosting company WP Engine and Automattic, the company Mullenweg went on to found, ended with WP Engine losing access to the plugin and theme update servers. Those servers are part of WordPress.org, which despite the name is neither Automattic’s nor a foundation’s: Mullenweg controls it personally. Sites belonging to people with no part in the argument stopped getting updates. In December a court ordered Mullenweg and Automattic to restore access.
So there is always somebody upstream, and no arrangement puts you outside everybody’s reach. What running your own installation gets you is more modest, and it is exactly what publishing has always meant by independence: you choose your suppliers, and you can change them without losing what you made.
## Why people still don’t do it
I had domains in 2005\. My first website was for my local scout group, built in Microsoft Publisher and long since gone. After that came a stack of Joomla sites about everything and nothing, then hand-written HTML, then a few years trying and failing to make a living building WordPress sites. I paid for hosting. I knew what a DNS record was.
And then for most of a decade I published on other people’s platforms, because that is where the people were.
So the reason has nothing to do with money or difficulty, and I don’t believe there is an argument that changes it. A platform hands you readers on the first day. Your own address hands you an empty room and a renewal date. Anyone telling you the choice is obvious isn’t being straight with you.
This history won’t talk anybody into anything. What it can do is tell you which arrangement you are in, which is worth knowing before somebody else decides to change it.
Especially if you have already printed the address.
### A press of your own
URL: https://www.magicpages.co/a-press-of-your-own/what-the-platforms-keep/
Last updated: 2026-09-04T21:15:59.000Z
Delete a Tumblr blog, and thirty days later the name goes back into circulation. Anyone can take it. Not a blank page where your writing used to be, and not a note saying where you went. Somebody else’s blog, at the address you shared and potentially printed on the back of every copy you ever handed out.
That rule is written down in Tumblr’s own help pages, and by industry standards Tumblr is being unusually straightforward by publishing it. Most platforms don’t say what happens to the name you had on their service after you leave. Where forwarding is offered at all, it lasts as long as you keep paying, and the help pages say nothing about the day you stop. WordPress.com is the honest exception: it sells the forwarding as a product, for about thirteen euros a year, as long as you keep buying it.
The usual advice is to own the whole stack: run your own server, host it yourself, depend on nobody. That is a lot to ask of somebody who only wants to publish.
Own one thing instead, and it is not the software, the server or the mailing list. It is the address. Own that and every other decision stays reversible. The platform, the software and the list are all suppliers you can change, and most of what follows is about choosing them on how easily you can.
## What an address actually is
On a platform your address is usually a name sitting inside theirs: **example.substack.com**, or **medium.com/example**. That string is what ends up in someone’s bookmarks, on the back page of an issue, in a library catalogue, and in the search box eighteen months later when a stranger half-remembers you.
The alternative is a name of your own: **example.com**. That is a domain, and you rent it from the organisation that keeps the register for that ending, through a registrar, which is really just a shop that does the paperwork. Porkbun, Namecheap, Gandi, your existing web host. In 2026 a .com runs somewhere between ten and twenty euros a year depending on where you buy it, and nobody asks what you plan to put there. Check the renewal price rather than the first-year one: the gap between them is where registrars make their money.
The anatomy of an address
apressofyourownthe name.substack.comthe bit that belongs to them
apressofyourownthe name.comthe bit we rent, in our name
One is free. The other moves with you.
Once the name is yours, you decide what it points at. Point **example.com** at Substack today, at a WordPress site in two years, at a single page saying you’ve stopped in ten. Same name every time, so nobody has to be told anything.
Nearly all of them will let you put that name on the front. Ghost and Beehiiv include it, Substack charges fifty dollars once, and the setup is two lines of configuration you copy from their help page. Your name on the door, their machinery behind it.
## Why the address is the part that matters
Because it’s the thing that lets you leave without starting again.
Say you spend three years publishing at **example.substack.com**. You write two hundred pieces. Other people link to them, a few get shared around, some end up in reading lists and library catalogues and other people’s bibliographies. Your readers have the address in their bookmarks. It might even be on the back of a printed issue you publish.
Then something changes and you want to move. The writing you can take, mostly. The address you cannot, so all two hundred of those links now point at a page somebody else decides what to do with. You start again from nothing and spend a year telling people where you went, and some of them never find out.
Now, say you spent those same three years at **example.com**, with Substack running the site behind it. You want to move. You change where the name points. It takes an afternoon of setting up redirects. Every old link still works, because the links were always to your name and not to theirs. Your readers don’t notice, and mostly shouldn’t have to.
Same writing, same platform, same three years. The difference is about fifteen euros a year and one decision made at the start. The address is the one thing you can’t rebuild, so it’s the one thing to hold. Everything else you can pick on the merits.
## Then choose a platform, and choose based on what you can take out
With the address settled, picking a platform becomes a much smaller decision, and you can pick on the thing that actually matters over time: how much of your work it lets you take with you.
### Can you get the writing out, and does everything come with it?
Most platforms have a button that packs up what you’ve written and hands it back as a file, and what lands in that file varies wildly. Tumblr is generous: you get your drafts and your private posts, not only the things you published. But the page design goes in the bin with the blog, and it was never in the file to begin with, so whatever you spent a weekend getting right in 2019 exists nowhere except in a screenshot, if you took one.
Medium hands you your articles as web pages and keeps the pictures. What you get is a line of code pointing back at Medium’s servers where each image used to load from. Open the file on a train with no signal and you will see exactly what you own.
So don’t ask whether there’s an export. Ask what comes out of it. Run one on your first day, before you have anything to lose, unzip it and look: are the pictures in there, are your drafts, is anyone’s name attached to anything. Ten minutes, and it tells you more than the feature list ever will.
What six exports hand back From each platform’s own documentation. Checked 17 August 2026.
| Platform | the writing | drafts | the picture files | email addresses | their names |
| --------- | ------------------ | ------------------ | ----------------------- | ------------------ | ------------------ |
| Tumblr | in the export file | in the export file | in the export file | never collected it | never collected it |
| Medium | in the export file | in the export file | on their server | never collected it | never collected it |
| Substack | in the export file | in the export file | on their server | in the export file | never collected it |
| Patreon | on their server | on their server | on their server | in the export file | in the export file |
| Ghost | in the export file | in the export file | on a disk you can reach | in the export file | in the export file |
| WordPress | in the export file | in the export file | on a disk you can reach | never collected it | never collected it |
- in the export file
- on their server
- on a disk you can reach
- never collected it
Only Tumblr puts the picture files in the export. Medium and Substack leave them on their own servers, reachable until they are not. Run Ghost or WordPress yourself and they are already on your disk — if somebody hosts it for you, you have to ask them.
### Can you get your readers out, and what’s actually in the file?
No two platforms mean the same thing by this. Substack gives you a list of email addresses. Its own help pages say you can’t take your subscribers’ names, which for a lot of people is most of the relationship.
Patreon goes furthest. Its rules say that if you leave, you delete the list it gave you and stop using it. Names, email addresses, the lot. You built that audience over years of making things for them, and it stays on their side of the door.
And on Patreon the list was never quite what it looks like anyway. Handing your email address to a creator is switched on by default, and a reader turns it off if they’d rather not. So the file isn’t a record of people choosing to hear from you. It’s a record of people who didn’t change a setting.
### Can you point your own domain at it?
Check this one before you write anything. Substack will do it for fifty dollars, Ghost and Beehiiv include it at no extra cost, and a few smaller places still won’t do it at all. If yours won’t, you are building at their address whether you meant to or not.
## What can still change under you
All of that assumes you’ll want to move one day.
Until 18 September 2023, you could read three paid articles a month on Medium without paying for them. Then you couldn’t. Medium deleted nothing that day. It changed one rule, and the change reached backwards. An article published in 2019, when any passing stranger could still read a few for free, was now shut to everyone outside the paywall.
Nobody asked the people who wrote those articles. There was nothing to appeal, either, because from where Medium sat nothing had gone wrong. A company changed its pricing. Companies do that. Every article was still online, still under its author’s name. All that changed was who was allowed to read it.
This is the part people don’t plan for. They plan for a platform shutting down, which is the loud version and honestly the easy one: you get a date, an email, a button to download your work, and a few weeks to be angry. What you actually need to be ready for is smaller and quieter. The rules change, the change reaches backwards, and the only real answer is to be able to leave.
## What it doesn’t get you
Owning the address doesn’t make you self-sufficient, and I’d rather say so plainly than let you find out later. The site still has to sit on some company’s computer, and that company has rules about what it will keep there. I run one of those companies. Every host publishes a list of what it won’t carry. I have turned down three sites in three years: two for hate speech aimed at minorities, one for copyright infringement. I would make all three calls again tomorrow.
None of that was my personal taste. Magic Pages is registered in Austria, so Austrian law draws the line, and Austria draws it in places some countries don’t. Every host has a line like that, and in most cases it’s set by the country the company is registered in rather than by anything its owner believes.
So a domain doesn’t put you outside anybody’s rules. What it does is let you leave. It works in the other direction too: somebody I turn down keeps their name, finds a host that will take them, and the readers who already know where to find them still do. The name is yours, you can take it to a different company whenever you like, and nobody in that arrangement has a product decision to make about your archive. There is no version of it where somebody changes the terms of what you published in 2019.
Which is why the order matters more than the choice. Buy the name first, for the price of a couple of coffees a year, before you have written a word, and buy it at a registrar of your own rather than through the platform you are about to use.
Check how much of your work each platform hands back when you leave. Then pick whatever suits you.
### Can you be friends with your competitor?
URL: https://www.magicpages.co/podcast/episodes/episode-7-murat-corlu/
Last updated: 2026-09-03T09:47:18.000Z
## About this episode
Murat Çorlu is the founder of [Synaps Media](https://www.synapsmedia.com/?ref=magicpages.co) – a managed Ghost host built, in his words, as "a calmer way to run Ghost." He's also a direct competitor to Magic Pages, and a friend, which is exactly why Jannis wanted him on. Murat traces the path from a 2015 SaaS for news sites (Synaps News), through a Mastodon-hosting detour after the Twitter exodus, to going all-in on managed Ghost hosting – and why he intends to keep the team small and the service affordable on purpose.
The heart of the conversation is two competitors deciding the Ghost market grows by cooperating, not cannibalising: helping publishers leave Substack and WordPress, closing the internationalization and payment gaps that lock people out, and contributing upstream. Murat tells the story of the theme editor he built and open-sourced – which Ghost then shipped a native version of – plus his wishes for Ghost 7, ActivityPub and [fedi.pub](https://fedi.pub/?ref=magicpages.co), and what it's really like to run a hosting company as (almost) one person.
## Chapters
- **0:00** — Welcome — meet Murat and Synaps Media
- **0:29** — Who Murat is: a Turkish engineer in the Netherlands
- **1:33** — Before Synaps Media: the 2015 Synaps News project
- **2:14** — The Mastodon detour after the Twitter exodus
- **4:25** — Finding the Ghost hosting niche
- **6:16** — The joy of hosting publishers
- **8:21** — "A calmer way to run Ghost"
- **10:49** — Friends with your biggest competitor
- **18:19** — Growing the market, not stealing customers
- **22:39** — What's missing: internationalization
- **27:22** — The theme editor — building and open-sourcing it
- **32:55** — Ghost ships a native version (with Hannah)
- **35:46** — Contributing to Ghost Core, and talking to the team
- **40:40** — Ghost.org vs Ghost Pro confusion
- **50:16** — Meeting John and the core team
- **52:17** — Wishes for Ghost 7
- **55:34** — ActivityPub, and fedi.pub
- **56:49** — Running a hosting service solo — fun or risky?
- **58:47** — Staying small and affordable
- **1:03:02** — Working with a team
- **1:07:58** — Wrap-up, and see you in Hamburg
## Links & mentions
- [Synaps Media](https://www.synapsmedia.com/?ref=magicpages.co) — Murat's managed Ghost hosting — "a calmer way to run Ghost"
- [Ghost](https://ghost.org/?ref=magicpages.co) — the open-source platform both hosts build on
- [fedi.pub](https://fedi.pub/?ref=magicpages.co) — Murat's tool for public profile links for a Ghost ActivityPub handle
- [The in-Ghost theme editor](https://www.magicpages.co/roadmap/edit-your-theme-directly-in-ghost-admin/) — the open-source theme editor Murat built, picked up by Magic Pages
- [muratcorlu.com](https://muratcorlu.com/?ref=magicpages.co) — Murat's personal site
- [Vellumine](https://vellumine.com/?ref=magicpages.co) — Chris's search & analytics tool for Ghost (episode 3)
- [PayGlue](https://payglue.io/?ref=magicpages.co) — André's payment middleware for Ghost (episode 6)
- [Indiecon](https://www.indiecon-festival.com/?ref=magicpages.co) — the Hamburg publishing festival Jannis and Murat are both heading to
## Transcript
**Jannis:** Hi and welcome to the Magic Pages podcast where we sit down with the people building hosting and publishing on Ghost. I'm Jannis and today I'm here with Murat, the founder of Synaps Media, which full disclosure is a direct competitor to Magic Pages. Murat is also running a managed hosting service for Ghost and I've been looking forward to this episode for a long time. Murat, welcome.
**Murat:** Thank you. Thank you for having me.
**Jannis:** My absolute pleasure. Murat, can you introduce yourself quickly to the people who don't know you yet?
**Murat:** Yeah, I'm Murat Çorlu. I'm a Turkish man living in the Netherlands since more than nine years with my family, with my ten years old son, with my wife. I'm a software engineer with more than 20 years experience and since almost three years. I left my regular job and started working on Synaps Media and here. I am.
**Jannis:** Murat, to start off, can you take us back to the time before Synaps Media? What was going on in your life before that and what did you see in the Ghost ecosystem that made you decide that the world needed your version of a managed hosting provider for Ghost?
**Murat:** The story of Synaps Media is actually tied to a very long time ago, the roots of that story. During that 20 years of software development experience while working on different companies in Turkey and the Netherlands, I was always working on site projects. It was always the ideal situation to have my own project working on my own work. And in 2015, when I was in Turkey, I started to work on a project named Synaps News. It was about SaaS managed service for news websites.
So you could create a news website like you create a blog without thinking about all of the hosting hassles and there were specific features for journalists. So the name comes from there and actually if you compare with the current situation, even the general idea is very similar. At that time, we had to move to the Netherlands and I had to start working in Philips at that time. Eventually, I had to stop on working on this project. Then a few years later, when the Elon Musk drama happened in Twitter, many people were trying to use Mastodon. And at that time with my friend, we started to work on another managed hosting service for Mastodon and that time the name was Synaps Media.
It was five years ago. We also worked on it, but we missed the wave of people going from Twitter to Mastodon. And even though we finished the project and we didn't have any customers. And then three years ago, I had a chance to for the first time in my whole career to work on this project by full time because I was able to collect some money for the first time in my whole life. And the situation in the Netherlands had a lot comparing to Turkey and yeah, multiple circumstances helped me to consider that, yeah, let me stop working in a salary job and try something at least for one year.
And then in the beginning of 2024, I started working on Synaps Media. And in the past, when I was working on side projects, I was always trying to find a very smart idea that no one talked about and will find a super genius idea. But then in the meantime, when I was getting old, I noticed that this is not very important. It doesn't mean that a successful project will always need a super new idea. I was already using Ghost as my personal blog and a couple of more blogs. I was hosting websites since maybe more than 10 years of my friends. And I really liked Ghost, the experience of hosting it. And at that time I checked the other hosting services. I also noticed magic pages.
**Jannis:** I remember when you signed up for a trial and I thought, wait, I know that guy from.
**Murat:** The Ghost Forum. Maybe I tried to hide myself, but I couldn't take the success that at that time you were only giving a lifetime option and Ghost Pro was the prominent one as of now. And I also didn't find the other options very clear and good enough. And I thought, yeah, this is a good niche. It's a nice ecosystem to be inside. I was already active in Ghost Forum sometime while I was working on the project. And I like the people and the main idea that motivates me, providing a hosting service like for Ghost and for publishers. It's a very motivating thing because I check the websites that are hosted in Synaps Media regularly. And I feel like a part of those publications.
I'm helping them and they are very nice things to be part of. I have now the customers from all around the world, more than 45 countries, I think. I mean, multiple languages. Sometimes I go there and just use translate and try to read what is it about? And it is a perfect feeling. And I already started to get that feeling in the beginning while hosting a few friends' websites. And then in the 2025, I first announced this publicly in Ghost Forum, then announced in multiple places. And since then, I'm fully working on Synaps Media. It was one of the best decisions that I had in my career. Hopefully it will be even better in time.
**Jannis:** Yeah, I love that. And I think while you have a lot more experience in the hosting field or in the software development field as well, I think we come from a similar way of very quickly seeing that joy that it brings to host other publications. Because it's similar to me, like whenever I check some of the websites we host, I end up just scrolling on them for hours sometimes, just seeing all the cool different things that people are doing, everything from those little passion projects. And I always bring up the example of David, the beekeeper from Scotland that we host. I had no idea about beekeeping before I checked out his website.
And then we have some other really cool projects that are more news focused, that reach thousands of people, tens of thousands of people every month. It's not only like a project that we do to also make a living, but hosting is a project where we see that it gives so much back and that it enables so many other people to do what they really like.
**Murat:** It has a social effect in the people's lives, both for publishers and also for readers. And this is a nice effect. I mean, for example, if I could make work on a social media project, you can also consider them as content creators, like the people tweeting in Twitter or X, but it doesn't necessarily mean they are sharing nice things. But the ghost publishers who have something that were to share, they think, were to spend some time on it. It's not just, yeah, I'm eating somewhere now, it's like an Instagram share. They spend some time to write a structured article or share some photos or share some podcasts now. They are results of some effort and it is nice having publications like this.
Nowadays we try to see some contents that have some effort in it, especially in AI times. Some people are just giving their prompt to AI and creates articles just for getting visitors. So in general, I met with very nice people, very special, how can I say, interesting people with Synaps Media and also with other ghost websites in Magic Pages and Ghost Pro as well. They are creating very interesting stuff and I feel very good to be part of this whole community and ecosystem. It's a nice feeling to work on this project. Cool.
**Jannis:** On the Synaps Media website, the first thing that stands out is your title there. It says, a calmer way to run ghost. Can you explain a little bit where that calm framing comes from and what you are calm against? What is the meaning behind that?
**Murat:** Yeah, from the beginning, my intention with Synaps Media was trying to simplify all of the frustration points of a ghost publisher, not just about the ghost, the regular hosting itself, but the things around it, like the domain connection, having an email with the same domain that you publish your ghost website. Some stuff like finding and editing a theme regarding your expectations. When I was using ghost, even though I was mostly happy, I already noticed there are many frustration points about publishing in ghost. In Synaps Media, one of my mission that I had in mind, I tried to provide some solutions for all of those frustration points for the publishers.
I mentioned this in multiple places. I'm trying to make ghost a platform like having a social media account, the mindset of this. When you open an Instagram or TV account, you don't think about the storage. You don't think about how much visitors you will have. You don't think about how many TV you can send a day. So that's a good peace of mind. But in most of the hosting services, even though that makes sense for a hosting service, there are some limits that many publishers don't understand at all. For example, if you talk about one gigabyte bandwidth limit per month. For many people, it doesn't mean anything. All means mostly reducing the noise about publishing a ghost website.
I cannot say it is the most silent place yet, but step by step, I'm trying to remove the frustration points, the places that people hit again and again. And sometimes I'm doing this with special features with the Synaps Media itself. I'm doing by contributing directly to Ghostcore. This is my target with Synaps Media, and I'm doing my best for reaching that point. That's the meaning behind the title.
**Jannis:** Thank you. That makes a lot of sense. Yeah. I already mentioned in the beginning that we're also direct competitors, yet I personally don't think we ever treated each other that way. We're in touch quite frequently. We also met in Amsterdam earlier this year, and we also regularly bounce ideas off each other. So most people would probably look at the Ghost ecosystem and come to the conclusion that our community is so small that the whole thing has to be a zero-sum game. Basically, when Synaps Media grows, Magic Pages cannot grow. And when Magic Pages is successful, Synaps Media cannot be. How do you see that? Do we have enough room for multiple hosting providers in the market? Or is the Ghost market too small compared to, let's say, the WordPress market?
**Murat:** Firstly, I want to share something about this communication between us. I really like direct communication in my whole life. About Ricky positions in the working life, I was always eager to directly talk with the person that we are talking about or having difficulties about communication and directly ask the hard question. So it was the most easier communication style for me. And luckily, I'm now living in the Netherlands. This is the Dutch style communication.
So I'm living in my heaven. And I should also give the credit to you because this communication started with your attempt. When I first announced the Synaps Media in Ghost Forum in, I think, 15 minutes or 30 minutes, you directly wrote to me from Ghost Forum's direct messages. And it was a very warm welcome. And you said, yeah, I was already expecting this because of your message something. It was the trial that gave you away before that. Yeah, maybe. Maybe it was obvious because of my questions in the Ghost Forum.
But it was very nice. And when I tell the friendship between us to my friends or some other people, they always surprised at how come your biggest competitor, you can be friends with that. But I really liked it because this is easier for me. We could act like strangers to each other, even though we accept and we respect what we do and prefer to not talk because we are competitors. But this is stressing. This adds stress to the general communication. Then one year later, we start complaining from each other. That's not a good way. And as you already mentioned, the Ghost Ecosystem is already small. The main target we should focus on to gain more publishers on Ghost itself, not specifically Synaps Media.
If someone moves their website from Substack to Magic Pages, that's a good news for me as well, because that's a chance. The chance of having these publications in Synaps Media in the future is more than having it from Substack. And when the ecosystem grows, then the attention and the focus will be more on the whole product and the things around it. So I never targeted to take customers from Magic Pages or Ghost Pro.
Instead, I'm always focusing on the friction points of migrating from other platforms to Ghost. Many people migrated from WordPress to Ghost in Synaps Media. There are many difficulties. And in every migration, I'm trying to make it a Sumutri experience. And hopefully, we are also talking with you about this. Hopefully we will be able to find a better migration tool for Ghost that can work for all Ghost Pro, Magic Pages, and Synaps Media, and others that will help having more WordPress or Substack users to Ghost.
Instead of focusing on this, fighting each other, or acting like, yeah, this is the way. I think like Yannis is the main blocker for me to gain enough money, that doesn't make sense. That's not real. Even with that friendship, maybe with the help of that friendship, I had a very nice amount of customers in one and a half years. I think you helped a lot because you mentioned the Synaps Media's name and gave link multiple times in directly Magic Pages blog posts and your social accounts. I also try to give my compliments to you in multiple pages. Even sometimes my customers ask, what do you think about Magic Pages? I say nothing wrong with Magic Pages.
I don't think you will not be happy by going there for sure. There are small differences and you can just decide what to choose. If you go there, you are always welcome if you want to go back or yeah, it doesn't matter. So that's, I think, the kind thing. I think that this is also a need in the broader markets, not just for Ghost. If people can consider about the real effects of being harsh competitors with others and trying to tackle others, that doesn't help. Even if financially helps, it doesn't help mentally, it doesn't help motivationally. If I get more customers because of tricking people or because Magic Pages had bad times, I will not feel good.
So it will not be a good feeling. I will not feel it as a success. That's, of course, a view of the life, how can I say? I'm not trying to be rich with Synaps Media. I don't have a plan to be a billionaire or something, even if it will be possible. Probably I will stop somewhere. I always intend to keep Synaps Media small. It's also in the part of the Mission of Ghost team I see in their website, they also intend to keep the team small. And I really like to see this in the Mission of Ghost. I also share that even smaller. My best scenario is in a few years, four or mostly five people, and then just stopping there, not trying to add more features or something.
I don't want that. I want to keep small. And I'm very happy to have a competitor like you. It's a very big chance for me. It was very helpful. It is still helpful. Yeah, you just invite me to your podcast and you will publish this in your Magic Gaze website. That's very nice things. And hopefully we are giving a good example for other people that it doesn't need to be a harsh competition to be successful. We can consider both projects are successful, even though we are competitors.
**Jannis:** And I think you mentioned one sentence that we have talked about a couple of weeks ago as well, which is that the goal should not be to get customers from, let's say, Ghost Pro, which is always the big player because they have roughly about 30,000 customers probably. We don't know exact numbers. We can only guess based on the numbers that they publish. It would be the easiest way for us to target them and just to say, hey, come to us, we're cheaper.
But you said something back then. And also now in your answer here, that makes a lot of sense to me. And I think it's the core of who I think you are as a person as well, because you said the goal isn't to steal from each other. The goal is to increase the market, to show people that are on Substack, that there are aspects of Substack that are, let's say, ethically questionable and that they might have a better time on Ghost and whether that's on Ghost Pro, whether that's self-host on Ghost or on Synaps Media, on Magic Pages or anywhere else, that doesn't matter. And I think that this is such a core belief that you hold that makes you the person that you are running Synaps Media.
And I think we should take that as a Ghost community as the goal, that we don't cannibalize each other, but that we show people the amazing things that Ghost can do, the possibilities you have with Ghost as a software, and to rather expand our entire market rather than fight the little battles in between.
**Murat:** Yeah, I would like to give a real example about this. One of my first customers was a person from Venezuela. And actually, he was a customer of Magic Pages before. I remember he couldn't make the payment to Magic Pages because of the Paddle was not working in Venezuela. He couldn't make the payment and he tried Synaps Media because I used Stripe and it accepted the payment. Now he is still in Ghost because of that. If he could also manage to make payment to me or other services, then, yeah, he will not be able to use Ghost. He will probably go to Substack or WordPress.
But now, even for Magic Pages, he is a potential customer. So if he wants to switch to Magic Pages, it's very easy between the Ghost migrations. So I think that's a clear sign. Having more options in the market, it adds value to the whole ecosystem. There are many people in Ghost Pro, very happy about Ghost, but maybe they are not able to afford the prices of Ghost Pro. Instead of losing them to other platforms, having other managed services adds value to the Ghost ecosystem. Yeah, there are some feature differences or something. People may think if you like each other that much, why don't you merge Synaps Media and Magic Pages? Why you are still competitive?
We even talk about this, maybe you can remember. I do, yes. But I think still having more options, even though we are repeating some stuff with Magic Pages and Synaps Media, still adds value to the ecosystem. Mostly, with Synaps Media and Magic Pages doing the same thing, but there are small differences and that those small differences can make some real difference for some customers. So instead of merging them to a single product and losing some people because of some of the features that you or. I am giving, it's not preferable.
So for a healthy ecosystem, for Ghost in general, I think having more hosting options, easier self hosting opportunities, I mean more local, maybe hosting providers, etc. These will help for sure. I don't think Ghost is the main product here, not the hosting services. If Ghost becomes better, then it doesn't matter how many hosting providers we have. Think about WordPress. I don't know how many WordPress hosting services are there, but all of them earn enough money for them. Some of them are billion dollar companies. That's a good sign that growing the market is the right act instead of fighting each other in a small niche market.
**Jannis:** When you think about Ghost, are there any areas that you hear in your day-to-day life, in your support chats and everything, where people say, OK, maybe Ghost isn't right for me or maybe they outgrow Ghost? Are there any particular areas that you see that we as a Ghost community and the Ghost Core team need to address to keep more people within the Ghost ecosystem?
**Murat:** Yes, my customer base is from many countries and especially from Eastern countries, from Asia or Middle East. The people from them complains about the lack of translations or internationalizations in Ghost. Currently, if someone wants to use Ghost for their publication, even though it is a local news or something, they need to know English just for Ghost admin. Ghost admin can only work in English. So this is a real blocker because, for example, I'm coming from Turkey and I already worked in the news publishing area 10 years ago. I would really like to offer my service to the many news websites. There are more than 10,000 news websites in Turkey, the local news website, but only maybe 5% of them can use an English admin panel for their publications.
So this is a real blocker, I think, for Ghost to reach more markets in the more countries. People mostly complain about it and I'm always considering to find a way to add internationalization to Ghost admin. Even the official teams, Cathy from the Ghost community, made a lot of effort for adding internationalization to many parts of Ghost. The public parts are mostly internationalized, thanks to her. But the translations of the official themes are still waiting for a last touch. I don't know what is waiting, actually.
But yeah, so these are the most important, let's say, complaints about Ghost. And also, for example, I have some customers from Korea. There are some quirks about the URLs in Korean websites in Ghost, especially when you migrate from WordPress. It generates very ugly URLs. That doesn't make sense at all. Last week, one customer from Korea was complaining about this. He said, this is the biggest issue that. I have with Ghost. When I hear that kind of feedback, I always note them down and either consider working on Ghost Core, the code base itself, for fixing them, addressing them in snaps media with a site hacking it or patching it. Yeah, there are more, I think, but this is the biggest issue that I see in general.
**Jannis:** Yeah, interesting. On my side, internationalization is not that much of a blocker in the sense of translations. But what comes up quite often and where people actively leave Ghost is sometimes the lack of payment providers that people say, OK, I want to have paid memberships. But I live in one of the most common countries is South Africa, for example. Stripe doesn't exist there. They can't use paid memberships with Ghost. India still has problems with Stripe, even though Stripe has, let's say, a beta version or a preview version that they use there.
But what I heard from my customers is that it's really complicated to get that because you need special licenses for your business and everything. So. I would also fault that into that. It's the fact that Ghost is very focused on, let's say, the Western world, very focused on English speaking countries. And there is very little effort to expand a little bit. And I think this is definitely something that both the Ghost core team and also we as a community need to maybe bring more effort to for, I don't know, Ghost 7 maybe.
**Murat:** Yeah, that is really that payment providers is also, for example, Stripe doesn't work in Turkey. Same problem. There are many publications in Turkey that. I would really like to suggest, Ghost. But, yeah, the payment feature they were not able to use at all. They are stuck with the advertisement based thing, which is very sad and ugly. And as I said, internationalization is also another thing. Yeah, as you said, the Ghost seems like a product for Western countries only. That is maybe enough for the core team.
But I think it is killing the bigger potential that we have. I think more than two of three of the world doesn't know English and maybe don't able to use Stripe. So having solutions for those countries would help a lot, Ghost in general.
**Jannis:** Yeah, absolutely. You also mentioned that sometimes you contribute your ideas to the Ghost core. Sometimes you solve them in Synaps Media, especially if it's stuff that you can add on top. One project of yours that really shows that and that really has an arc, so to say, an arc of how you had the idea and how it ended up now is the theme editor. And maybe to give some context, before, I don't remember when it was, but let's say last year, definitely, until last year, you were not able to edit themes within Ghost itself. You always had to click on a download button, download a theme, a Ghost theme to your local computer, open a code editor, do whatever edits you want to do, upload it back to your Ghost site and then see the finished product.
You thought that it was annoying and you built a theme editor that lives directly in Ghost that Magic Pages then has picked up. We have made it available to our customers because you've open sourced the whole thing and now Ghost has shipped a native version that was directly inspired by your efforts. It's not the same one, it's a re-implementation, I would say, but can you walk us through that a little bit? What made you decide to build a theme editor specifically and how was it from your perspective that Ghost then picked up that idea and it's now part of what everybody, like all the tens of thousands of Ghost installations all over the world can actually use?
**Murat:** Yeah, actually the same motivation, especially in the first year, almost all of the people that don't continue with Synaps Media, I was talking with people a lot, still talking. And the main problem for them was not Synaps Media itself but Ghost itself and they were complaining about the how hard to edit template because, as I said, most of my customers are from non-English countries and one of the first thing that they want to do is to change that subscribe world in the official theme.
But to change it, as you said, you need to download a zip file, open it and most people don't have a code editor, they are trying to open that handlebars file in either Word or, I don't know, Notepad and then zip it again and upload it again. That's annoying, that was an annoying procedure and people were complaining about this a lot. And since unfortunately, at least until the beginning of this year, there were many PRs in Ghost Core waiting for months or even years to get attention.
So I was not eager to directly open a PR for this because it would be a very huge PR but I intended to give a solution at least in Synaps Media and I started to work on it. Normally, my idea was making it a file manager or something inside the Synaps Media panel but then I noticed that I need to make a huge effort and it will be not that efficient. You will leave the Ghost admin, come to the Synaps Media panel, make some changes and then return back and check the result.
So I was considering to somehow make it in Ghost admin itself as monkey patching the UI with a backend, with a sidecar project but then authentication and the file system storage options that it's not always file system, Ghost can't work with S3 or something. All of things came up and then I realized that actually my career as the web development, I'm a more front-end guy than the backend. I followed all of the improvements in the browser world. Luckily, in the last years, browsers improved a lot so we can do very advanced stuff directly in browsers. I thought that this can be done in client-side directly and made some POC and with the help of cloud, I made an implementation in a few hours and I'm quite surprised that it's working very well because I was expecting it will be slow or it will crash because of huge themes or something.
But it worked very well and since I reached that point, it's just a client-side solution. It was making so much sense to make it open source, to open this to everyone and you also contributed a lot in the first week.
**Jannis:** I remember, I think it was a Saturday, I woke up and I had breakfast and then I received an email from your blog that I'm subscribed to on the newsletter and it was about the theme editor and I was standing in my kitchen and reading this and thinking, what the hell, this is so amazing and I just dropped breakfast, went to our living room where my laptop was and tried it and then messaged you and thought like, this is amazing and then I contributed a little bit but I still remember that moment because it was really that light bulb moment where I thought it is amazing that someone like you who's more front-end guy, I'm more in the backend, that you looked at things and you found a way to basically add this as a, for the lack of a better word, plugin or an overlay to Ghost without interfering at all with it and just the way to get there was absolutely stunning to me.
**Murat:** I'm also very happy about that work because it really helped people, even helped me a lot. I'm really happy to have this feature in Ghost Admin itself. It's very practical, it's very useful. And I was not expecting actually but the good part that John also noticed that and liked the idea and in a very short time, I think in three or four weeks, they implemented very similar version directly inside Ghost Admin with HANA and since then we are working, I think it's like a feature something we were using like 10 years.
I think many people already forget the previous version like downloading and uploading again because this is the way that it should be. This is possible with open source even though I didn't open a PR, they just noticed and made the idea and also gave the credits, not acted like it's just their idea. So these are all nice stuff and recently I also added same style with a PR this time for redirects YAML and root YAML files that I think it's also very nice because a few weeks ago, I was helping to migrate a WordPress site to Ghost and they had to play with redirects file a lot to redirect all URLs to new ones. And every time you download, edit and upload, download, edit and upload, now you are able to edit inside the panel.
It's not that much impressive because we already have theme editor but still good thing. Yeah, that really shows the general picture of my intentions about working on Synaps Media and trying to contribute in Ghost Ecosystem and how things works in open source communities. That was a nice idea. Hopefully we will have more of in multiple places. There are more places like, as you said, the payment providers. That's a bleeding issue for many people. The translations, even maybe the email adapter thing. John was very clear about not having it in Ghost Core, but I don't know. I don't know the reasoning yet. I see a good improvement this year about the communication between the community, the open source contributors and the core developers.
Hopefully this will help in future to work together on more controversial features for the sake of improving the ecosystem. Not, of course, talking about Synaps Media and Magic Pages for Ghost Pro itself. These are all about how and where we will be in five years for Ghost in the market. What kind of people will able to use it and what kind of people will not able to use it. This is about that, I think.
**Jannis:** Yeah, I think I agree with you that this year, the communication between us as open source contributors and the Ghost Core team has improved a lot. Thank you Ghost to Stephen and Austin, the new platform engineers that are working on that a lot in the recent weeks now. I think what we need, at least from my perspective, is a way to communicate about those bigger things. Because I sometimes have the urge to contribute something bigger than a small bug fix or a small improvement to the Ghost Core. And it's a lot of effort to do that. Sometimes you write thousands of lines of code and in the end the communication is very nice.
But we're not really going to merge that into the Ghost Core. So this is the one thing that I'm personally still missing, to have that communication somewhere openly where everybody can contribute to get feedback and to say, hey, this is my idea. What technical limitations do you see? What are the guardrails? What are the internal discussions that the Ghost Core team has had about this before? Because usually right now, the answer that I've received so far was add a PR, a pull request, and then we're going to discuss that pull request. And that's great on the one hand, but on the other hand, it means that a volunteer, in this case, is writing thousands of lines of code just to hear in the end, that's great, but we're not going to merge that.
So I think we're on a great track and we still need a bit more communication about those bigger things to make that more streamlined because we always compare the Ghost Market to the WordPress Market. And I think what the WordPress Market does really well is that hosting providers dedicate development resources to the WordPress Core as well. And this is where I at some point want to get to that. We say, okay, the Ghost Core is not just developed by the team of the Ghost Foundation, but Magic Pages is contributing to that with ideas. Synaps Media might be contributing. Open source contributors outside of a commercial provider are contributing, and that somehow we still have the Core team or something else that can coordinate that and say, okay, if you want to do that, let's bring everybody to the table and discuss that.
Whether that's asynchronous in a written forum of some way, whether we can jump on a quick call with someone, I leave that open to the decision makers on that. But that's, I think, what would help us to get more really cool ideas like your theme editor into the Ghost Core, where maybe the Core team cannot focus on that right now because they have other things that they need to focus on. But we as individual contributors or as other providers in that sense can contribute things, but we need the explicit go ahead for some of those things.
**Murat:** Yeah, I think that you made a very good effort on you as Magic Pages in general, made a very good effort on making this whole picture better. I think I don't remember the whole history of the other many hosting providers in the past, but none of them were that much visible in the ecosystem until you. And I think that helps a lot that even for Ghost team, I think they probably become more aware of self-oasters more than before because it's not just a few people. At least 1,500 people is living in Magic Pages and there are more and they are open people. They are not just trying to get some money from their pool. They are very kind. They are very open for contributing to the Core.
So this is, I think since a few years, this started to change the picture about the ecosystem. I think Ghost team also should consider about the general view of Ghost in the public view. So. I want to give an example. I'm following a Turkish publisher who used Substake since years because he's not earning money from his publications. It's just free, but he has 70,000 members. He made members. Two years ago, he was complaining about some problems in Substake in his personal blog, and I said, did you consider Ghost? He said, yes, I checked it, but it was too expensive for me.
So he's a technical guy. Actually, he is not a software developer, but he was talking about technical world and he was not aware that Ghost is an open source product and there are different hosting providers at all. But I'm able to understand that. A few months ago, a person started a trial on Synaps Media. Then a few weeks later, I got a message from her. She said, the price that I'm now seeing is different than I saw in your homepage. Why is that? She said, I said, what do you see? And at the end, we noticed that she started on Synaps Media, but ended up creating a trial on Ghost Org accidentally.
Because if you go to Ghost Org, there's a getting started button. And when you press that, you automatically start a GhostPro account. So it's very confusing for the people to understand the difference between GhostPro and the Ghost software itself. You need to be very careful in the Ghost.org to understand this is an open source product and actually I can self-host it or there are different sourcing providers. It's not the same in WordPress, for example. WordPress has separate websites, WordPress.org and WordPress.com. In WordPress.org, there is a hosting section that they list big hosting providers other than their official hosting.
So I think it will be helpful. It's not about asking this for a gesture for Synaps Media or Magic Pages. Because if that guy from Turkey would automatically understand that, yeah, okay, GhostPro's prices are for professionals that earn money from their members, then these prices make sense. But I don't earn money from, even Stripe doesn't work in Turkey at all, but I still like Ghost. If he could understand that, yeah, okay, there is Magic Pages and it's affordable even for me, then we could have it in the Ghost ecosystem. He is still using Substech.
I think these are maybe small but very important details about how we show and tell the general picture. Hopefully, we will have better communication with John and the core team in the future and fine-tune that kind of things. I think it will give a huge impact on the ecosystem. Hopefully, we will go there.
**Jannis:** And just to give perspective to that, it happens quite regularly. Just yesterday, I talked to someone that sent a support request to us and said, hey, I just paid $35 to Ghost. Why do I still have to pay for Magic Pages? And then I explained the difference to him and we also have an article actually on our blog that goes into all the different ways. What is Ghost as a software? What is the Ghost Foundation? What is Ghost Pro?
What are the different hosting providers? And he then read through that and then understood it. And then the big question was, okay, I did not want to host with Ghost Pro. I wanted to host with Magic Pages. How do I get my money back? And unfortunately, the question is, you probably won't. The way is to cancel the Ghost Pro site and to continue your site here, because he actually set up his entire site manually on Magic Pages and also has very little ways of transferring that to Ghost Pro, even if he wanted to, because they don't import backups from other hosting providers.
So it's not a one-off thing. It does happen quite regularly. And I think that, or to turn it around from Ghost Pros or the Ghost Foundation's perspective, I understand why it is the way it is. I understand why the focus is very much focused on the marketing sites to get to that Get Started button. But it does hurt the Ghost ecosystem in a way, as you described, that people don't realize that Ghost is more than just Ghost Pro. Ghost is a community. I'm absolutely certain that there are more self-hosters of Ghost than there are customers on Ghost Pro. And there are different hosting providers. And truthfully, even if we add up all the customers on the other hosting providers, we will not reach the level of Ghost Pro.
But it is a growing number. Since the last, I would say, three years or so, the number of Ghost sites on other hosting providers is growing. And it is a very fair question, I think, to ask where that's going to go. Because in the end, Ghost is more than just Ghost Pro, as you pointed out. Yeah.
**Murat:** Yeah, hopefully. Things will be more clear and more communication channels will be opened up in the near future.
**Jannis:** Yeah, definitely. I also think that none of us are complaining about this. I think both of us understand where it historically came from. And I think we're both thinking about the way forward and that we want to contribute to that ecosystem, to that community even more. And yeah, let's see when we find a way to do that.
**Murat:** Maybe it was a remark here because it was last year in January or December, I think. I also had direct communication with John by writing as an email. And I directly shared my concerns about the open source view of the Ghost. He accepted all of the concerns that I had, and he said he is aware of them. And he's planning to address most of the issues. So it was a very nice conversation. So maybe when we talk about this, people can think about that we don't have any communication with the Ghost Core team or John at all.
But we are able to directly communicate with John. This is not about just incidental communication. This is about the general view, general roadmap of the Ghost. We don't have any communication or synchronization about that kind of things. We maybe will not have at all. I'm not able to request to get more information about the Ghost Pro plans or something. But at least for the open source part and how we describe the Ghost software, I think this is an important part. And you can talk about this. We can discuss about this if they want. Hopefully that will be the case. I'm hopeful about this. I consider myself new in the Ghost ecosystem since few years.
It's more than 10 year old software, but still I hope I'm able to add good value to the Ghost ecosystem. Hopefully it will be even more in a good way. And then maybe we will be able to have better communication channels between all hosting providers. So for example, when we are talking about hosting providers, we don't mention anything like the Midnight. We know the name, but I don't know the people behind it. Other than two of us, I think there is no one in many services presented in the Ghost community forum sharing updates or getting questions or something. That's actually a bit sad because they seem to work, they seem to have some customers and they are also part of that whole Ghost experience.
Some people start Ghost publications in Midnight or Digital Press and they decide if Ghost is good or not because of that experience. Sometimes it's good, sometimes it's bad. So if we can able to communicate with each other, maybe this can be a call to those providers. Please share things in Ghost community forum or even in your blog. I don't see a blog that they share about the region or the roadmap or something. We are mostly talking about the three providers, but this is because we are the most visible service providers now. And this is not about blocking any others.
So it will be better to have more service providers active in the Ghost community, Ghost ecosystem, but not just about sharing an advertisement or something. Please come and introduce yourself, try to get the trust of the community and please try to contribute to committees and share your concerns, etc. Then it will be a better, healthier ecosystem at all. So then maybe we can come together with all hosting providers and think about increasing the general experience of Ghost for more people. Now we are only three, unfortunately.
**Jannis:** And that call also goes from my side. Whenever I start this podcast, there is one line in the beginning that says that this is a podcast where. I want to speak to the people building, hosting and publishing on Ghost. And it's usually very easy to find people that are building on Ghost, so tools in that sense, like Chris from Vellumine or Pay Clue last week, André. It is also very easy to find people publishing on Ghost because. I have a repository of 1,500 customers that I can use for that.
But it is very hard to find the people hosting Ghost because there is realistically more. I can interview Mariia Sviatoslav from the Magic Pages team. I can also reach out to Ghost Pro. I'm absolutely sure that one of their team members would come on the podcast, but that doesn't show us the entire diversity. So if there is another hosting provider listening and you want to come on that podcast, my door is wide open. And. I would love to have a similar conversation with you because you are also part of the Ghost community. And I think what we've established is that it is not a zero sum game here. We are trying to expand our market. We are trying to build an ecosystem altogether.
And. I would love to just have that diversity represented on the podcast here as well. And on that note, I also think we joked about it before in our preparation. If anyone from the Ghost Core team, be it John, be it anybody else, is listening to this and you want to jump on a call with us or meet up anywhere in Europe mostly because we're both in Europe. Let us know because I think we're both very happy to do that and would just also love to just bounce ideas back and forth and see where that goes.
**Murat:** Yeah, it would be great to have a meeting with John in person, even better together, three of us even more. That would be a great conversation that will be very helpful for all of us. Unfortunately, a few months ago, I noticed that John's message that I'm in Amsterdam, come and meet with me in the same day, even though I'm in the Netherlands, coming to Amsterdam for me takes more than two hours. So it will be better to be informed earlier.
So I will really want to have a meeting with John, also with other Ghost Core members. It's a part of our life since years. So we are eight hours at least working on Ghost. And these are the people, the core of the team that are making Ghost. So it is an exciting and honorable thing for me to contact with them, talk about the difficulties that they have that I can help anything. So, yeah, I would really like to have direct communication with John or other team members. It will be great.
**Jannis:** Yeah. And I also love Amsterdam as a city. So whenever anybody is in Amsterdam next time, let me know. There are flights from Salzburg, which is close by here. And there's a night train to Amsterdam. I would love to just join that. John, the location is Amsterdam then. We already decided. Or next week in Hamburg, since you're also coming to the Indiecon conference. So if somebody is spontaneous, hit us up and we're both in Hamburg next week.
**Murat:** I don't know when you will publish this podcast, if it will be before that.
**Jannis:** That is very true. It will go out on Thursday. So one day before Indiecon starts.
**Murat:** I think it's enough for John. He is already deciding in the last day.
**Jannis:** Yeah. So we've already talked about quite a few topics more. I want to ask you one last question. We already touched upon that a little bit. Let's look ahead in the Ghost ecosystem. Let's imagine we have Ghost 7\. We're currently on Ghost 6.61\. So for Ghost 7, are there any wishes other than more options for translations and internationalization? Anything that you're missing that you say, you definitely want to see that in the Ghost ecosystem.
**Murat:** Other things can be more opportunities for theme designers and theme developers. I think one of the things that people are getting trouble when they meet with Ghost, coming from WordPress world, is lack of theme options enough and customizing them. There are some new projects that I see for making UI-based theme designers. These are nice, but even making a nice looking design with AI or something, it's not easy. It looks like easy, but generally you end up with an AI slop.
So better would be to increase the options, opportunities for theme developers to make it easier. I think the team development is not that difficult comparing to WordPress or something, but the limitations about what a theme can do about showing and fetching data or something. If we can have more options, more customization options, I think it will attract more designers and then we will have more options. Also, for example, the official theme list is the same since years. Having more bulletin teams in Ghost itself will be very helpful. Yeah, with the internationalization thing, then it will open up bigger markets, way more people, then it will help growing the ecosystem very quickly.
Hopefully we will have that kind of improvements in time. I don't know their plans. This is one of the things that we want to at least get an insight that, yeah, what is the general vision for Ghost 7 or Ghost 8? It will be great to have that kind of things. And we can focus the supporting ideas of this target instead of just about personal things. Yeah, the important part of having new Ghost publishers coming from other platforms, and I think Ghost seems like an alternative to Substack, but this limits Ghost, I think. We should not limit Ghost software with the capabilities or features of Substack. There is a bigger world in publishing area.
I'm not expecting to have WordPress plugins or WordPress themes in Ghost. Hopefully we will not have that kind of things because that was the main pain point of WordPress already. But at least the flexibility and customizability of WordPress is one of the key things people love WordPress. I think we have many things to learn from that in Ghost. Also, borrow some ideas. I also like the Activity Pop social web service as an idea, but it also now seems like a half-baked feature. It's not still there completely. There are many things to do in this area. Hopefully they have some plans to do because we also don't know that.
I think it will be great to make it more mature with mentions, hashtags, and maybe different timelines, and a public profile page. I made a Fedi.pop just because of the lack of this. I think it can be easily done in a Ghost core to make a public profile page of Activity Pop account. Hopefully it will be there in some time. These are the main expectations that. I have for the future of Ghost.
**Jannis:** Yeah, cool. They all make a lot of sense, I think. Let's see where we end up with Ghost 7\. Murat, thank you so much for taking the time for coming on the podcast. I have one last question that I ask every guest. You might already know it. Is there anything that I should have asked that I didn't? Anything that you want to say that we didn't touch upon? Anything that's on your mind right now?
**Murat:** I thought maybe you would ask running hosting service by a single person. Is it fun? Is it risky? Actually, you are not a single person anymore, but it was the case since the beginning of the year. Many people were asking this question to us. What happens if you just disappear tomorrow?
**Jannis:** It always turns very dark. The question is, what happens if you hit by a bus? That is what it always comes in. How fun is it for you? How fun is running Synaps Media as a single person for you?
**Murat:** Yeah, actually, it's going good so far. And I can happily say, especially in the last few months, I started to get less need for the support request because I think it reached a certain level of maturity in the platform. We didn't have any downtime since one year, I think. And it's going well. But for me, I'm not planning to be the only one forever for the system because. I want to be able to go to vacation or something. And. I want to be able to have the right for being sick for some time.
So hopefully, when I reach to a financial situation that I can afford for another team member, a full-time team member, I will definitely look for that. I understand the concerns, but in the meantime, people should understand the advantages and disadvantages of working with a small team or even a single person team. Yes, that's a risk. In the meantime, this is the key of providing that much quality service in that affordable price. If you will have 50 people, if you will need to pay salaries for 50 people, then yeah, the main cost of service will be not the servers, will be the salaries.
So this is also a preference. But. I want to keep affordable because this is what the GOS ecosystem needs. There are a huge amount of countries in the world that cannot afford to pay $40 per month to have a GOS website. I'm talking with the people from the Far East countries, and they say people here are just trying to self-host because that is the only option for them. Otherwise, it's too much, too expensive. When you try to self-host, it's not a very nice experience if you just want to publish some articles. Being affordable is important, and to be affordable, the team size should be reasonably small. As I said earlier, my ideal future expectation is like being 45 people at most, even though if.
I have, let's say, 50,000 websites, that doesn't matter. I will try to make the system stable and sustainable enough with that small team. Generally, there is a misconception that when the customers are increased, you need to increase the people. Generally, teams don't increase people because of the customer counts. They increase because of the new areas that they want to enter. If you stop yourself somewhere to not enter every possible area, just because you can, then you can keep the team small and you can give a very nice service with an affordable price.
**Jannis:** I think it's actually a good sign of a good service, especially hosting service, when you can sustain growth with a small team, because it means that your growing customer base that you have doesn't need you as a support. In my experience, at least, the people that need support are always new customers that come in that have questions. The people that are on magic pages for three years, they don't reach out because their website is set up, their website is working, their emails are running, everything is running smoothly for them. There are literally people I haven't heard in three years from them, which is good on the one side.
On the other hand, you're always losing touch a little bit, but I think it's a very healthy sign if you can sustain growth as a hosting provider with a small team, because it means your overall system is good, and the people that need support and the people that want that support are new customers that come in. So that was a perfect example for that.
**Murat:** Yeah, indeed. We don't know how many people works behind the very popular hosting providers because we generally don't need to contact with them at all. For example, I was using Linode, it was a popular VPS provider, now it's part of Akamai. Yeah, I use it for maybe 10 years, and in total 10 years maybe I need to communicate with their support maybe a few times. So if they could reveal that they were only two people, yeah, that could be possible, because there is a system that is already running, and if you don't need that much support, yeah, the systems that we are creating are actually like a machine that we are programming or something, and it works, it should work by itself.
During today we are not always checking servers and trying to fix the things, so most of the time it just works. We are trying to fine-tune stuff, add new features to make the Ghost publisher's life easier, or contributions to Ghost ecosystem, or write documentation. So I think that probably your routines are similar. This is how we work, and it's quite reasonable to have a single-person hosting service, but as I said, whenever. I have enough financial sustainability for just because of the Synaps media's income, then I will definitely have a second team member.
**Jannis:** And I think the difference between us is that you anticipate that, and I always said, no, I'm just going to stay just me, it's just going to be me, and then at some point I realized, actually, I would also like to just have some downtime at some point, and looking back, Spataslav is now with us for nearly seven months. He started in February this year, and it's been literally the best decision I've made in Magic Pages so far, because now they're with Mariia, there are three people actively thinking about it at the moment, and I had a look at our roadmap and our change log in the last year, and while the overall things that we changed went down, it was a lot more impactful, like things that we added, compared to, let's say, a year ago.
I can only confirm, it's perfectly viable to run a hosting service as a single person, it's a lot more fun to do it with somebody at your site.
**Murat:** Yeah, it's also visible, I should say, that in the last three months I followed your blog, of course, and I'm really surprised how come you can manage to write all of this stuff and publish new features and things, but of course you are now three people, this is not fair, I'm on the one. I cannot compare myself with you anymore.
**Jannis:** And Spataslav is really good at finding those things. When our support chat is very quiet, he just goes through the documentation and just says, that's not right anymore, that was written three years ago, that doesn't even exist anymore. And he then has really developed great skills at updating those things. And I think this is one of the use cases where AI has a great place in our, let's say, tech stack, not in writing the articles, but in finding the gaps. So. I have a little, going a bit off topic now, but. I have a little self-hosted LLM server down in a storage room and sometimes I just tell it to look at our source code for our customer portal, for our backend, and look at all the articles we have published on Magic Pages and find the gaps, and then we just have a list of gaps.
And this is what we use right now to basically update our documentation and add things that weren't there before, that weren't documented at all.
**Murat:** Actually, the biggest challenge for me about being a single people working on the whole service is scattering between the different disciplines of the project. The writing, the articles about the feature, the documentations, or then social posts, or then the implementation itself, backend and frontend, and system monitoring. Monitoring the external services like Mailgun, like Bani CDN. There are many roles. Normally, big companies are giving dedicated person per role, but as a single person, you try to handle all of them by yourself. Sometimes this becomes exhausting, and for example, especially for the documentation and marketing material, let's say, I would really like to have a supporter for this, because it's a different mindset than just writing the code.
There is no good relation between how you develop the feature and how you explain it to the non-technical people. So having this context switching becomes sometimes very hard and tiring. And lack of feedback is also another issue about being alone. Nowadays, AI helps a little about this, but especially when talking about how to implement a feature, not technically, but there is an issue, and. I want to fix it, how should I fix it? In that case, generally, the suggestions of AI, for example, doesn't make sense. He is just trying to make you happy, so he doesn't really criticize.
But when you have a team member who knows the details about the project and the history of it, then you're really able to get very good points. Probably, I can imagine when you talk, three of you, about something, a feature that you consider to add or not to add. It would be very nice to have that conversation with some team members who already know the old details, your customer base, everything. That is what I'm expecting in the future.
**Jannis:** And even more, not only to know the context of Magic Pages, but every Thursday we have our weekly team meeting, and yesterday we had a very good discussion about feedback loops, for example, and everybody just brings different perspectives. I bring the technical perspectives, Vatoslav, from the more support perspective, but also from using Ghost actively. Since he started working here, he has also built his own personal blog, and then Mariia from a really community perspective and the marketing perspective. That is an amazing balance that you just have three different perspectives on the same topic, and that has led to some really great discussions that we've had in the last couple of months.
Yeah, I can imagine. Murat, I can already see that this will be the longest episode of the Magic Pages podcast so far. Sorry. Don't be sorry. It's been incredible fun. I will enjoy editing that episode. I hope that people will enjoy listening to it. I am very much looking forward to seeing you next week in Hamburg for the podcast in a couple of days, and we should do this again at some point. I don't know, maybe in a couple of months, in a year, to just get an update where Magic Pages is, where Synaps Media is, and to see how Ghost has developed in the meantime.
**Murat:** Yeah, why not? It will be great. And thanks you very much for having me in this conversation, and hopefully people will like that conversation. Two competitors talking about hosting services for Ghost. Yeah, I'm certain they will. Yeah, it was a nice conversation.
**Jannis:** Yeah, it's been a pleasure, and see you soon, Murat. Bye-bye. Bye-bye.
### Updated Customer Websites to Ghost v6.62.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-62-0/
Last updated: 2026-09-01T16:26:09.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.62.0 today. You can read about changes included in Ghost's official release.
[Release 6.62.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.62.0?ref=magicpages.co)
### Can my subscribers reply to my newsletter?
URL: https://www.magicpages.co/help/newsletters/can-my-subscribers-reply-to-my-newsletter/
Last updated: 2026-09-01T07:44:10.000Z
Yes, they can always hit reply. Whether that reply reaches you depends on the From address your newsletter uses, and whether there's a mailbox behind it. Sometimes there already is, and sometimes email forwarding is what puts one there.
## If you send from your own domain
Your subscribers see a From address at your own domain, something like `newsletter@yourdomain.com`, and replies are addressed there. So they reach your email provider like any other message for your domain.
If you have a mailbox on that domain, replies are already arriving in it. Nothing to switch on.
If you have no email on your own domain, forwarding is exactly the thing to use. Send from the subdomain rather than your main domain, and the replies come to us. The DNS record you added for `send.yourdomain.com` points at our mail servers, and that's what lets forwarding pick them up.
In Ghost, go to **Settings → Newsletters**, open your newsletter, and set **Sender email address** to something on that subdomain, like `hello@send.yourdomain.com`. Switch forwarding on and replies arrive in your personal inbox, without you running email for your domain at all.
That field only appears in Ghost once your own sending domain is set up. Before that, the From address isn't yours to change.
You can check which address your subscribers see. The **Newsletter** page in the customer portal shows it under **Newsletter From address**, and reads "Not configured in Ghost yet" if you never set one.
## If you send from the default sending domain
This is every trial site, and any site still sending from `mymagic.page`. Your newsletter goes out from `yoursite@mymagic.page`, and there's no mailbox behind that address, so a reply isn't delivered anywhere.
Email forwarding fixes that. It takes everything arriving at that address and sends it to an inbox you name.
## Turning it on
1. In the customer portal, click **Newsletter** in the sidebar.
2. Scroll down to **Email Configuration** and find the **Email forwarding** card at the bottom.
3. Choose **Forward to Personal Email**.
4. Enter the address you want replies to go to. Any address works, including a shared one your team already reads.
5. Click **Save forwarding**.

Forwarding starts working within seconds, and there's nothing to add to your DNS.
You get one destination, not a list. Saving a different address moves everything to the new one. To switch forwarding off, choose **No Forwarding** and click **Disable forwarding**.
## What gets forwarded
On the default sending domain it's one address: `yoursite@mymagic.page`. Nothing else at `mymagic.page` reaches you, because that domain is shared with every other site using it.
If you have your own sending subdomain, forwarding covers every address at that subdomain. Mail to `hello@send.yourdomain.com`, `replies@send.yourdomain.com` or any other name there lands in the inbox you chose, and you don't create those addresses anywhere. That's why one From address on the subdomain is enough to receive replies without a mailbox of your own.
Automatic mail comes through as well, so expect the occasional out-of-office reply. Nothing is filtered out.
## It only works in one direction
Forwarding brings mail to your inbox. It doesn't give you a mailbox on the domain it forwards from, so your reply goes out from your personal address, and that's the address your subscriber sees.
## If nothing arrives
**Check your newsletter's reply-to address.** In Ghost, go to **Settings → Newsletters**, open your newsletter and look at **Reply-to email**. Leave it empty and replies go to the newsletter's own From address. Put an address in it and replies go straight there instead, wherever that address happens to live.
**Check whether your sending domain changed.** Changing it turns forwarding off, and the card tells you: "Forwarding disabled due to domain change. Please re-enable." Set it up again for the new domain.
**Check that your sending domain is verified.** Saving fails until its DNS records are in place, with a message asking you to verify the domain first.
Some older sites send from their main domain rather than a subdomain. That's the one setup where forwarding can be switched on and still catch nothing, because a main domain can't carry the DNS record that brings mail to us, so its mail goes to your own provider instead. Moving to a sending subdomain is worth doing for deliverability anyway, and [configuring your sending domain](https://www.magicpages.co/help/newsletters/how-to-configure-your-newsletter-sending-domain/) covers how.
## If you're on a custom plan
The Newsletter page has no **Email Configuration** section on a custom plan, so there's no card to switch on. Send us the address you want replies to go to and we'll set the forwarding up at our end.
### Why your site is blocked in Spain during football matches
URL: https://www.magicpages.co/help/features/why-your-site-is-blocked-in-spain-during-football-matches/
Last updated: 2026-08-30T07:16:45.000Z
Spanish internet providers might block your site's address (or specifically the IP addresses it's served from) while LaLiga matches are on, and access comes back once the match ends.
It hits your readers in Spain, as well as yourself if that's where you are located.
## What's actually happening
A December 2024 order from a Barcelona commercial court lets LaLiga hand Spain's biggest providers a list of IP addresses to block during a match. Movistar, MasOrange, Vodafone and DIGI all apply it. The intended targets are pirate football streams.
The catch is that those streams sit on the same shared infrastructure everyone else uses: behind a Cloudflare firewall and proxy. Your Magic Pages site is served through Cloudflare's network, where a single IP address can resolve to many different sites from different providers. Blocking a handful of IP addresses leads to hundreds of thousands of unrelated sites go dark in Spain at once.
OONI, a nonprofit that measures internet censorship, put numbers on last season. Blocking between 4 and 20 addresses in a one-hour window made over 400,000 domains unreachable, and more than 550,000 domains were caught at some point between January and June 2026\. Cloudflare accounted for 90% of them.
[Collateral Damage of IP-Based Blocking During LALIGA Football Streaming in Spain: Evidence from OONI MeasurementsThis report documents the widespread collateral damage caused by IP-based blocking during LALIGA football match broadcasts in Spain, based on OONI data and DNS scans.OONIArturo Filastò (OONI) and Maria Xynou (OONI) and Mehul Gulati (OONI)](https://ooni.org/post/2026-laliga-collateral/?ref=magicpages.co)
Magic Pages is not a special case here. The same blocks hit sites on Amazon, Squarespace, Vercel, GitHub Pages and BunnyCDN.
## How to tell it's the block
A few Spanish engineers monitor the blocks live and publish what they find. Their site has a checker: enter your domain, and it tells you whether it's affected right now. It's in Spanish, and it's the fastest answer you'll get:
[¿Hay ahora fútbol? | Monitor de bloqueos de IPs de LaLigaMonitorizamos en tiempo real los bloqueos de IPs que LaLiga ordena a los operadores españoles durante los partidos. Comprueba si tu web está afectada por el bloqueo.¿Hay ahora fútbol?Hay Fútbol](https://hayahora.futbol/?ref=magicpages.co)
Two other signals. The timing follows the football, with blocks appearing shortly before kick-off and lifting shortly after the last match finishes. And the site loads normally on any connection outside Spain.
## Getting in while a match is on
- **Use a VPN.** Your provider then sees an encrypted connection instead of the address it was told to block. Pick a server outside Spain, and try a different one if the first doesn't work, since some VPN addresses get caught in the blocks too. The monitoring site above keeps a list of options, free ones included.
- **Try a different network.** The order covers the big providers. Some smaller Spanish operators run their own infrastructure and aren't affected, but plenty resell the big four, so test rather than assume. Mobile data from the same company won't help.
- **Wait it out.** Access returns on its own when the match is over.
## What we can't change
We have had requests to circumvent these blocks from our side, but realistically there is not too much we can do.
**We cannot give your site its own IP address.** Cloudflare answers with its own shared addresses for every proxied site. Using addresses you own is an Enterprise product called BYOIP, and it means owning a block of addresses and announcing them yourself. That is costly. Not "an additional 10 EUR" costly, but "thousands of EUR costly".
**We also cannot get a different set of addresses, or a different data centre.** There's no setting in Cloudflare for either. Routing works in a way that every visitor reaches the closest location automatically, and the addresses come from a shared pool.
Even if we could move your site onto different Cloudflare IP addresses, it wouldn't hold. The block list is different every matchday and the pirate streams move too, so being fine one Saturday says nothing about the next, unfortunately.
## If you want to push back
While we recognise that piracy is a problem we need to take serious, blocking entire IP ranges for the commercial benefit of a football league is wildly out of proportion, in our eyes.
As a small provider there is little we can do from our side, but if you are in Spain and affected:
- **Document it.** The [OONI Probe app](https://ooni.org/install/?ref=magicpages.co) tests from your own connection and files the result in a public dataset that researchers and lawyers use.
- **Report the business impact.** The Spanish Startups Association is collecting cases of disproportionate blocking under [STOP #LaLigaGate](https://asociacionstartups.es/laligagate/?ref=magicpages.co).
- **Complain about interception.** OONI found one provider, DIGI, intercepting encrypted connections during the blocks. RootedCON publishes a [template complaint](https://rootedcon.com/blog/laligagate-plantilla-de-denuncia-a-la-aepd/?ref=magicpages.co) to Spain's data protection agency for exactly that.
The court authorisation behind all of this covers three seasons and expires on 20 June 2027, so 2026/27 is the last one it applies to. Though LaLiga is expected to ask for another.
### Updated Customer Websites to Ghost v6.61.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-61-0/
Last updated: 2026-08-27T17:01:04.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.61.0 today. You can read about changes included in Ghost's official release.
[Release 6.61.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.61.0?ref=magicpages.co)
### How to edit images inside Ghost
URL: https://www.magicpages.co/help/features/how-to-edit-images-inside-ghost/
Last updated: 2026-08-27T10:13:39.000Z
Every Magic Pages site including Starter plans has an open-source image editor Kalotyp. Open any image in the post editor and you can crop, resize, rotate, filter, and annotate it without leaving Ghost.
## Where to find it
Add an image in a post and hover over it. A small icon appears in the right upper corner of an image, and it is labelled **Edit**. Click it to open the image editor.

In Ghost admin, an edit icon also appears when hovering over an image, including the cover image under **Settings → Design & branding**, and staff profile photos. Clicking it opens the same Kalotyp editor.
One limit: the Edit icon doesn't appear on animated GIFs. Ghost still lets you upload and use them, just not edit them in place.
## What you can do
Nine tools, in a row along the top of the editor:
- **Crop**: drag the handles, or pick a ratio like square or 16:9.
- **Rotate** and **Flip**: straighten a tilted photo or mirror it.
- **Filter**: seven one-click looks.
- **Finetune**: the sliders behind those looks, for adjusting the result by hand.
- **Annotate**: text, shapes, arrows, freehand drawing, and emoji stickers.
- **Redact**: cover part of an image so it can't be read.
- **Resize**: set exact output dimensions.
- **Frame**: add a coloured border.

Filter, Annotate, and Redact each carry more options than the toolbar icon suggests.
### Filter and Finetune
Filter gives you seven presets to click through: None, Vivid, Mono, Soft, Punch, Mute, and Bright. Each one is a different mix of brightness, contrast, saturation and the rest. Finetune shows you those six sliders directly, so you can start from a preset and adjust it, or skip the presets and set the look by hand.
### Annotate
Eight tools sit along the annotate toolbar: Select, Text, Rectangle, Ellipse, Arrow, Freehand, Highlight, and Emoji. Pick a colour from the six swatches or type a hex code, and set the stroke width with the slider next to it. **Insert at centre** drops a new shape in the middle of the image if you'd rather not drag one out by hand, and **Delete** removes whatever's selected.
### Redact
Redact covers part of an image three ways: **Pixelate**, **Blur**, or **Solid fill**. Only Solid fill uses the colour picker. Pixelate and Blur don't take a colour, since there's nothing to tint. As with Annotate, **Insert at centre** and **Delete** add or remove a redaction region.
## Setting your defaults
The gear icon next to close opens **Preferences**, where you can set defaults for every image you edit from then on:
- **Format**: Auto (recommended), WebP, AVIF, JPEG, or PNG. Auto picks the best format for the image; the rest force a specific one.
- **Quality**: a slider from 50 to 100\. The default is 85.
- **Strip EXIF, GPS, and camera metadata on save**: on by default, so location and camera data don't travel with the file.
Underneath, three toggles decide what the editor remembers between sessions: your last annotation colour and stroke width, your last filter preset, and your last frame preset. All three are on by default. Turn one off if you'd rather the editor reset to its defaults each time instead of picking up where you left off.

**Reset to defaults** puts every one of these back to its starting value.
Kalotyp covers most of the everyday image tweaks, without needing a separate app. It's built to be simple, so feel free to explore each tool without worrying about getting it wrong. Most of what it offers is just one click away.
### Every Magic Pages site now has an open-source image editor
URL: https://www.magicpages.co/roadmap/kalotyp-is-now-on-every-magic-pages-site/
Last updated: 2026-08-26T20:54:24.000Z
In June, we released Kalotyp, an open-source image editor for Ghost. And it is now the image editor on every Magic Pages site, including Starter plans, which never had an image editor before.
[GitHub - magicpages/kalotyp: Image editor for GhostImage editor for Ghost. Contribute to magicpages/kalotyp development by creating an account on GitHub.GitHubmagicpages](https://github.com/magicpages/kalotyp/?ref=magicpages.co)
If you're a Magic Pages customer, there's nothing to set up. If you edit an image inside a post, Kalotyp is what opens.
## But why do we need a new editor?
One of the things that draws people to Ghost in the first place, is that it's open-source software you can modify, own, and self-host if you want.
The image editor has been the one piece of the experience that doesn't fit that pattern.
Kalotyp is our attempt to close that gap. It's under the same license as Ghost itself (MIT) and drops into the same interface as its proprietary default editor.
## What it does
Feature-wise, the current release covers what you'd reach for in an image editor: crop, rotate, flip, filters, finetune controls, annotate, redact, resize, and frames. It also does automatic EXIF/GPS metadata stripping and format conversion on save − both are things customers have asked about in support over the years, so it felt right to build them in.
Now, Kalotyp is young. It's had a few hundred sites and two and a half months of real use since its first release on 4 June. However, that doesn't mean it's bug free. If you hit something odd, send us a quick message and we'll have a look.
### Updated Customer Websites to Ghost v6.60.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-60-0/
Last updated: 2026-08-26T09:25:58.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.60.0 today. You can read about changes included in Ghost's official release.
[Release 6.60.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.60.0?ref=magicpages.co)
### How to create a HAR file in your browser
URL: https://www.magicpages.co/help/domains/how-to-create-a-har-file-in-your-browser/
Last updated: 2026-08-23T19:29:07.000Z
Sometimes, when debugging a networking issue with you, we might ask you for a HAR file.
A HAR file is your browser's own record of a page load. It lists every request the page made, how long each one took, what came back, and what failed. When something breaks for you and works for us, that file is the difference between us guessing and us seeing exactly what your browser saw.
## Before you start
Three things decide whether the file is any use.
**Open the developer tools before you reproduce the problem.** The recording only holds requests made while the tools were open, so opening them afterwards gets you an empty file.
**Use the browser and the device where it goes wrong.** A recording from Chrome on your laptop says nothing about a problem that only happens in Safari on your iPad.
**Record the one thing that's broken.** Close your other tabs first if you can. Half an hour of general browsing is harder for us to read, and it puts more of your own data in the file than we need.
## Chrome and Edge
The same steps work in Brave, Arc, Opera and Vivaldi, which all share the same developer tools.
1. Go to the page where the problem happens.
2. Press **F12** to open the developer tools, or ⌥⌘I on a Mac.
3. Click the **Network** tab.
4. Tick **Preserve log**. Without it the list empties every time the page navigates, which loses exactly the requests you're trying to catch.
5. Tick **Disable cache**, so you get the requests a first-time visitor would make.
6. Reload the page, then do whatever triggers the problem. Rows fill the table as requests happen.
7. Click the download arrow at the top of the panel, **Export HAR (sanitized)**, and save the file.
If that arrow is greyed out, nothing has been recorded yet. Reload the page with the **Network** tab open and try again.
## Firefox
1. Go to the page where the problem happens.
2. Press **Ctrl+Shift+E** to open the Network Monitor, or ⌥⌘E on a Mac.
3. Tick **Disable Cache** in the toolbar.
4. Open the settings menu at the right-hand end of that toolbar (the gear icon) and tick **Persist Logs**.
5. Reload the page and reproduce the problem.
6. Open that gear menu again and choose **Save All As HAR**.
## Safari
Safari keeps its developer tools hidden until you ask for them.
1. Open **Safari → Settings → Advanced** and tick **Show features for web developers**. A **Develop** menu appears in the menu bar.
2. Go to the page where the problem happens.
3. Press ⌥⌘I, or choose **Develop → Show Web Inspector**.
4. Click the **Network** tab.
5. Tick **Disable Caches** in the toolbar.
6. Click the funnel icon in that same toolbar and tick **Preserve Requests**, so the list survives a page navigation.
7. Reload the page and reproduce the problem.
8. Click **Export** at the top of the panel, or press ⌘S, and save the file.
**Export** stays greyed out until there's something to save. If it looks dead, reload the page first.
## On a phone
You can't do this in the browser itself. Recording a HAR file on an iPhone, iPad or Android phone means plugging it into a computer and inspecting it from there, which is a developer's job rather than yours.
If the problem only shows up on your phone, tell us that and describe what you see. A screen recording is worth more to us than no file at all.
## What's in the file
A HAR file is plain text. You can open it in any text editor and read what you're about to send.
It holds every URL the page asked for, the headers that went with each request, and how the server answered. That means it can also hold the session cookie that keeps you logged in, along with anything you typed into a form while it was recording.
Chrome and Edge strip the `Cookie`, `Set-Cookie` and `Authorization` headers out for you – that's what "sanitized" in the button name means. Firefox and Safari don't strip anything. So if you're recording your Ghost admin or the customer portal in Firefox or Safari, treat the file the way you'd treat a password: send it straight to us, and don't post it anywhere public.
Two habits make that a non-issue:
- Log in first, then start recording. Don't type a password while it's running.
- Stop as soon as you've reproduced the problem.
## What to send us
The file, plus three things that save a round trip:
- the exact URL where it goes wrong
- what you did, and what you expected to happen instead
- whether it happens every time or only sometimes
Send it to [help@magicpages.co](mailto:help@magicpages.co). HAR files get big, so if your email bounces it back, zip it first.
While the developer tools are still open, a screenshot of the **Console** tab is worth adding. It's the tab next to **Network**, and red lines in there often point straight at the cause.
If the page won't load at all on a custom domain, that's the faster place to start:
[Troubleshooting Custom Domain Setup ErrorsFix DNS errors, typos, and record type mistakes preventing your custom domain from connecting to your Magic Pages site.Magic PagesJannis Fedoruk-Betschki](https://www.magicpages.co/help/domains/troubleshooting-custom-domain-setup-errors/)
### How to remove a custom domain from your site
URL: https://www.magicpages.co/help/domains/how-to-remove-a-custom-domain-from-your-site/
Last updated: 2026-08-23T09:54:33.000Z
Remove the domain in your Customer Portal first, then change your DNS. The other way round locks you out of your own site.
While a custom domain is connected, your `.mymagic.page` address forwards to it. That includes your admin panel, so `yoursite.mymagic.page/ghost` sends you straight on to `yourdomain.com/ghost`. If you move that domain's DNS elsewhere and both addresses stop working for you that's because the custom domain doesn't reach us any more, and the subdomain still forwards to the custom domain. The Customer Portal goes with it, because it's built into your Ghost admin.
So do this part while your site is still running.
## Removing the domain
1. Log in to your Ghost admin and click **Customer portal** in the left sidebar. ([Not sure where that is?](https://www.magicpages.co/help/trial/where-can-i-find-the-magic-pages-customer-portal/))
2. Click **Domain** in the top menu.
3. Under **Custom Domain**, click **Remove domain**.
4. The dialog asks **Remove custom domain?** Click **Remove Domain** to confirm.
You'll get a "Domain removed successfully" message, and your site is back on its `.mymagic.page` address within a few minutes. Your admin panel moves with it, to `yoursite.mymagic.page/ghost`.
Posts, pages, members, staff users, themes and backups are all untouched. Two things do change:
- Any custom newsletter sending domain you've set up is removed too. If you connect a domain again later, you'll set that up again as well.
- We don't redirect your old domain to your `.mymagic.page` address. Anyone visiting the old domain sees an error until you change its DNS records.
That second point is your last step. At your DNS provider, delete the records pointing at us, or repoint them at wherever the domain lives now.
## Moving to a different domain?
Use **Change Domain** instead of removing anything. Add the new domain's DNS records, verify them in the portal, and your site switches over. Nothing goes offline in between, and you can clean up the old records afterwards.
The full walkthrough is here:
[Setting up Your Custom Domain on Magic PagesLearn how to easily set up a custom domain for your Ghost CMS on Magic Pages. Follow our clear, step-by-step guide to update DNS settings and enhance email deliverability.Magic PagesJannis Fedoruk-Betschki](https://www.magicpages.co/help/domains/setting-up-your-custom-domain-on-magic-pages/)
## If you've already changed your DNS
Send us a message at [help@magicpages.co](mailto:help@magicpages.co) with the domain you want released. We'll remove it from our side, and your site comes back on its `.mymagic.page` address with everything intact. Nothing is lost by doing it in this order. It just takes a message instead of a click.
💡
We're working on a customer portal that lives outside your Ghost admin, with its own address and its own login. Once that's live, you'll be able to remove a domain yourself even after its DNS has already moved. It's [on our roadmap](https://www.magicpages.co/roadmap/new-external-customer-portal-for-multi-site-management/).
### Search Results Now Say Which Posts Are Paid
URL: https://www.magicpages.co/roadmap/search-results-now-say-which-posts-are-paid/
Last updated: 2026-08-22T09:51:35.000Z
If you publish some posts for members and others for paying members only, search used to flatten that distinction. Every gated result carried the same **Members only** badge, whether a free signup could read it or not.
A Magic Pages customer wrote in after spotting it on their own site: three search results were marked members-only, but two of them were actually for paying readers only. From the reader's perspective that badge was an invitation. They clicked, and they hit the paywall.
## What changed
Gated results now say which gate they sit behind:
- **Members:** anything a free signup can open
- **Paid members:** paid posts, and posts restricted to specific tiers
Tier-restricted posts count as paid, because Ghost only ever restricts to paid tiers. There's no such thing as a tier-gated post a free reader can open.
Now, a reader who hasn't paid can see how much of your archive sits behind the paywall. That's the case for subscribing, made without you writing a word of sales copy.
A reader who has paid can see what their money buys them, every time they search.
And a free subscriber stops walking into posts they can't read. They're a member, as far as they're concerned – so a badge saying "members only" was telling them to go ahead.
## Who sees it
If you have the **Advanced Search** turned on with **Members-only content** active this change is active for you already. You don't need to set anything up. The search UI reads the visibility of every post and compares it to the logged in member directly in the browser.
If you index only public posts, nothing about your search changes.
### Ghost memberships beyond Stripe
URL: https://www.magicpages.co/podcast/episodes/episode-6-andre-payglue/
Last updated: 2026-08-20T09:53:35.000Z
## About this episode
André is the founder of [PayGlue](https://payglue.io/?ref=magicpages.co), a payment-middleware relay that connects Ghost memberships to alternatives to Stripe — Polar, Paddle, Lemon Squeezy, Creem, Gumroad, Ko-fi, Patreon and more. He built it to solve his own problem (he simply didn't like Stripe), then found the deeper ones: creators in countries where Stripe isn't available, and the merchant-of-record question of who actually remits your tax.
André and Jannis get into how PayGlue replaces Ghost's paywall with a snippet so any provider can grant access, pay-what-you-want and one-time memberships, and what happens when a webhook fails at 2 a.m. The second half is two founders comparing notes: earning trust through open source, GDPR as a filter for tools that actually care, why a sustainable tool skips the free tier, and the nerve it took to remove the Magic Pages starter tier.
## Chapters
- **0:00** — Welcome — meet André and PayGlue
- **0:31** — Solving his own problem: disliking Stripe
- **1:51** — When Stripe isn't an option (country restrictions)
- **3:55** — Payment processor vs merchant of record
- **4:53** — Why Magic Pages avoids Stripe too
- **5:37** — One-time payments, donations, and pay-what-you-want
- **10:04** — Replacing the Ghost paywall with a snippet
- **10:37** — Metered paywalls — a listener's use case
- **14:29** — Trust and open source
- **16:32** — When it fails: the 2 a.m. webhook
- **19:20** — "What if you disappear tomorrow?"
- **23:04** — GDPR as a filter — DPAs and subprocessor lists
- **26:25** — Why there's no free tier
- **27:33** — Removing the Magic Pages starter tier
- **29:40** — Pricing tiers, and roles for teams
- **34:59** — Which payment providers PayGlue supports
- **38:32** — A discount for Magic Pages customers, and wrap-up
## Links & mentions
- [PayGlue](https://payglue.io/?ref=magicpages.co) — André's payment middleware for Ghost memberships
- [Ghost](https://ghost.org/?ref=magicpages.co) — the platform PayGlue plugs into
- [Stripe](https://stripe.com/?ref=magicpages.co) — the default Ghost payment integration PayGlue works around
- [Polar](https://polar.sh/?ref=magicpages.co) — merchant-of-record provider
- [Paddle](https://paddle.com/?ref=magicpages.co) — merchant-of-record provider
- [Lemon Squeezy](https://lemonsqueezy.com/?ref=magicpages.co) — merchant-of-record provider
- [Creem](https://creem.io/?ref=magicpages.co) — merchant-of-record provider
- [Gumroad](https://gumroad.com/?ref=magicpages.co)
- [Ko-fi](https://ko-fi.com/?ref=magicpages.co)
- [Patreon](https://www.patreon.com/?ref=magicpages.co) — used by some creators as an access source into their Ghost site
- [n8n](https://n8n.io/?ref=magicpages.co) — the automation tool André duct-taped before building PayGlue
## Transcript
*Auto-generated with Whisper + pyannote speaker diarization. Names and technical terms have been hand-corrected; sentence boundaries are approximate.*
**Jannis:** Hi, and welcome to the Magic Pages podcast, where we sit down with the people building, hosting, and publishing on Ghost. I'm Jannis, and today I'm here with André, the founder of PayGlue, a payment middleware that connects Ghost sites to Stripe alternatives. André, welcome.
**André:** Yes, thank you very much for having me here in your podcast.
**Jannis:** André, can you quickly introduce yourself and tell people who you are and how you came to create PayGlue as a new tool for the Ghost ecosystem?
**André:** Yes, of course. I solved my own problem. I started three years ago with Ghost, and I dislike Stripe, not because it's not working, only because I don't like Stripe very much. And so I looked for an option to resolve my problem and use another payment provider. And it wasn't really easy for me because there only were manual links to do around it with the API or Make or n8n that works a little bit. And when there are some problems, then you have a lot to do in searching why it isn't working. And so I was looking for a problem solver, a sort of webhook middleware relay that helps me out.
So I built my little product to solve my own problem. And as it was solved, I thought maybe another Ghost publisher needs this tool.
**Jannis:** Now that you've talked to a couple of people about PayGlue and you have a couple of paying customers already, what did you find apart from your own problem of disliking Stripe? What were some of their problems? Are there other problems with how Ghost and Stripe work together or don't work together in some cases where you say people would need an alternative to Stripe itself for Ghost memberships?
**André:** I found the problem is not Stripe itself. In some countries, you can't use Stripe. Your country is maybe not allowed in Stripe and you can't make an account. And so you can use Ghost of course with free membership tier. That solves not every problem for a publisher who wants to make some memberships with it. And so they change to other systems like WordPress or something else. And I found out in my country, in Germany, it's no problem with Stripe and other countries don't like Stripe or you can use it.
So I thought for myself, okay, when somebody needs to use Stripe, it should work with PayGlue. And when somebody don't have the option to use Stripe, it should work too, because when you don't use Stripe, you don't have the paid membership tiers and every article is free. So how you compete this with a payment that somebody does and for exclusive articles. So the PayGlue problem at first was only to solving the payment and ghost memberships problem. And now it solves a paywall too. So that users without Stripe connection can use a paywall to get exclusive content.
**Jannis:** Cool. Can you tell us some of the countries where Stripe isn't available? Do you have any countries in mind?
**André:** I have a beta tester from Nigeria and there was this problem first. And. I have a beta tester from, who's the country name? I don't get the name, but. I have another country too that doesn't work well with Stripe. They were declined. They could make an account, but they were declined for Stripe. They said, oh no, we don't want to work with you and process your payments. And that was not only the only problem. For example, when you are a solo founder, you make solo publishing and you have cool stuff that somebody wants to read and pay for and you use Stripe. Most people don't know the difference between a payment processor and a merchant of record.
Because Stripe only does like paper, the payments and transactions, but you are responsible for tax remitments and everything else. And that don't come in first place. That comes later. For example, when the tax department sends you a letter and you have to strip it out. What was taxed from this country and this country and this country. Everybody knows this from digital payments. For example, an ebook. Yeah, you take a provider like Gumroad, for example, and they remit the tax for you no matter if somebody buys from the use air from England or from the EU. And because Stripe doesn't do that and. I have a beta tester that said, hey, for my own business purpose, I need a payment provider that works as a merchant of record too. So I set it up.
**Jannis:** Yeah, that's actually one of the reasons why Magic Pages doesn't use Stripe for payments as well. Because from the very beginning, that was my issue that I knew. I would not just have customers from. Well, back then when I found out Magic Pages, we still lived in Germany, but now I live in Austria. And it was clear from the beginning for me that probably Magic Pages, if we scale, will be an international business where we have customers now literally from New Zealand to the US, Peru and everything. And I don't want to handle Peruvian tax, if it is in that case.
So yeah, this is why we also with a merchant of records Paddle in this case. And it's a super interesting use case, I think. Now that Ghost also has one-time payments or donations included. Does PayGlue also work with those?
**André:** Yes. Of course, the most problem is what Stripe one-time payment says. You make a sort of donation button, but now you don't need Stripe for that to create a link. You can do it in Ghost natively and they call it donation five bucks and one link to pay. But maybe you start a new block. Yes. And you make a sort of founder membership. Pay what you want. Yes. Or one-time payment. And then the subscription comes later. It's very complicated to set up with Stripe. For example, when you take another payment provider like Lemon Squeezy or Creem or Paddle or Polar, you can set things like this up.
And then no matter what somebody uses one-time payment or pay what you want or subscription, you get access to your block because I'm the first founding member. I pay five bucks to support you and I don't need a subscription. But the problem behind this is the technical problem that. I have access to your exclusive articles as a founding member. And I'm not excluded because. I have no subscription. And things like that, you can't do with Stripe native. You can do it with Zapier and you can duct tape it with n8n of course when you're happy with that.
**Jannis:** That just opened a really interesting use case or thought that I had. I sometimes in the Magic Pages support chat get questions on how to use Ghost. Whether. I have tips on that both from Magic Pages customers and non-Magic Pages customers. And one that comes up, I would say every two to three months is a pay what you want subscription that they say, okay, my standard subscription is, I don't know, 10 bucks a month, but. I want to be able to offer people a pay what you want subscription. They can pay whatever they want maybe as a one-time thing, maybe as a monthly thing. And my answer so far has always been, yeah, I'm sorry, not possible with Ghost. Is that something that PayGlue would enable people to do? With Stripe in this case?
**André:** That is possible. Not with Stripe exactly. It's not natively possible because Stripe is a native integrated directly in the Ghost ecosystem as you know. But you can do it with another payment provider of your choice. And the most do pay what you want. But then it's a problem how to fix it in the background with Ghost. Yes, to grant access for your new memberships. Or you have a special birthday pay once and don't have a subscription anything what you want. That is possible. And of course it's possible when you already have Stripe in your blog and you use Stripe subscriptions and just want to add pay what you want or one-time payment without the donation.
Then you can use PayGlue in connection with your payment provider too. So you have more options to grant access for example when somebody pays five bucks for pay what you want in Gumroad or any other payment provider as you choose.
**Jannis:** Nice and does it work both as one-time pay as you want and also as a subscription?
**André:** Also as a subscription. That works in two ways. That's no problem because PayGlue is a sort of relay a sort of middleware. You connect inside of PayGlue your payment provider of choice and your blog and the computer talk via the API that is encrypted and the webhook is signed. So for example when I'm on your blog and you have one-time payment and you for example choose Paddle because you have Paddle in your magic pages already and I click buy. Then I get access granted to your blog and when you open your ghost blog and see my name my email address you have some labels and a note what. I have buy it when. I have buy it what was the order number and there are labels for example PayGlue active.
So our pay wall knows I'm an active user. And this works with Stripe when you already had Stripe set up or when you only have free membership here. The only thing that I really needed to detail it out in the documentation. Was that you don't switch to. Paid member in the blog article. So you always leave it blank for free member and then just put our HTML snippet code inside it for the PayGlue paywall.
**Jannis:** Essentially you're replacing the ghost paywall with the PayGlue paywall in this case then.
**André:** Exactly.
**Jannis:** Very nice. That's an interesting model because I'm currently in touch with another customer who might actually be listening to this and we've talked about this a couple of times now and I'm wondering if you had some thoughts on this whether that's possible with PayGlue and whether it would be easy for you to integrate that because then. I would need to integrate that. So maybe another use case for you. Have you thought about metered paywalls where customers say, okay, I want to grant membership XYZ 10 articles a month that they can read. Is this something that you have thought about before?
**André:** No, I don't have such a question that is very special in my feedback or in my closed beta or now we are an open beta but I will take it with me. I know with, for example, Paddle or Polar that is often used for SaaS businesses you can do metered products but of course you need this metered product 10 articles to be measured inside the paywall and the block and this is of course a sort of special need. I can put it in our backlog in our feedback and when enough customers interested in this of course you can put development in it and test it out if it works because. I have on all payment providers active accounts for testing and developing. And it's very special.
**Jannis:** I will send that customer your way to get in touch with you just so you can see whether your ideas on this match with his ideas because he is very keen on launching something like this still this year and I've said so far that could potentially be something that Magic Pages can offer but obviously we're not payment experts and it is not something that I can jump on immediately. So potentially if you're listening to this even if we haven't been in touch about this before get in touch with André and tell him that you want metered paywalls so his list gets longer and longer and things to include.
**André:** Yes and that is the very beautiful thing on the internet yes you have somebody who has a special problem and maybe we can solve it but at first we need to talk about it and then we will see.
**Jannis:** Yeah I think the reason. I mentioned it now is because of your explanation about the paywall that you replace ghost paywalls with your paywall because that is from the research I've done so far exactly what would be necessary for this so you're already a couple of steps ahead there so let's see what you two can come up with there.
**André:** The paywall was the mighty big frog in the whole development to get it right and of course we have a demo block blog.io.io and there you can test it yourself yes. I have connected this to our sandbox account so that you have a sandbox credit card and nothing pays directly from it and you can test yourself if your access is granted or not granted. I think this is the best way for somebody who's technically interested to test if a system works and he would pay for it or not and glue is not a payment provider often people ask hey are you a payment provider do you see my transaction and my credit card settings and everything else? No then you need to be a very certified and very security special company for this to do that and we are just a relay of course we need an email address and encrypted transaction that it's granted access for your ghost blog for new memberships but we don't see credit cards amounts or anything else what's very important for the step.
**Jannis:** Yeah it's also something that you've talked about a few times now is that trust and that security and if you remember when we first emailed about PayGlue that was one of the points that I raised that I personally am always a bit critical of adding an extra piece in a moving chain because in my eyes this is something that can break it's another thing that can go wrong and you had a really thoughtful answer to that can you quickly walk the listeners through how you earned that trust with PayGlue or what your thoughts are on how transparent you want to be to show that the middleware that you've built is something that people can trust.
**André:** Of course and I think the important thing is you don't have to trust me and you don't have to trust my infrastructure that is hosted in the European Union you can look in the code because PayGlue is open source of course not the things like support system like special needs in the dashboard like sign up but you can just go to our repo and fork it and test it yourself local on your mac for example or on your server directly and you can look into the code and check it yourself what we do and what we don't do so as you said what we see and what we don't see and I think that's the important part you don't have to trust me or my architecture in this point you can do it for yourself but when you say oh okay.
I saw it. I like it it worked for me and I don't need a server for my own on this. I don't need this or maybe my blog is already on ghost pro or example on your magic pages services then of course you can't do it with this and therefore you can use then PayGlue and you don't need any special code just HTML snippets to get it done and as you said for example when somebody buys something and it doesn't work for an unknown reason for example we have of course in the back end in the dashboard for you there you can see what happens whereas X is granted or if there may be a maintenance problem with a webhook and you need to restart the webhook something else because when a lot of machines talk together sometimes the machine may be delayed and you get an error and then it's important that the customer don't buy new you just click on retry webhook and X is granted so it should be very easy for you as an end user and your blog.
**Jannis:** On that note if something fails in that whole chain between the payment processor between PayGlue between ghost and in that entire chain if something does fail and before we started the recording you brought up a case where somebody bought something at 2am and then it failed what happens in that case now? Would they see an error on their side or would it just be a generic failure that they can't interpret?
**André:** That is exactly what I talked about in my setup before PayGlue. I had set up an n8n workflow on my own server and because I grew out of Zapier and I grew out of Make and had my own server and wanted to play something and learn a lot and there a webhook failed on 2am and the customer said oh I don't have access and so I cancelled my subscription so I lost a happy paying member and I don't get anything yeah I didn't get anything. I forget to set up an SMTP in n8n to inform me when something doesn't happen because when everything works fine and smooth and every button is green happy life but when something doesn't work you need to do something and in PayGlue of course you get an information email to the customer hey something didn't work please log in and review it and then you see in the analytics tab exactly what process failed for example order payment failed okay maybe the payment on the credit card failed there you have a charge back you need to handle this directly with the payment provider access granted or not or maybe the webhook had a problem because of a maintenance or of a delay and then you can see it you can see what's wrong and you can replay.
You don't want to go to your customer and say it didn't work you want to hit replay the customer get access granted get an email from your ghost blog hey welcome to our blog. The automation behind it should work and yeah because I had the problem that I didn't get any information because I didn't set up any SMTP information in my n8n setup lesson learned for me and I don't want that my PayGlue customers learn it the hard way and lose customers.
**Jannis:** Been there done that. I think every founder has to go through that at some point that something is failing and you don't even know about it that's happened a few times at magic pages as well.
**André:** Yeah the silent fails are the fails that are very critical often you don't see in everything every check mark is green but something doesn't work so therefore. I have a couple of steps inside PayGlue to inform the customer and if that doesn't work he can always set up a support ticket and I help out of course.
**Jannis:** Perfect now one question I also sometimes get with magic pages now a little bit less often than a year ago is the fact that. I have been doing magic pages on my own you're doing PayGlue on your own what if you disappear tomorrow would that connection still work or would there be an actual issue for the ghost publisher and that's it.
**André:** The nice thing on automations is when they are set up and they work after a test so they work permanently or if somebody changes something on some end and you need to do a little bit of code rework to make it done because a payment provider changed an endpoint or something else that might of course happen in the future but the system will still running and when it's failed you get a notification what failed and you can rework it but of course not when a payment provider changes an endpoint that needs to be done in the code.
**Jannis:** I think that's something that. Is sometimes a bit underestimated in that sense that even if you or me end up in a hospital for I don't know a surgery or something the things will probably just keep running. Even though we are founder-led businesses the systems the computers are in most cases hundreds of kilometers away from us anyway they don't need to be pet all the time they don't need to have their good night story they will in most cases just keep running and when something fails that's usually when you as an end customer and notice it. I know that I've spent three weeks on the road in Scandinavia this year and have scaled down my involvement in magic pages a lot and nobody noticed and I bet it would be quite similar with most founder-led businesses.
**André:** Yes and that's intended it should work and it should not only work when you stay on top on the server and pet it and it should work as intended and work flawlessly of course and therefore we're doing this of course now we don't have both time the whole life to sit in front of a Mac and watch the server what he's doing therefore there are some alarm systems when something doesn't work in the background or some provider changes something and as you said you did a great job when you were three weeks on a vacation and we filled your own battery and charged it up and nobody noticed when your system flawlessly works.
**Jannis:** Building it for three years that's all the lessons I learned put into that basically. I remember having a vacation in Sri Lanka two years ago which also had a time difference to you know all the server infrastructure. I had in Germany and in that case. I actually had to get active it was a case where the server couldn't reach the internet because the infrastructure provider had a massive network issue it was not Hetzner it was a smaller server provider that I'm not with for multiple reasons now but that was one of the last points where I was sitting at.
I think it was 2 a.m. In Sri Lanka in our hotel room on my laptop trying to figure out what's going on there trying somehow to call the emergency hardware support of that server provider from a you know Sri Lankan eSim card which didn't work and that was for me the moment where I said hey this isn't sustainable and since then magic pages has improved a lot and I think that every business has those stories similar to you you had an issue at 2 a.m. Where you didn't notice that something went wrong you built something around it and I think that's how lots of solo businesses develop and evolve over time.
**André:** You said reliability and I'll give you an example Claude Code 20 bucks subscription you can do a lot of nice shit nice websites a landing page duct tape it together and you have a sort of product yes and but my company lives in Germany your company lives in Austria and we have some laws and for example a simple subprocessor list yeah or a data processing agreement yeah to give it to your customers yeah. I often see software new SARS products microSARS that look in the front very shiny and nice and you look in and didn't see any support email address or a conduct form or a terms or a legal or something else yes ghosts publishing can be an own business with own credibility for your text for your business and everything else and when you are controlled in Germany or another EU you need a data processing agreement with a scribble on it yes so it's a PDF document but it it turned out.
I had a seven days around a week with special experts to make this document yes nobody will see it you only look in you want this document you can download it but these are the little things or do we have a subprocessor list does somebody ask me and I said yes. I have a list here but the list wasn't linked in the navigation my problem huh and I solved the problem the list was online and he could see and a lot of this shit yes then you can see from the outside if somebody does it mean. Really good or just duct tape something in front what is shiny so that there are little things that I'm looking for when I decide to work and to pay for a SARS or not to pay for a SARS.
**Jannis:** Yeah I think that's a really interesting filter to have for any tool and I know that the EU gets a lot of hate for GDPR and data privacy and cookie banners I've learned from the guest in the last episode from Mark who lives in Australia that he barely sees any cookie banners because he lives in Australia and doesn't have the same regulation and I know that the EU gets a lot of hate for implementing all of this but it created a really interesting filter to see which businesses which tools actually take it serious and say okay in some cases and some points the GDPR might be overshot but on the other hand if you see that somebody takes care of it and has a data processing agreement has a subprocessor list has an actual data privacy policy that goes more than hey we collect data because you know we want to do it then you actually know there's somebody behind that tool that cares somebody that cares about the data of their customers somebody that has thought about these things at least even if the outcome is you know that it's a very relaxed data privacy policy somebody has sat down and thought about it and I think that's a very interesting filter you brought up on how to filter out tools that you want to use in your business and not.
**André:** Yes because I own a business as you and I need a data processing agreement from another SaaS to work with it when I get controls of my company and that although a little bit of filter as you said and most people think oh I just put it in Claude or in ChatGPT and I get the real text and everything is fine but no that didn't work of course you can make a draft with it no problem. But yeah then you have to talk to experts and experts want money yeah you want money for your SaaS. I want money for my SaaS to make it sustainable and that is the interesting part a lot of people complained about why I don't have a free tier.
**Jannis:** Why don't you have a free tier.
**André:** We don't have a free tier because. I want to be sustainable and long in the business and the problem with free tier is you get easy 1000 users but 1000 users take a lot of resources from the server from the database and you have to pay it yes and that is not sustainable when you are not a big company with hundreds of thousands of dollars on your bank account I'm starting with this project and. I want to be sustainable and on a long-term run and the people who understand it say okay right I get it of course they have 30 days free testing you need of course to give it some time to test it out yes.
**Jannis:** I think it hasn't happened to Magic Pages that somebody wanted a free tier because we have the advantage that people know that hosting costs money that there are a few free hosting providers out there. I know that 20 years ago or so I've used free hosting providers in Germany which always had very fun communities with them but where we saw some resistance was also when we removed the starter tier on Magic Pages earlier this year where we also said something similar we said the starter tier was meant as a starter tier it was not meant as I'm going to run my blog in the starter tier forever because our assumption was it lets you start and once you see some success you will upgrade to the pro plan which has all the let's say the tools and less restrictions that you need as a ghost blog that wants to sustain itself as well and what we saw is that the starter tier grew and grew and grew and people never moved off it and that just became very unsustainable for us as well because on the flip side people on the starter tier.
Needed the most support which we happily give but there's also a point where you have to say hey if half of the support we have to give for the starter tier is just because of missing features that you would have on the pro tier then that's a signal for us that's a signal where we say. Clearly the starter tier didn't work as we intended it so we shut it down right now magic pages actually growing more than ever before now that we removed the starter tier and we see that people actually started upgrading from the starter tier to the pro tier but it was a scary moment for us as well to just remove a tier and.
I remember in February talking to Sviatoslav who just joined in February to work at magic pages and saying hey. I have no idea what's going to happen when we removed the starter tier but. I want to do this because I see that it's not sustainable for us it turned out well but as you said we are running businesses and I think we're happy to give support both you and me we're happy to support people and the goals that they have with our respective tools.
But we also know the charity where we can do that for free so I definitely understand why you don't have a free tier especially as something as critical as something that touches payments because if something goes wrong. I know that people on the free tier also want to have proper support and proper resolution to that and you can only do that if you know that you get something back in exchange as well.
**André:** Exactly and the pricing was the biggest issue. I normally thought okay. I set a pricing table what feels good what feels wrong what would I pay and you make a sort of founding tier next to it easy peasy I thought and then with the closed beta. I get a lot of feedback so to talk to your customers is a very important thing not only with feature requests and bugs and what feels good what fits right. I internally thought. I have two prices yes a sort of big agency price and a sort of studio pricing yes so you can have two publications and you have enough to do to work with the two prices and then the most people said yes it's nice but when I start with a block.
I only have one publication maybe one payment provider in your list that I like to use and I'm starting out and. I want to get some money and I go outside and write and write what do they do they don't pay such amount of money for it but the step to the pricing is too big to choose it because maybe they have no customer to pay their own bill so I step back. I thought what may be possible so I change the pricing table again in front end because of customer feedback. I already had and now. I have a sort of solo plan when we launch openly then when you have one publication you can do it very well with one publication because. I have more than one ghost blog.
I need another tier on this maybe you are a sort of social agency and you have 10 ghost blogs to work with it yes and that was the question too what do I do when. I have my ghost blogs what do I do when. I have a team somebody from the accountant somebody from the technical and somebody who only writes so I didn't think about it and so now we have some roles and members inside the dashboard who can handle your publications and your payment providers. I didn't thought about this before.
**Jannis:** Yeah also something we're working on right now because that's as you said you don't think about this before because you know you have one use case in mind when you develop your product and that usually comes from your own experiences because we both solved our own problems and as more and more people. Start using your product. You realize that the same problem. The same solution that you built can solve multiple problems and all of a sudden you need to think about well okay there might be a technical team member in a blog or in a publication that needs certain access there is somebody that does accounting for them that might not even be in the same company they might have hired a separate accounting agency for that how do you do that?
Because in our case we're using Ghost's own built-in billing portal which only gives access to the entire billing stuff to the owner of the blog post do you then give the accountant that is not even part of your company ownership of your blogs that doesn't make any sense so as you say you talk to your customers and you build this step by step to figure out a way that's smart for you and that's also smart for them in a sense that they can use it the way they intended.
**André:** Sustainability and long-term and the problem wasn't to make an admin role a technical role an edge role that's not the problem or a booking role the problem are security can somebody from bookkeeping close your account and when you change the account owner because your email address changed how do we do this? And that are some little things you think you do a little tweak and then you have three days of coding sessions. Testing, staging and deployment and then you say okay now you can change your role.
**Jannis:** There's a lot of work in the background that's even as somebody that has built a product for three and a half years now. I sometimes forget and I think oh that's such a small change then I sit there for a week and in the end I'm just annoyed with everything because there's so many little things involved that you simply forget sometimes.
**André:** And you get feedback for example a few people ask hey we use Mollie we want to use Mollie yes you have Mollie on your list it's a new provider okay I looked into Mollie and Mollie is special for e-commerce yes and it doesn't work quite well with web hooks and documentation and what we want to do with this and so I reconsidered it and said sorry actually we only have one customer who wanted to use Mollie they now use another payment provider of their choice but for one customer 14 days of development it doesn't work out in this system when a few customers want to take Mollie and use it then we can work it out of course so the problem is not to say yes the problem is to say to your feedback. What you get from the users or customers is to say no and why no. To understand it yes and that works quite well.
**Jannis:** All right so you are not going to do Mollie as a payment provider which payment providers do you actually support right now apart from I think you mentioned Stripe Paddle right now Lemon Squeezy.
**André:** We support Polar PayPal Paddle Gumroad Lemon Squeezy and Ko-fi Ko-fi is something from PayPal I think and we have Creem on it and Patreon and we have on the list for example for German users Digistore on Copecart and of course some special payment providers from the USA but they are still with an asterisk for planning and looking into it actually I'm focused on what works and what can be optimized and when somebody says hey you have something on their list when is it available we have an open roadmap we have an open changelog we're happy to talk to people when they are interested and often people ask hey Stripe yes of course.
**Jannis:** We work with Stripe so also if I use something like Ko-fi or Patreon that means even though let's say those users they didn't start the process on my ghost blog they might have come through you know social media whatever saw a Patreon link somewhere have a specific membership there they would then be able to get access to your ghost blog and you basically say here's an extra perk for that.
**André:** Exactly like in Patreon you have for example Discord yes and you grant Discord access to a server with a role and you do the same with your ghost publication and access and of course Patreon is an own ecosystem yes they want all your texts they want all your PDFs all your creative work and that doesn't quite fit with your blog that is externally but often people use it and I didn't know that before. I talked to my customer who had a Patreon and I found out a lot of people use it as workaround because it works quite well and they take the payments through Patreon and do the most stuff in their own blog okay no problem with that and when you buy in Patreon directly you get access granted and when you buy directly on a button on your blog yes you get access granted through Patreon because we have features not only connection to the ghost blog maybe that I forget to tell you can make a button or a pricing table and for example Ko-fi button or a pricing table with the three tiers from Patreon and then you can choose which product to map it because you need to map it and what happens next do somebody get an hey you're welcome or an opt-in email for your blog you can choose what you like and we recommend something and the most interesting part was in the first UI you need to manual copy paste your Patreon product ID into PayGlue to make it happen of course we reworked it now with every payment provider you have a sort of autofetch product when you make the connection we can autofetch the products and you can map this membership tier directly to this product from your payment provider like Patreon or Ko-fi or anything else.
**Jannis:** Interesting how it all comes together André it's been super lovely to talk to you about PayGlue about your journey with developing it you were kind enough to give a discount code for Magic Pages customers that can be found in the customer portal. So if any Magic Pages customer wants to have a look at PayGlue and try that out there is an exclusive deal section there where you can also have a little discount code for PayGlue on that note there's a question that I always ask everybody in the end André is there anything that I should have asked that I didn't anything we forgot to mention.
**André:** No I think we could have a long podcast episode. And because we are stepping from topic to another topic and normally long podcast forms. On the legal basis when you listen to legal podcasts because the topics they are quite special and I think our founding journeys that we talked about the problems and everything else it was very nice when there are some questions and people like to see me again to answer some questions they maybe not send me in my email inbox I'm happy to come back again and we should talk about then these topics at this time. I think we talked about everything.
**Jannis:** Well thank you so much for coming on André for spending some time with us and as I said if anybody out there has the need to have ghost memberships with another payment provider because maybe Stripe isn't available in your country or you just annoyed with Stripe for whatever reason then have a look at payglue.io and see what André has been up to there.
**André:** Thank you very much happy to be here and stay healthy.
**Jannis:** Yes stay healthy and have a good rest of your day everybody.
**André:** Goodbye bye.
### Updated Customer Websites to Ghost v6.59.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-59-0/
Last updated: 2026-08-20T05:32:45.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.59.0 today. You can read about changes included in Ghost's official release.
[Release 6.59.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.59.0?ref=magicpages.co)
### Updated Customer Websites to Ghost v6.58.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-58-0/
Last updated: 2026-08-18T19:25:07.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.58.0 today. You can read about changes included in Ghost's official release.
[Release 6.58.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.58.0?ref=magicpages.co)
### How to find an email's full headers
URL: https://www.magicpages.co/help/newsletters/how-to-find-an-emails-full-headers/
Last updated: 2026-08-16T06:38:22.000Z
If we've asked you for an email's full headers, this is how to find them.
Headers are the hidden part of every message. They record which servers handled it, whether it passed authentication, and what the receiving provider made of it. When a newsletter lands in spam, they're the difference between us guessing and us knowing.
## Which copy of the email we need
Headers describe one specific message, so they only help if they come from the message that had the problem.
Ghost sends your newsletter, so the only copy with useful headers is the one that arrived in someone's inbox. If you subscribe to your own newsletter, that's the one to open. Otherwise ask a subscriber who saw it land in spam. The steps below work the same way in their inbox.
A fresh test email isn't a substitute. Test sends go out with link tracking switched off, so they aren't quite the message your subscribers received.
## Don't forward it the normal way
Forwarding an email wraps it in a new message with new headers of its own, so what reaches us describes your forward instead of the send we're trying to diagnose.
Two ways around that:
- **Copy the text.** Every client below can show you the raw message. Copy it and paste it into your reply.
- **Attach the original.** In Gmail, open the email, click the three dots next to Reply, then **Forward as attachment**. Most other clients have the same option under a similar name. That sends the message as a file with its headers intact.
If you're pasting text, we need everything from the top down to the first blank line. That blank line is where the headers stop and the email itself starts. Sending more than that is never a problem.
## Where to find the raw message
- **Gmail:** open the email, click the three dots next to Reply, then **Show original**.
- **Outlook on the web, and the new Outlook for Windows and Mac:** open the email, click **More actions** (the three dots), then **View → View message details**.
- **Classic Outlook for Windows:** double-click the email so it opens in its own window, then **File → Properties**. The headers are in the **Internet headers** box.
- **Apple Mail on a Mac:** **View → Message → Raw Source**, or press ⌥⌘U.
- **Yahoo Mail:** open the email, click the **More options** icon, then **View Raw Message**.
- **Proton Mail:** open the email, click **More** (the three dots), then **View headers**. **Download** saves them as a text file.
- **Thunderbird:** press Ctrl+U, or ⌘U on a Mac. **View → Headers → All** shows them above the message instead.
On a phone you mostly can't. Neither the Gmail app nor Mail on iPhone and iPad will show you the raw message. Proton Mail's app is the exception, under the same three-dot menu. For everything else, open the email on a computer.
## What you can read yourself
Gmail does most of the work for you here. The **Show original** page opens with a summary listing SPF, DKIM and DMARC, each marked PASS or FAIL for that exact message.
If all three pass, your authentication is fine and the cause is somewhere else: your domain's reputation, your list, or what's in the email. If one fails, that's the thread to pull.
In any other client, look for the `Authentication-Results` header near the top. It says the same thing in one line:
```
Authentication-Results: mx.google.com;
dkim=pass header.i=@send.example.com;
spf=pass (google.com: domain of bounce@send.example.com
designates 203.0.113.10 as permitted sender);
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=example.com
```
The other line worth finding is `Message-ID`, a unique string for that one email. It's what lets us trace the message through our sending provider and read back what the receiving server actually said about it.
## What to send us
The headers, plus three things that save a round trip:
- the recipient's domain, so `gmail.com`, `outlook.com`, or a subscriber's company domain
- roughly when it was sent
- whether it went to spam for one subscriber or for a lot of them
Send it to [help@magicpages.co](mailto:help@magicpages.co). Gmail's **Copy to clipboard** button is the quickest way to get the text across, and **Download Original** saves the whole message as a `.eml` file you can attach.
Headers include the recipient's address, the subject line, and every server the message passed through. There's nothing in there from your Ghost admin and no passwords. If you'd rather not send us the body of the email, the header block on its own is enough to work with.
If you haven't been through the usual causes yet, that's the better place to start:
[My Email Newsletters Land in SpamIt’s almost never your DNS. When your newsletters go out through us, an unverified sending domain and a mismatched sender are both prevented — which leaves your domain’s reputation, your list, and your content.Magic PagesJannis Fedoruk-Betschki](https://www.magicpages.co/help/newsletters/my-email-newsletters-land-in-spam/)
### Seeing what readers search for on your site
URL: https://www.magicpages.co/help/search/seeing-what-readers-search-for-on-your-site/
Last updated: 2026-08-14T15:27:43.000Z
Advanced Search records what readers type into your search box, and the **Search** tab has two views built on top of it. **Insights** shows what people looked for. **Suggestions** lets you put terms in front of them before they type anything.
## Turning it on
Insights runs on the **Search analytics** switch, in **Settings → What gets searched**. If the tab shows "Search analytics is turned off", that's where to go.
## What's recorded
Counts of search terms, and nothing that identifies anyone. The dashboard says so at the foot of the page: readers are never tracked individually. There's no visitor profile behind these numbers and nothing to export about a person.
If you'd rather not collect even that, turn the switch off. The Insights tab goes empty and search carries on working.
## Reading Insights
Three numbers across the top, for the period you've selected:
- **Total searches**: how many searches ran in the window.
- **Clicked a result**: the share of those searches that ended with someone opening a post, shown as a percentage. The raw number of clicks sits underneath it.
- **Found nothing**: searches that returned no match at all.

Then a **Search volume** chart, and two lists.
**Top queries** is what readers ask for most. It tells you which topics are carrying your site, which is often not the ones you'd guess.
**Searches that found nothing** is the one to read properly. Every line is somebody who arrived expecting something and left without it. Taken as a list of posts to write, it beats most content calendars: your audience wrote it for you, in their own words, with a count beside each one telling you how many people wanted it. Very short searches are left out of this list, so what you see is what's worth acting on.
You can switch the window between **7 days** and **30 days**. The 30-day view is plan-gated, so if your site is on the shorter window the dashboard says **Showing the basic analytics window** and gives you the last 7 days.
## Suggestions
Suggestions are the terms readers see in the search window before they've typed anything. The tab is three cards.
**Smart suggestions** is on unless you switch it off. It fills the list out for you from your search analytics, so you don't have to curate anything. Smart terms slot in after your pinned ones and before the rest, and duplicates are dropped automatically.
**Your suggestions** is the list you control. Type a term, press **Add**, and it joins the list. Pin the ones you want to lead: pinned terms keep the order you put them in and always come first. You can pin up to 10 and hold up to 10 unpinned. When the unpinned half is full the input stops accepting more, and tells you to pin or remove something to make room.
**Readers see** shows the result as one row of identical chips. That's the point worth understanding: readers can't tell a pinned term from a smart one from a curated one. Pinned lead, smart terms fill the middle, the rest follow, and duplicates collapse.

## The loop between the two tabs
This is the part worth actually using. Every row in the **Top queries** list carries two buttons: **Add suggestion**, and **Pin** to add it already pinned. Either one drops the term into your Suggestions draft and takes you to that tab, where you still have to save.
So the loop is short. Read what people searched for, then put the good ones in front of the next reader. A term that's already popular is about the safest suggestion you can make, because you know at least some of your audience wants it.
The **Searches that found nothing** list doesn't have those buttons, and shouldn't. Suggesting a search that returns nothing would walk readers straight into a dead end. Those go on your writing list instead.
### Customising your search interface
URL: https://www.magicpages.co/help/search/customising-your-search-interface/
Last updated: 2026-08-14T15:26:08.000Z
None of this is needed to make search work. Advanced Search looks fine the moment you turn it on. These are the settings you come back to later, when you want the search window to match your site or to speak your readers' language.
Both sit under **Settings** in the **Search** tab, below the ranking controls.
## Appearance
Five things to set, with a **Preview** underneath them so you can see each change before you save.

### Layout
- **Modal**: a familiar centred search window. The right default.
- **Palette**: a keyboard-first command bar with results in groups. Suits documentation and reference sites, where people use search constantly and know what they're after.
- **Discovery**: a browsable pane with filters and a live preview of the highlighted result. Suits a large archive people want to explore rather than search.
### Results as
**List** or **Grid**. Grid shows posts as image cards, and it's only available in the Modal layout. Pick Palette or Discovery and the Grid option greys out, and a Grid setting you'd saved earlier drops back to List on its own. That's expected rather than a fault, and it's easy to misread as one.
### Theme
**System** follows your visitor's device settings. **Light** and **Dark** override it and always look the same.
This is the search window's own theme. It doesn't have to match your site, though on most sites System is the setting that makes it feel like it belongs.
### Highlight matches
On by default. Readers see their search term picked out inside every result, so they can tell at a glance why a post came back. Turn it off if the highlighting fights with your design.

### Reader filters
Turning **Reader filters** on gives readers chips to narrow their results by **Topics**, which are your tags, and by **Authors**. You can switch either chip off and keep the other.
## Internationalization (i18n)
This is where the search window's text gets translated, and it starts with a **Language** picker.
Pick one of the presets and the whole search UI switches over at once. We ship complete translations for **German**, **French**, **Spanish**, **Italian** and **Ukrainian**. **English** is the default and the fallback. If your edits stop matching any preset, the picker shows a **Custom** pill instead.

Underneath, **Translatable strings** lists every string as its own field, so you can fine-tune anything the preset got not-quite-right for your audience. Anything you leave blank falls back to English, and clearing a field puts the English back rather than saving an empty string.
The list changes with your layout. It only shows the strings your chosen layout actually displays, so a Palette site sees its group headings and a Modal site sees its keyboard hints. Change the layout in Appearance and the field set changes with it.
Below them, a collapsed section holds the ARIA labels. Those are what screen readers announce, so if you translate the visible text and leave these in English, anyone using a screen reader gets a half-translated interface. Do both, or neither. The presets fill both in for you.
Translating only affects the interface labels. Your posts and pages are never touched.
Worth doing if you publish in one non-English language. If your site is in English, skip this section entirely.
### Setting up Advanced Search
URL: https://www.magicpages.co/help/search/setting-up-advanced-search-on-magic-pages/
Last updated: 2026-08-22T15:32:55.000Z
Turning Advanced Search on takes two clicks and a short wait while the index builds. Open the **Search** tab in the [Customer Portal](https://www.magicpages.co/help/trial/where-can-i-find-the-magic-pages-customer-portal/), click **Change** on the integration row, pick **Advanced Search**, and save.
Everything after that is tuning you can do later. This article covers the first index build, when to re-index, what readers can find, and how results get ordered.
> Advanced Search is included only on the Pro plan, and on custom plans.
## The first index build
Saving starts the first index. Everything you've published gets read and handed to the search engine, which takes a few minutes on a small site and longer on a large archive.
The status strip under the page title is where you watch it. It names the integration you're on, counts the pages indexed, and says when the last sync finished.
You don't need to touch your theme. The search box your readers already use is the one that gets upgraded.

## Re-indexing
The status strip has a **Sync now** button. Press it when what readers can find doesn't match what's on your site:
- You've imported or bulk-edited a lot of posts at once.
- You've changed one of the switches below, so what belongs in the index has changed.
- Something looks stale and you'd rather not wonder about it.
A sync runs in the background so you can leave the page while it works. The strip updates when it's done. If it fails it says so, and you can try again.
## What gets searched
The **What gets searched** card decides what readers can find. It has six switches, turn them on or off depending on what you want included:
- **Pages**: include pages like About or Contact alongside your posts.
- **Author names**: searching a writer's name finds their posts.
- **Tag names**: searching a tag name finds posts with that tag.
- **Semantic search**: matches meaning as well as keywords, so "growing tomatoes" can surface "vegetable garden tips".
- **Members-only content**: gated posts become findable by title and excerpt. The protected content itself is never exposed, so this doesn't leak anything from behind your paywall. Results are labelled by which gate they sit behind: Members for posts any signed-up reader can open, Paid members for paid and tier-restricted ones. A free subscriber can tell before they click.
- **Search analytics**: counts what readers search for, anonymously. The data will then be displayed in the **Insights tab**.
Changing any of the first five changes what belongs in the index. Press **Sync now** afterwards so the change reaches your readers.

## How results are ranked
Two controls sit under **How results are ranked**.
**Order results by** decides what wins when several posts match. There are two choices:
- **Best match** ranks by relevance first, then by the most recently updated posts. It's the default, and it's the right answer for most sites.
- **Recently updated** prefers fresh or recently maintained posts over pure relevance. Pick it if your archive dates badly, like news or release notes.
**Fields that matter most** decides which part of a post carries the weight:
- **Title first** ranks title matches highest. Good for sites where the title says what the post is.
- **Equal weight** treats every field the same.
- **Content first** favours body text. It suits long posts where the useful answer is buried inside rather than announced in the heading.
- **Custom** lets you set your own field weights, in the per-field editor described below.

### Advanced ranking options
Collapsed below the two controls above, and most sites never open it. It opens on its own if your field weights don't match one of the presets.
Three switches come first:
- **Boost exact phrases** ranks posts containing your exact search phrase above partial matches.
- **Match as you type** shows results while a reader is still typing the last word.
- **Forgive typos** finds matches even when a term is misspelled.
Four more controls sit underneath them, and they're easy to miss:
- **Semantic tuning** holds two settings, and both only apply while **Semantic search** is on. **Semantic blend** balances keyword matches against meaning-based ones, on a scale of *Keywords first*, *Even mix*, *Meaning first*. **Match strictness** decides how close a meaning-based match has to be to appear at all: *Strict* only shows very close matches (a search for "meditation" won't return "gardening tips"), *Balanced* allows moderately related results ("meditation" could surface "mindfulness practice"), and *Relaxed* casts a wider net ("meditation" might also find "stress management").
- **Searchable fields** sets how much each field counts, each one *Low*, *Normal* or *High*. Title, Body, Excerpt and Meta Description are there by default, and you can add Tags, Authors or Slug. Changing anything here switches **Fields that matter most** to **Custom**.
- **Custom sort order** is a text box for writing the sort expression by hand, if the two presets don't cover what you want.
- **Results per page** sets how many results the search window shows, between 1 and 100\. The default is 10.
## What's left
Search works at this point, and you could stop here.
The rest of the Search tab is presentation and reading. Appearance and Internationalization change how the search window looks to readers and what language it speaks. The Insights and Suggestions tabs show you what people search for and let you put terms in front of them. Both have their own articles.
### How search works on your Ghost site
URL: https://www.magicpages.co/help/search/how-search-works-on-your-ghost-site/
Last updated: 2026-08-14T15:22:53.000Z
Every site on Magic Pages already has working search. It's the magnifying glass in your theme, it needs no setup, and for plenty of sites that's the whole story.
There are two other options sitting behind it. Read through each one and you'll know in a minute whether you need to change anything.
## Default Search
This is the default unless your theme ships with its own search. It uses the built-in search box and looks at titles, excerpts, tags, and authors.
Nothing to configure, nothing to turn on. If readers find what they're after and you don't need to know what they're searching for, you can stop reading here.
One of its limits is that it matches text rather than meaning. Someone who types newsletter finds posts with "newsletter" in the title. Someone who types newlsetter finds nothing.

## Custom Files
This one lets you upload your own search JavaScript and stylesheet, and serve both from your own domain. The JavaScript slot is required and takes a `.js` file up to 10MB. The stylesheet slot is optional and takes a `.css`.
It exists for two situations: you want the search box to look like something your theme can't do on its own, or you have compliance rules saying the files have to sit on your domain rather than someone else's CDN. If neither is you, this isn't the one.

## Advanced Search
Full-text search across everything you publish, included on the Pro plan and on custom plans. It's built on Typesense, an open-source search engine made for the kind of instant, forgiving search you get on a well-built documentation site.
Three things it does that a theme search box can't:
- **Typos still find the post.** Someone searching newlsetter gets your newsletter posts.
- **Meaning gets matched, not just words.** With semantic search on, "growing tomatoes" can surface "vegetable garden tips" even though the two share no words at all.
- **You can see what readers search for**, including the searches that came back empty.
It also brings ranking controls, a search window you can restyle, and a list of suggested terms you can put in front of readers before they type.
Your theme doesn't need touching. The search box readers already use is the one that gets upgraded.
## Where the setting lives
Open the [Customer Portal](https://www.magicpages.co/help/trial/where-can-i-find-the-magic-pages-customer-portal/) and go to the **Search** tab. The strip under the page title tells you which integration you're on right now.
Click on **Change** to choose your search integration.

You can switch between them whenever you like and nothing changes for your site. A switch only takes effect when you save, so readers keep the old search until then.
## Which one you want
**Default Search** if search isn't something you think about. If search isn't a priority right now, there's no reason to touch it.
**Advanced Search** if your archive has grown past the point where people can find things by guessing the title, or if you want to know what readers are looking for. A list of searches that found nothing is a list of posts your audience wants and you haven't written yet.
**Custom Files** only relevant if you're building something custom on top of Ghost.
### Open House − Q3 2026
URL: https://www.magicpages.co/open-house/open-house-q3-2026/
Last updated: 2026-08-13T15:52:37.000Z
In this session of our quarterly Open House format, we will walk through what we've shipped since the last Open House – including a recap of our trip to IndieCon and the launch of the Magic Pages podcast – and give a quick look at what's coming next. Then, we open the floor for your questions.
## What we'll cover:
- **IndieCon recap**: our first time at the independent publishing festival in Hamburg
- **The Magic Pages podcast**: new episodes and what's coming
- **Gift links**: pay once for a site and give it to someone else
- **Front-end files now served from your own domain**
- **Staging sites**: test big changes before they go live
- **Open Q&**A: bring your questions, or send them in advance to [help@magicpages.co](mailto:help@magicpages.co)
The session is recorded, so you can re-watch later if you can't make it live. Subscribe below to get a reminder the day before and 30 minutes before we start.
### Updated Customer Websites to Ghost v6.57.1
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-57-1/
Last updated: 2026-08-10T21:00:59.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.57.1 today. You can read about changes included in Ghost's official release.
[Release 6.57.1 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.57.1?ref=magicpages.co)
### Ghost's Front-End Files Now Come From Your Own Domain
URL: https://www.magicpages.co/roadmap/ghosts-front-end-files-now-come-from-your-own-domain/
Last updated: 2026-08-08T10:12:53.000Z
Every reader who opened your Ghost site on Magic Pages used to make a request to `cdn.jsdelivr.net`, a public CDN run by a third party, before the page finished loading. Not anymore.
Ghost has five small apps that run on the public side of a site: Portal, search, comments, the announcement bar, and the embeddable signup form. Portal and search load on every page view. Ghost points all five at jsDelivr by default, so that request happened on every page view, on every site we host.
A request to a CDN is still a request. Your reader's IP address, browser and referring domain go to whoever answers it. They do not collect any cookies and nothing is linked to individual users. But why share data if there's a safer – and faster – alternative?
## What changed
Every site we host now serves those files from `https://yourdomain.com/content/files/ghost-apps/`. There's nothing to switch on and no setting to change.
They're the same files jsDelivr would have served. We do not just proxy the files, but keep our own copies matched to the version of Ghost your site runs. Now, the requests to these files never leave the Magic Pages infrastructure.
## What still comes from somewhere else
There are still a few files that might be loaded from third parties.
The one we cannot change is Stripe, if you sell paid memberships. Ghost loads `js.stripe.com/v3/` on every page, and Stripe only supports serving that file from their own domain.
The rest might be caused by your theme, if it pulls in fonts, icons or scripts of its own. That lives in the theme's code rather than ours.
And one you'll only ever see yourself: while you're logged in as a staff user, Ghost loads a small admin toolbar from jsDelivr. Your visitors never request it. So a jsDelivr address in your own page source is expected, rather than something we missed.
## Where the self-host buttons went
The Configuration page inside our Customer Portal used to have buttons that downloaded the portal, comments and search files onto your own site. They solved the same problem one site at a time, and the copy they left behind froze at whatever version was current the day you clicked. Every site gets this by default now, so the buttons are gone.
If you run a modified Portal build or your own search files, you can still upload them under Configuration. Nothing about that changed.
The full picture, including what to look for in your own page source:
[Does my Ghost site load anything from third-party servers?Portal, search and comments come from your own domain, not a third-party CDN. Here’s what that covers, and the one exception.Magic PagesJannis Fedoruk-Betschki](https://www.magicpages.co/help/features/can-i-serve-ghosts-portal-and-search-files-from-my-own-domain/)
### Does my Ghost site load anything from third-party servers?
URL: https://www.magicpages.co/help/features/can-i-serve-ghosts-portal-and-search-files-from-my-own-domain/
Last updated: 2026-08-08T10:00:42.000Z
This is about Ghost sites hosted on Magic Pages. If yours is hosted somewhere else, Ghost loads these files from a public CDN by default.
Almost nothing. Ghost's Portal, search, comments and announcement bar are all served from your own domain, so your readers' browsers never call out to anyone else to load them. The one exception is Stripe, and only if you sell paid memberships.
## What we serve from your domain
Ghost normally loads its front-end scripts from `cdn.jsdelivr.net`, a public CDN run by someone else. We don't. We keep our own copies and serve them from your site:
- **Portal** powers your signup and account pop-ups. It loads on every page, unless memberships, tips and recommendations are all switched off.
- **Search** loads on every page. If you're on Pro, Advanced Search comes from your domain too.
- **Comments** load on posts where comments are turned on.
- **The announcement bar** loads while you have an announcement running.
They're served from `https://yourdomain.com/content/files/ghost-apps/`, so as far as your readers' browsers are concerned, all of it comes from you. Nothing to switch on, and nothing that needs a setting changed.
## We keep them up to date
Ghost releases new versions of these files alongside new versions of Ghost, and a copy that drifts behind the rest of your site starts behaving oddly. We update our copies with each Ghost release, so this stays current without you doing anything.
The Configuration tab used to have buttons for hosting these files yourself. They're gone, because every site now gets this by default. If you run a customised build of Portal or your own search files, you can still upload them under Configuration.
## What still comes from outside
**Stripe.** If you sell paid memberships, Ghost loads `js.stripe.com/v3/` on every page. Stripe only supports serving that file from their own domain, so there's no copy we can host for you. Turning off paid memberships is the only way to remove it.
**Your theme.** Themes can load fonts, icons or scripts from elsewhere, and that lives in the theme's own code. If you want the full picture, read your page source.
**The admin toolbar, but only for you.** While you're logged in as a staff user, Ghost loads a small toolbar script from `cdn.jsdelivr.net`. Your visitors never request it. It does mean you'll spot a jsDelivr address in your own page source while you're logged in, which is expected rather than something left over.
If you're working through this for GDPR reasons, here's where your site and its data actually sit:
[Where are the Magic Pages servers located?Where your site, your backups and your newsletter data are stored, and why a nearby CDN edge isn’t the same as data living there.Magic PagesJannis Fedoruk-Betschki](https://www.magicpages.co/help/plans/where-are-the-magic-pages-servers-located/)
### Updated Customer Websites to Ghost v6.57.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-57-0/
Last updated: 2026-08-07T17:21:25.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.57.0 today. You can read about changes included in Ghost's official release.
[Release 6.57.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.57.0?ref=magicpages.co)
### Building a Ghost site with no Ghost experience
URL: https://www.magicpages.co/podcast/episodes/episode-5-mark-alexander/
Last updated: 2026-08-06T10:19:32.000Z
## About this episode
Mark Alexander is a Melbourne-based technology writer and the founder of [**Tech That Fits**](https://techthatfits.net/?ref=magicpages.co), where he reviews gadgets through one deceptively simple question: does it earn its place? He lives in a roughly 40 m² studio with his partner Colin — the creator of [Never Too Small](https://www.nevertoosmall.com/?ref=magicpages.co) — so "tech for small spaces" isn't a category on the site, it's the whole starting point.
Mark joins Jannis on his path to Ghost as a complete newcomer: evaluating Webflow and WordPress first, choosing Ghost for built-in memberships and newsletters, and then — with no prior Ghost experience — building his own custom theme, partly with the visual builder [Fantasma](https://www.fantasma.io/?ref=magicpages.co). They get into creative homepage touches (a robot vacuum that drives around the page), a repeatable review framework, reaching readers through Google and Apple News, and the road from CES and IFA to Indiecon in Hamburg.
## Chapters
- **0:00** — Welcome — meet Mark Alexander
- **0:29** — What Tech That Fits is
- **1:16** — Living small with Colin, and Never Too Small
- **3:24** — Tech that earns its place — the Samsung Frame TV
- **4:15** — Why Ghost, after Webflow and WordPress
- **7:05** — Replying to the Indiecon post — and a first custom theme
- **9:36** — Fantasma, the visual Ghost theme builder
- **13:00** — Creative touches — a robot vacuum on the homepage
- **15:13** — Publishing frequency and a review framework
- **16:59** — Colin's role, and smart-home war stories
- **20:56** — Google News and Apple News
- **24:05** — From CES and IFA to Indiecon
- **26:00** — Singapore, and Hamburg's creative scene
- **27:34** — The future of Tech That Fits
- **29:44** — How to get an Indiecon ticket
## Links & mentions
- [Tech That Fits](https://techthatfits.net/?ref=magicpages.co) — Mark's technology-reviews publication, built on Ghost
- [Never Too Small](https://www.nevertoosmall.com/?ref=magicpages.co) — Colin's small-space design channel & magazine
- [Fantasma](https://www.fantasma.io/?ref=magicpages.co) — the visual Ghost theme builder Mark used for v1 of Tech That Fits
- [Search Off the Record](https://developers.google.com/search/podcasts/search-off-the-record?ref=magicpages.co) — Google's Search Central podcast Mark recommends
- [Indiecon](https://www.indiecon-festival.com/?ref=magicpages.co) — the independent publishing festival in Hamburg, 4–6 September 2026
- [Episode 4 — A Web Hosting Company at a Print Festival](https://www.magicpages.co/podcast/episodes/a-web-hosting-company-at-a-print-festival/) — why Magic Pages is going to Indiecon
## Transcript
**Jannis:** Hi, and welcome to the Magic Pages podcast, where we sit down with the people building, hosting and publishing on Ghost. I'm Jannis, and today I'm here with Mark Alexander, a Melbourne-based technology writer and the founder of Tech That Fits. Welcome. Good to have you on.
**Mark:** Thanks, Jannis. Thanks for having me.
**Jannis:** Mark, can you quickly introduce yourself for people who don't know you yet? Who are you? What do you do? And what is Tech That Fits?
**Mark:** Okay, sure. I guess I've always been quite a big fan of technology. Not just what's new, but how technology changes the way we live, and Tech That Fits has become my creative space to explore that. I do this with Ghost at the moment, covering tech news and reviewing products, but I'm also developing some guides. I kind of want my site to help people get more from the technology that they already own, as well as make better decisions when it's time to upgrade. I guess with Tech That Fits, we're looking at how useful the tech is, whether it's thoughtfully designed and whether it's actually pleasant to live with. I live with my partner, Colin, and our dog in a small studio apartment.
It's about 40m2, and in a small home, everything you bring to it has to really earn its place. You become very much aware of the space that something occupies and whether it actually solves a problem, or if you even continue to use it after the novelty wears off. My partner, Colin, is the creator of Never Too Small, which originally started as a YouTube channel, and lots of cleverly designed small apartments, and now it's expanded to different types of media. Colin's recently just launched a magazine, which explores more joyful ways to live and design through some of Colin's partnerships. I get exposed to a lot of new tech, and all this has contributed to the way that I judge technology, particularly how it's used in small spaces.
Other publications touch on these ideas, but I wanted to make that kind of tech in small spaces a starting point rather than an occasional category.
**Jannis:** The one thing that really stood out to me when I read through your site, your blog, specifically the About page, is the premise that you always judge tech based on the question, does it earn its place? As a tech person myself that has, just looking around, my office cluttered in tech? That is a premise that I should probably take a bit more serious. Is there a particular bit of tech that you've covered in the last couple of weeks where you say that definitely earned its place, something that really stands out for you that people should maybe have a look at?
**Mark:** Good question. I guess it's easier to find a lot of tech that doesn't fit a place, especially a small space that me and Colin live in, and that's sometimes another way that the tech in our apartment is judged. It's very much judged by Colin, and whether it aesthetically fits our apartment. We have a lot of cool tech in our place, Samsung Frame TV, for example. It's great that when you turn it off, it just blends into the background, blends into our gallery wall we have.
**Jannis:** I've seen the Samsung TVs like that in a lot of places, and I think the last place was actually an Airbnb in Bergen, in Norway, where we stayed, where at first you barely saw that it was a TV. So that is definitely something that I can see, especially in a small space that. It makes so much sense, I think.
**Mark:** Yeah, we always get people come over and they don't realize it's a TV until we hit the button and turn it on to a TV.
**Jannis:** Yeah, cool. You have decided to start a publication, Tech That Fits, and you ended up with Ghost. So now the main question that the audience probably has is, why did you choose Ghost? What was the journey to get there and have you compared Ghost to anything else on that way?
**Mark:** Ghost initially wasn't the platform that I was going to choose to develop the website on. I did sign up to a few others to kind of test them out and to evaluate, and I guess I spent a few months on another platform, and I spent a bit of time just upskilling some existing web development skills I had. But the more I began to develop things in the background, ultimately I decided that newsletters and memberships were going to be quite important to the future of the site. When I looked back at things I was evaluating, I felt like, you know, Ghost has all that built in from the start.
So I thought, yeah, that kind of ultimately helped me decide. And then I guess the same reasons every other Ghost publication has chosen Ghost. Ultimately you want to remain some kind of ownership over everything and flexibility. I think it's a great way with the membership system to get to know your audience, and. I want to develop a publication that listens to the feedback of my audience and use that to help me influence the development going forward.
**Jannis:** Can you just share, if you want to, what platform did you evaluate before Ghost? You said you spent a couple of months there.
**Mark:** So I spent a bit of time on Webflow and WordPress. WordPress I had used a few times before with a few different things. I ultimately found that to be quite clunky. And I can see from WordPress's development blogs, they're getting ready for another version, which is built from scratch. I decided against using WordPress. And the kind of platform I did spend a bit more time using and developing on was Webflow. But earlier this year, they actually took out their membership features and discontinued it for new customers. And they're kind of moving away from that. That helped me decide against using Webflow.
**Jannis:** I didn't know that they discontinued that. That's definitely an interesting move, yeah.
**Mark:** Yeah, they discontinued it from their kind of core package. And there's since been a third party app that has another subscription layered on top to add that kind of feature in.
**Jannis:** Interesting. Yeah. The reason why we're sitting here today is that you actually replied to a post that we posted on the Ghost forum in regards to Indiecon, the publishing conference in Hamburg. That's happening in September. And you mentioned that you started freshly with Ghost and that you were building a custom theme. And that was the hook where I thought somebody that has just started with Ghost, somebody that then decided, okay, I'm going to build my custom theme. That is someone I definitely want to talk to because we've had voices on the podcast so far from people that spent a couple of years with Ghost already, people building tools on Ghost with us, Magic Pages, hosting Ghost, but never from somebody that had no Ghost experience so far and then jumped right into developing a custom theme.
So can you tell us a little bit about that, how you started that, also maybe what prompted you to actually say, okay, I need a custom theme.
**Mark:** One of the reasons why I saw your post on the Ghost forums was because I was using the forums as a way to look into other people's publications and as to how they were customizing things and seeing how people had customized the other themes in general. I guess I'm quite a creative person when it comes to web development and I ultimately knew that I wanted to customize the way everything was going to look. I guess that because I had developed the first version of Tech That Fits within Webflow, I had a bit more creative control over the way the pages were designed and I felt like just using one of the Ghost templates restricted me a bit. I ultimately know that once I've got a few more posts that.
I want to have a more creative way to display them all together. For me as well, I wanted a way that I can showcase some of the tech from the never too small episodes into some of my pages without actually putting the content into my database or copying that content over. So, I've got some custom codes that are going to be able to fetch content that never too small hosts.
**Jannis:** You also mentioned that you've used a tool that is in a way quite similar to Webflow. It's Fantasma, which is a visual page builder, a visual theme builder for Ghost. Can you tell us a bit about your experience with that? How have you used it and what did you like about it? What were maybe the struggles with it?
**Mark:** Yeah, I was really happy once I saw Fantasma on the Ghost forums. I think one of the struggles I was having with using Ghost at the beginning was to customize the templates and to customize the way things are displayed, especially having different sections on my website, wanting to do some quite advanced filters on tags that are attached to posts. Fantasma was great just to let me quickly build version one of Tech That Fits website. Yeah, because I do have some more advanced knowledge of web development, I still go back to editing some of the code and adding in some custom integrations, which can be a bit troublesome with Fantasma, because if you make any customizations to that template, ultimately, once you change it again on their site, those changes are overridden when you press publish.
**Jannis:** Yeah, that's the Ghost publishing mechanism that doesn't work well with uploading new themes and keeping some of the history there. So that's probably an extra step that you have in the publishing workflow there of having to download the Fantasma theme, applying your changes and then uploading it to Ghost, right?
**Mark:** Yeah, I think for me, I've been trying to optimize the website to independently run, but ultimately, I want to push content to services like Google News and Apple News to help draw in an audience to use those sites as a channel to advertise on. Yeah, that's why I kept doing custom modifications to some of my code.
**Jannis:** And what's the ultimate visual identity that you want with Tech That Fits? Is there some more customization that you have in mind or is it mainly the tags and the sections that you've added now that you wanted from the custom theme?
**Mark:** Ultimately, I know that version one of the site is going to look very different to version two because. I am reviewing a lot of tech products. I am going to break those up into categories so they're a bit easier to find. And I think at the moment, it would look a bit silly to have a category page with just one or two reviews. So in the future, that's what I'll look at adding in. I also want to do just a bit more customizations that just add a bit more creativity to the site. Currently, on my homepage, if you're viewing it on a desktop, there's like a pop out cover of the latest Never Too Small magazine that appears on the side. I want to also add in some full kind of widgets that might appear around the side.
Earlier today, like I'm just getting ready to publish a review on a robotic vacuum. I've just wrote some custom code that will have the actual robotic vacuum driving around the white space on the side of my website that will be clickable, that will take you to that post. Yeah, so I was just looking at creative ways to showcase some of my posts on different pages. The same for maybe linking to a podcast that I'm listening to on the side, having a bit of a retro iPod that you can click and it launches into a podcast I might be listening to. I also want to use Tech That Fits as a way to showcase other publications and link to other websites that are of interest to me and then hopefully of interest to the Tech That Fits audience.
For ghost publications and just websites in general, it can be quite lonely as a solo editor. So I'm always a big fan of collaborating with other people, hence why I'm on this podcast with you as well. I think that's a great way to promote your site to different audiences. Somebody listening to this podcast might have an interest in tech in small spaces and then visit my site.
**Jannis:** Yeah, and it's also just great to share your creativity in there and to just listen to the ideas that you have because now hearing you talk about a vacuum robot going over the white space, it's such an obvious thing that you can do when you review a vacuum robot. But to get there and to say, well, I'm actually going to take the time and build this just as a little gimmick, as a little creative exercise and as a way to capture somebody's attention. That is something a lot of people can learn from as well. And I'm really curious to see how that's going to work and what robot you're going to review because we have two at home. I'm not very happy with either of them.
Let's put it this way. You also mentioned now that you are publishing all of that yourself, that you're solo publishing the articles. And the one thing I've noticed is that you have a very high frequency of publishing. Slow down now a little bit, I guess, because you've launched just a couple of weeks ago. But especially in the first couple of weeks of having your site online, you published a couple of times a week, like sometimes two or three times a week. How do you see that going forward? How do you want to sustain that? Or the better question is, what's the frequency you're aiming for?
**Mark:** I guess my aim at the moment is to try and publish two or three reviews a week. And what I've been kind of developing at the start is a common framework that I can use to help me review these products. I think having a regular kind of format helps the audience have some kind of expectation as to how a product might be reviewed. And from an editorial point of view, like having that framework just gives you a template to stick to and focus on. And for my audience, if there's a robot vacuum, for example, having a standard format that I use to review those different products in that category, it makes it very easy for someone on my audience to compare two products together.
Because the aim with Tech That Fits is that we can help our audience choose the product that we're going to fit in their place.
**Jannis:** With the angle of making sure that it's tech that fits, you also mentioned that Colin always has to judge a tech product that goes into your guy's apartment. Does he also have a part in the review process then for Tech That Fits?
**Mark:** If you read some of the reviews, there's a couple that have Colin's comments in the background. And I guess for us in our apartment, I'm the technical side of the relationship. And I know now from experience that I need to make sure that anything I implement in home works without too many quirks. I'm always testing out some smart home products, some lights that doesn't always quite maybe work how it should or doesn't integrate into the Apple home system that we use and it needs a physical switch, doesn't work with voice, things like this.
**Jannis:** My wife, Mariia and Colin would have a lot of stories to share then because same here. Implementing lights, I think that the latest thing that worked well, we implemented a new light a couple of days ago that essentially turns on when at night you pass, so it illuminates the way to the bathroom. That went well. But. I remember one of the other things I implemented a couple of months ago already, which was a smart lock at our door. All of a sudden, the door was just unlocked all the time. And Mariia just said at some point, this is an actual security issue. Like, why is this not working? And I was just sitting there at my laptop and giving her the technical details.
And she just said, still, I don't care why it's not working. It is not working. The door is unlocked. And that was for me that awakening moment where I also had that mind shift really of, yeah, like there is somebody else here as well that needs to live with that tech. So I can relate a lot to the sentiment of, in your case, tech that fits. And in my case, it's probably more like tech that just needs to work without having all the little bits and pieces around it that need to line up. So, yeah, I guess the two of them would have lots of stories to share.
**Mark:** Yeah, definitely. I think living with Colin, one thing I've learned always to do is try and add in a physical switch where possible. I have a lot of those IKEA smart switches that will just turn things on and off. Yeah, they definitely help, but we still get randomly lights flashing because I've lost Wi-Fi signal or something like this. We're just in the matter of upgrading some of our smart lights from Wi-Fi bulbs to the matter ecosystem just to give everything a bit more stability.
But also me suddenly deciding to run the beta version of iOS 27 so I can get access to the new Siri Assistant has kind of broke some of those things.
**Jannis:** Yeah, for us, it was moving into this new apartment here, which basically has two floors. So we have some offices up here where I'm currently. And that meant all of a sudden you have a lot more surface area to cover. And especially with smart home, that got very interesting at some points where our smart home hub, which is Home Assistant in our case, is at the very, let's say, front of the apartment. And we are now here at the very back and one floor up. And some of the lights in here in my office, for example, just wouldn't work anymore.
So it's those things where then the whole night all the lights were on up here because I just couldn't figure out how to bridge that gap. And the only solution was to turn electricity off in this room. So it's interesting stories like that with smart home sometimes, sometimes not so very smart.
**Mark:** Yeah, I think an upgrade to Home Assistant is in our future. And that's definitely going to maybe be a series on Tech That Fits, that upgrade.
**Jannis:** It does sound like a series, yes. And I'm very intrigued to hear how that goes in the end. You've also mentioned before Google News and Apple News, especially Apple News I've personally never looked into. Do you already see some results from that? Do you see that people come from Apple News to your site?
**Mark:** I haven't yet finalized an integration with Apple. There's an approval process with them with Google News, though. Yes, you know, being Australia based, there's not too many tech blogs to compete with. So especially in posts where I'm writing about something in the tech space in Australia, it's very easy to rank and to get traffic from Google.
**Jannis:** Cool, interesting. And how hard was the integration with that? Can you maybe just like on a service level, can you share what you had to do with your Ghost theme to get integrated there?
**Mark:** Yeah, it actually wasn't very difficult for Google News integration. It just involved me within Ghost creating a custom HBS file. Yeah, which basically displays just posts from the last seven days. And I specifically get it to only show posts which have a special tag, Google News, so that I can control what content is sent out to that channel. And I guess for anyone listening who wants to do something similar, yeah, it's pretty straightforward. I dove deeper into the way that Google News algorithm works. And definitely, if you integrate with Google, they favor sites that regularly post. And in that XML file, they only want to see posts from the last seven days.
So if you're not posting multiple times in a week, then it may be difficult to get any traction with them. Yeah, there's a Google Developer podcast I like listening to search off the record. Yeah, it's quite interesting. It does a bit of a deeper dive on how Google looks at your website and what's important to them.
**Jannis:** Nice, I'll link to that in the show notes. And I'll see if we can put something together on the Magic Pages site as well for Google News and Apple News.
**Mark:** Yeah, I'm happy to share with you what I did, and it's very easy to customize.
**Jannis:** Cool, thank you very much. Are there any other distribution channels that you're looking at, or are you mainly relying on the news aggregators in that sense?
**Mark:** Mainly on those two at the moment, I guess me, I have been looking at ways in which I can draw some traffic to my site. Another reason why I'm attending Indiecon, I find that a lot of in-person events, it's much easier to explain and talk about and to make connections with people.
**Jannis:** Indiecon is a good keyword. While we've been emailing about Indiecon, you've also mentioned that you went to CES in Las Vegas, you went to Milan Design Week, going to IFA in Berlin before you go to Indiecon, or while you go to Indiecon, essentially.
**Mark:** Yeah, in the middle of IFA, yeah, which would be interesting. I attended CES in Las Vegas earlier this year. That was pretty eventful and pretty hectic, I think. There was about 190,000 people attending CES this year, and IFA is like the European version of the same thing. And I think IFA this year, they're expecting around 220,000 people, so it's going to be busy. Yeah, I'm lucky that I've got a media pass. I get to go into the event a couple days early before the general crowd goes in.
**Jannis:** Right, but you're essentially going from one of the biggest events in that space to a tiny publishing conference with probably 2,000 to 3,000 people in total, yeah. 2,000 to 3,000 people is still quite a big event, I think, yeah. I think for the indie publishing space it is, yeah.
**Mark:** Yeah, and an international event. Like I see that Indiecon now have the list of everyone who's going, and yeah, it's quite interesting. There's someone else from Melbourne going as well, another publication. Yeah, so it'll be a good opportunity to network around and to get talking to other publications, and yeah, get some ideas on what's working for them, and that work well for me, and yeah, some collaboration, some maybe crossover.
**Jannis:** Nice. For Indiecon specifically, apart from the collaboration, have you had similar events already? Smaller publishing events, do you know of any others that are similar to that?
**Mark:** On my way to Germany, I'm stopping off in Singapore for a similar event they have. Colin is attending with me for that event. Never Too Small this last week has just launched issue 8 of the magazine, and it has a bit of a Singapore flair to it. So yeah, we're going to go to Singapore and attend a similar event, and yeah, showcase the latest issue of the magazine.
**Jannis:** Cool, nice. So maybe you're never too small at Indiecon 2027 then.
**Mark:** Maybe. I think I mentioned to you as well one of the attendees of Indiecon, the coffee table mags shop that's based in Hamburg. Yeah, they sell a lot of never too small magazines, and they have a lot of international prints. Yeah, so there must be something about Hamburg. Does it have quite a big creative scene? Have you been before?
**Jannis:** Yeah, I've been to Hamburg a couple of times, and there is in fact, yeah. There's like a big creative scene, both in let's say in the arts, but also in like publishing, also in digital creativity. Lots of where I come from, web development, web design, and so on. Some of the bigger advertisements firms are also in Hamburg, or like the bigger ones in Germany. Yeah, it is. For me, if I look at Germany, having lived in Berlin, we obviously have a big creative hub in Berlin, where lots of things happen, and then personally, I would say Hamburg is like the second bigger one within Germany.
**Mark:** Yeah, yeah.
**Jannis:** I have one last question for you. Big picture. Where do you see Tech That Fits in the next couple of years? Where do you want to develop that to?
**Mark:** There's been so many versions of Tech That Fits in my head, as to how it started and how things have developed. Yeah, I want to expand to some other types of media, potentially video. I would like potentially to interview some of the Tech That Fits audience on their kind of favorite tech devices. I think because I travel a lot with Colin, and I'm in the background of a lot of filming of the Never Too Small episodes, maybe there's an opportunity for me to interview some of the people in the homes that are featured in Never Too Small, maybe to have a deeper dive into the tech that exists in their background. Never Too Small focuses a lot on the architecture and the design, and you often see a lot of tech in the backgrounds of videos, because there's tech everywhere in everyone's houses.
Yeah, I guess there's a bit of space maybe where I could interview people on how they use that tech on what's important to them, and how it fits into their space and their life and things.
**Jannis:** That's really cool, and I sometimes watch videos, maybe not so much architectural videos, but other videos where people are interviewed and I spot things in the background, and I'm very curious about those things. I love to see that as well, just to see how people are integrating tech, especially in a way that it's not too obvious, or that it just fits into a space. So it sounds really lovely, and I'm looking forward to seeing how your site develops. Yeah, thanks. Perfect. Then, yeah, thank you so much for the lovely time that we spent together for giving us some insights into tech that fits into your world of publishing, where you come from, and also your insights into conferences and in-person conferences. Looking forward to meeting you, Mark, and have a lovely rest of your day.
**Mark:** Yeah, we'll see you soon.
**Jannis:** See you soon, bye-bye. Bye.
Now, if this conversation with Mark sparked your curiosity, and you want to come to Indiecon in Hamburg as well, I've got good news for you. We still have a couple of tickets left, so just drop a quick email to help@magicpages.co, and maybe we'll see you in Hamburg as well. It would be really lovely to meet more of you, and also to have dinner with Mark, myself, and a couple of other people. For now, that's it, and yeah, thank you for listening, and goodbye.
### Can I buy a Magic Pages site as a gift?
URL: https://www.magicpages.co/help/plans/can-i-buy-a-magic-pages-site-as-a-gift/
Last updated: 2026-08-05T15:11:06.000Z
Yes. You pay once, we email the person you're giving it to, and they set the site up themselves. You don't need a Magic Pages account to buy one, and nothing renews afterwards.
Gifts are bought on [our gift page](https://www.magicpages.co/gift/), which shows the current prices in your own currency.
## What you're buying
Every gift is a full Ghost site.
You do choose how long it runs: 3 months, 6 months, a year, or lifetime. Three and six months are charged at our monthly rate, and a year at the yearly rate. That makes a year cheaper than twelve months bought one at a time. The rates are the same ones a customer paying for themselves would get.
## What we need from you
- Their email address
- How long you'd like it to run for
- Your name, if you'd like them to know who it's from
- A note to go with it, which is optional
We don't ask for their new .mymagic.page subdomain. They pick that when they set the site up, so you can't get it wrong on their behalf.
## What happens after you pay
We email them a link to a page that shows what they've been given, along with your note. They choose an address ending in `.mymagic.page`, and we send a six-digit code to their inbox to confirm it's them. That check is why forwarding the link doesn't hand your gift to somebody else.
Their site is built a few minutes later, and we email them a link to their Ghost admin. From then on the hosting, updates, backups and support are ours to handle.
## What they don't see
They never see what you paid. Their billing page says the site was gifted and who it came from, and shows no price at all.
Claiming a gift takes an email address and a name for the site. There's no card to hand over, and no subscription is created in their name.
## Will you charge me again?
No. A gift is one payment for a fixed length of time, not a subscription with your card on it. There's nothing behind it for us to charge.
When a timed gift runs out, carrying on is the recipient's decision and the bill would be theirs. We email them about it twice before that happens, and nothing is charged to you. Here's [what they see when it runs out](https://www.magicpages.co/help/trial/setting-up-a-site-someone-gifted-you/).
## If they never claim it
The link works for 90 days. After that it stops working, but the gift isn't written off. Reply to your receipt and we'll either refund you or send it again, to a different address if you need.
## Buying more than one
Buy them one at a time, each with its own recipient. Two limits apply in any 30 days: fifteen gifts per buyer, and five to the same address. Both exist to stop people mass-creating sites rather than to get in your way. If you need more than that, email us and we'll arrange it.
A second gift for the same person gives them a second site, not more time on the first one. If you'd like to add time to a site they already have, email us instead of buying another gift.
## Lifetime gifts
A lifetime gift never runs out, so the person you give it to is never asked for a card at all.
Lifetime gifts come out of the same limited monthly pool as lifetime plans. We host those sites for as long as Magic Pages runs, and that has to stay sustainable. When a month's spots are gone, the lifetime option disappears from the gift page until new ones open. We've written up [how we work out that number](https://www.magicpages.co/help/plans/how-can-a-lifetime-offer-for-ghost-cms-hosting-be-sustainable/) and why it changes month to month.
### Setting up a site someone gifted you
URL: https://www.magicpages.co/help/trial/setting-up-a-site-someone-gifted-you/
Last updated: 2026-08-05T15:10:50.000Z
Someone has paid for your site, so there's nothing for you to pay and no card to add. Open the link in the email we sent you, pick a web address, and your Ghost site is built a few minutes later.
## Setting it up
1. Open **Claim your site** in the gift email. The page shows who it's from, how long it's paid for, and their note if they left one.
2. Choose your web address. It ends in `.mymagic.page` and can use letters, numbers and hyphens. You can [add your own domain](https://www.magicpages.co/help/domains/setting-up-your-custom-domain-on-magic-pages/) later, so this doesn't have to be your final answer.
3. Enter the six-digit code we email you. It goes to the address the gift was bought for, which is what stops anyone else who happens to have the link claiming it. You get five tries.
4. Wait a few minutes. We'll email you a link to your Ghost admin the moment the site is ready.
If the link doesn't work, it was most likely copied incompletely from the email, so try opening it straight from the email again. Gifts are held for 90 days, so an older one may also have run out. Either way, reply to that email and we'll sort it out.
## What you've got
A Magic Pages Pro site. That's Ghost, with the hosting, updates, daily backups and support all handled by us.
- [10,000 email newsletters a month](https://www.magicpages.co/help/newsletters/how-many-email-can-i-send/)
- [Your own domain](https://www.magicpages.co/help/domains/setting-up-your-custom-domain-on-magic-pages/) whenever you want to put one on
- [The .mymagic.page address](https://www.magicpages.co/help/domains/the-mymagic-page-subdomain/) until you do
You're not on a trial, so nothing on the site is counting down.
## Where to see your gift
Log in to your Ghost admin at `yourdomain.com/ghost`, click **Customer portal** in the left sidebar, then **Billing**. [More on finding the portal](https://www.magicpages.co/help/trial/where-can-i-find-the-magic-pages-customer-portal/).
The card there shows four things: whether the site is active, that you're on Pro, the date it's covered until, and who paid for it. There's no price, because there's nothing for you to pay.
## If it says "never expires"
That's a lifetime gift. Nothing runs out, nothing is charged, and there's nothing you need to do. The site is yours to keep.
## If it shows a date
Your gift covers the site until that day. We'll email you 14 days before it, and again 3 days before, so it can't take you by surprise.
Nothing is charged to you automatically, then or ever. Carrying on is a decision you have to make yourself.
## When the gift runs out
Your site stays online and nothing is deleted. The Ghost admin locks, so you can't publish or change anything until someone is paying for the hosting.
To unlock it, open **Billing** in the customer portal and add a payment method. The site comes back straight away, exactly as it was, with the same address and the same content.
****There's no advantage to paying early.** Adding a payment method before the gift runs out starts your own billing that day, and the time left on the gift isn't carried over. Nothing is lost by waiting.
From then on you're billed like any other Pro customer: yearly if you were given a year, monthly otherwise.
## If you'd rather not keep it
Do nothing. The site locks when the gift runs out and your content stays where it is, so you can change your mind later. You can [export your posts and pages](https://ghost.org/help/exports/?ref=magicpages.co) from the Ghost admin at any time before that.
### Gift a Site to Someone Else
URL: https://www.magicpages.co/roadmap/gift-a-site-to-someone-else/
Last updated: 2026-08-05T15:13:02.000Z
You can now pay for a Magic Pages site and give it to somebody else. The person you're giving it to sets the site up themselves.
It's live at [magicpages.co/gift](https://www.magicpages.co/gift/).
## How it works
You choose how long it runs: 3 months, 6 months, a year, or lifetime. Then you give us the recipient's email address. You don't need a Magic Pages account. You don't need to pick their web address either.
We email them a link. It opens a page showing what they've been given, with your note if you left one. They choose an address ending in `.mymagic.page`. A six-digit code to their inbox confirms it's them, and the site is built a few minutes later.
Gifts are held for 90 days. If one goes unclaimed, reply to your receipt and we'll either refund you or send it again.
## Handing someone a bill isn't a gift
The person receiving a gift never sees what you paid. Their billing page says the site was gifted and who it came from, with no price anywhere on it. Claiming it takes an email address and a name for the site. No card, and no subscription in their name.
A gift is a whole Ghost site, coming with all the features we offer. That means [10,000 newsletters a month](https://www.magicpages.co/help/newsletters/how-many-email-can-i-send/), their own domain whenever they want to put one on, and the hosting, updates, backups and support handled by us.
## When a timed gift runs out
We email the recipient 14 days before the end of the term, and again 3 days before. If nobody takes it over, the Ghost admin locks until someone is paying for the hosting. Adding a payment method unlocks it straight away, exactly as it was.
You're never charged a second time. A gift is one payment for a fixed length of time, so there's no subscription behind it for us to charge.
## Prices and availability
The gift page shows prices in your own currency. Three and six months are charged at our monthly rate, and a year at the yearly rate. That makes a year cheaper than twelve months bought one at a time.
Lifetime gifts come out of the same limited monthly pool as lifetime plans. When a month's spots are gone, the lifetime option disappears from the gift page until new ones open.
Two help articles cover the rest: [Can I buy a Magic Pages site as a gift?](https://www.magicpages.co/help/plans/can-i-buy-a-magic-pages-site-as-a-gift/) for the giving side, and [Setting up a site someone gifted you](https://www.magicpages.co/help/trial/setting-up-a-site-someone-gifted-you/) for the receiving side.
### Updated Customer Websites to Ghost v6.56.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-56-0/
Last updated: 2026-08-04T18:33:47.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.56.0 today. You can read about changes included in Ghost's official release.
[Release 6.56.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.56.0?ref=magicpages.co)
### Can I get SFTP or FTP access to my site?
URL: https://www.magicpages.co/help/features/can-i-get-sftp-or-ftp-access-to-my-site/
Last updated: 2026-08-04T14:02:42.000Z
No, and it isn't on our roadmap.
The reason is worth knowing, because it isn't about locking a door. Ghost reads your theme into memory when it starts up. If a file on disk changes after that, your site carries on serving the version it already has. Through (S)FTP you could upload a fixed template, reload your site, and see nothing change, with no error message telling you why.
That's a worse experience than not offering it at all. This is about how Ghost works rather than a limit we've put on your plan.
Whatever you were going to use SFTP for, there's a route that works. Here they are, most common first.
## Editing theme code
Ghost has a code editor built in, so most theme work needs no file access at all. Go to **Settings → Design & branding**, click the menu beside your active theme, then **Edit code**.
You get the theme's whole file tree and an editor in the browser. Saving repackages the theme and reinstalls it, which is the step that makes your changes show up.
[Easy theme editingMake quick changes to your theme code, directly in GhostChangelogJohn O’Nolan](https://ghost.org/changelog/theme-editor/?ref=magicpages.co)
Casper and Source can't be overwritten, so editing one of those asks you to save it as a new theme first.
If you'd rather work in your own editor, run a copy of your site on your own computer. Nothing you try there can reach your readers, and you see each change as you save it.
[How to run Magic Pages backups in a local Ghost environmentA step-by-step guide to importing your Magic Pages database and content backups into a local Ghost instance – covering both Docker and Ghost CLI setups.Magic PagesSviatoslav Huzel](https://www.magicpages.co/blog/how-to-run-magic-pages-backups-in-a-local-ghost-environment/)
When the theme is ready, zip the folder and upload it in your Ghost admin: **Settings → Design & branding → Change theme → Upload theme**.
## Adding images, video or files
Upload them in the editor, wherever you want them to appear. Ghost stores them and hands you the URL, so there's no folder to put them in yourself.
## Getting a copy of your files
Everything is downloadable from your customer portal, under **Backups** on the Support page.
**Content Backup** is your content folder: images, media, uploaded files and your theme files. **Database Backup** is your posts, pages, members and settings.
## Would a staging site help?
For trying a different theme, new settings or a batch of draft posts, yes. It's a private copy of your site, and publishing the result to your live site is one button.
[What is a staging site?A private copy of your site for drafting posts and trying designs, with its own address and an access code. Here’s what you can and can’t do on it.Magic PagesJannis Fedoruk-Betschki](https://www.magicpages.co/help/staging/what-is-a-staging-site/)
Theme code works there too, and staging is the safest place for it. Edit code is available on your staging site the same way, so you can change a template, look at the result on your staging address, then publish to your live site when it's right. [We compare staging and a local copy here](https://www.magicpages.co/help/staging/staging-site-or-a-local-copy/).
## Moving a lot of files at once
Sometimes the upload itself is the slow part of the job. A large media library coming over from another host is the usual case.
Tell us what you're working with and we'll move it on the server for you, straight onto your site.
### Staging site or a local copy?
URL: https://www.magicpages.co/help/staging/staging-site-or-a-local-copy/
Last updated: 2026-08-01T14:08:20.000Z
Staging is in beta. If you want to try it on your site, email help@magicpages.co and we'll switch it on for you.
Staging, unless you're writing theme code.
Both let you make a mess without anyone seeing it. What they don't share is the effort to get one going, and what happens to the work once it's good.
## Side by side
| | Staging site | Local copy |
| ---------------------- | ----------------------------------------- | ------------------------------ |
| What it costs | €3 a month, or €30 a year | Nothing |
| Who sets it up | We do | You do |
| What you need to know | Nothing | Docker or Ghost CLI, and MySQL |
| Getting changes live | One button | You redo them by hand |
| Keeping it current | One button | Import a fresh backup |
| Letting someone see it | Give them the address and the access code | You can't |
| Your subscriber list | Never on it | On your computer |
| Ghost version | Handled automatically | Yours to match |
| Theme files | Upload a zip | Straight from your editor |
## What setting up a local copy involves
You need Ghost running on your own machine with MySQL behind it, either through Docker or the Ghost CLI. Then you download two archives from the Support page of your customer portal, a database dump and your content folder, and import both.
Your local Ghost has to be the same version as your live site, or you get migration errors and a broken import. If you have Stripe connected, you have to clear the payment keys out of the database, because Ghost won't start over plain http with a payment provider attached. And you'll want to switch off staff device verification first, or Ghost tries to email you a login code that has nowhere to go.
None of it is hard. It's eight steps, and our [step by step walkthrough](https://www.magicpages.co/blog/how-to-run-magic-pages-backups-in-a-local-ghost-environment/) has the commands for both Docker and the Ghost CLI.
## Your members come with the backup
That database dump contains your subscriber list: email addresses, and who's paying you. From then on it's on your laptop, and on the laptop of anyone you sent the backup to.
Staging never has it. Members and subscriptions are stripped out when we build the site, and again on every [refresh](https://www.magicpages.co/help/staging/refreshing-staging-from-your-live-site/).
Worth thinking about before you email a backup to a developer.
## What neither of them can do
Neither is a place to test anything involving members or money.
Staging starts with no members, signups switched off and your Stripe connection left behind. Newsletter sending is blocked outright, so you can't email your subscribers from it even by accident.
A local copy lands in the same place by a different route. You cleared the Stripe keys to get Ghost running at all, and with no mail server, nothing you send leaves the machine.
So a signup flow or a paid tier, end to end, is still something you check on your live site.
## Doing both
They're not really rivals. If you develop a new theme, write the theme locally, where saving a file reloads the browser straight away. Then, upload the zip to staging once it's close, and you're testing against your real posts somewhere you can send a client. You can [publish from there](https://www.magicpages.co/help/staging/publishing-your-staging-changes-to-your-live-site/) too.
One thing to expect when you do: posts you wrote on staging arrive on your live site as drafts. You open each one and publish it yourself, which is what sends the newsletter.
### Updated Customer Websites to Ghost v6.55.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-55-0/
Last updated: 2026-07-31T20:59:33.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.55.0 today. You can read about changes included in Ghost's official release.
[Release 6.55.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.55.0?ref=magicpages.co)
### Refreshing staging from your live site
URL: https://www.magicpages.co/help/staging/refreshing-staging-from-your-live-site/
Last updated: 2026-07-29T11:11:09.000Z
Staging is in beta. If you want to try it on your site, email help@magicpages.co and we'll switch it on for you.
Refreshing replaces everything on staging with a fresh copy of your live site. Anything you changed on staging is discarded, and your live site isn't touched.
It's the button to reach for whenever staging has drifted away from your live site: after you've [published your work](https://www.magicpages.co/help/staging/publishing-your-staging-changes-to-your-live-site/), after you've abandoned an experiment, or when a publish tells you the two sites are on different versions of Ghost.
## How to do it
1. Open the **Staging** tab in your customer portal.
2. Click **Refresh from production**.
3. Confirm.
It takes a few minutes and staging is unavailable while it restarts. You'll see the steps as they run: copying production data, removing members and private data, copying your theme, restarting staging, clearing caches.
## What you get
Your posts, pages, tags, snippets, settings and theme, as they are on your live site at that moment. Your staff accounts come across too, so you sign in to staging with the same email and password as always.
## What's left out
- **Members, subscriptions and comments.** Staging never holds your subscribers' details.
- **Email history.** Which newsletters went out, who opened what, and any suppressions stay on your live site.
- **Your Stripe connection.** Payment keys are cleared, so nothing on staging can charge anyone.
- **Custom integrations.** They're removed, and staging's API keys are regenerated, so a key from your live site won't work on staging and vice versa.
- **Your analytics identity.** Staging counts as a separate site, so test traffic never lands in your live site's stats.
Your media library is the exception: staging and your live site share one, so images aren't copied because they're already there.
## If the refresh won't start
A refresh can't run at the same time as a backup or a restore of your site. If you get that message, wait a few minutes and try again.
### Publishing your staging changes to your live site
URL: https://www.magicpages.co/help/staging/publishing-your-staging-changes-to-your-live-site/
Last updated: 2026-07-29T11:10:58.000Z
Staging is in beta. If you want to try it on your site, email help@magicpages.co and we'll switch it on for you.
When staging looks the way you want it, click **Publish to production** on the **Staging** tab. Your posts, pages, design and settings move onto your live site, and the whole thing takes a minute or two.
Nothing reaches your subscribers in the process. Newsletters aren't sent, and no post you publish on staging goes out as an email on your live site without you pressing publish there.
## What moves
- Posts and pages, with their tags, authors, tier access and metadata – as drafts only
- Tags and snippets
- Your newsletters, with their names, descriptions and design
- Your active theme, its files and its settings
- Routes and redirects
- Site settings: title, description, colours, navigation, the announcement bar, comments, analytics, and the wording on your sign-up form
## What never moves
- Members and their subscriptions
- Tiers, offers and your Stripe connection
- Staff accounts
- Email sending settings: your sending domain, open and click tracking, and the addresses replies and support mail go to
- Donation settings, your privacy setting and any integration keys
Anything to do with money or your subscriber list stays exactly as it is on your live site.
## New posts arrive as drafts
A post you wrote and published on staging lands on your live site as a **draft**. You open it in your editor and publish it from there. That's what sends the newsletter and triggers anything else you've connected, in the normal way.
Posts that already exist on your live site keep the state they're in. Editing one on staging updates its content, not whether it's published.
One case to watch: a new post you *scheduled* on staging arrives scheduled, so your live site will publish it, and email it, at that time.
## Deleting on staging doesn't delete on your live site
A post that only exists on your live site is left alone. The confirmation dialog lists those under "Only on production – kept", so you can see what's staying. To remove something from your live site, delete it there.
## Choosing which posts to publish
Click **Show details** in the dialog and you'll see every post that's new or changed, with a checkbox each. Clear the ones you're not ready for and only the rest are published.
## Before you confirm
The dialog counts what's about to change: posts and pages updated, new ones added, posts kept, whether your active theme is changing, and whether routes and redirects differ. Type your site's domain to confirm, then click the publish button.
## What happens while it runs
Six steps, in this order:
1. Checking readiness
2. Backing up production
3. Publishing content and settings
4. Updating theme, routes and redirects
5. Restarting your site
6. Verifying it's live
Your live site shows a maintenance page for the minute or two around the restart. If it doesn't come back healthy afterwards, we restore the backup from step 2 automatically and your site ends up exactly as it was. That backup is separate from your [daily backups](https://www.magicpages.co/help/features/daily-backups-of-your-ghost-cms-website/), which keep running as usual. If you use search, the index is rebuilt after a successful publish.
## Push history
Every publish is logged at the bottom of the **Staging** tab with its outcome:
- **Published** worked.
- **Reverted** failed partway and your live site was restored to the backup.
- **Failed** stopped before anything changed on your live site.
- **Needs attention** means the restore didn't finish either. Message us with the date and we'll put your site right.
## If the publish won't start
The most common reason is that staging and your live site are on different versions of Ghost, which happens when one of them has picked up an update the other hasn't. [Refresh staging from your live site](https://www.magicpages.co/help/staging/refreshing-staging-from-your-live-site/) first, then publish.
### Adding a staging site to your plan
URL: https://www.magicpages.co/help/staging/adding-a-staging-site-to-your-plan/
Last updated: 2026-07-29T11:10:47.000Z
Staging is in beta. If you want to try it on your site, email help@magicpages.co and we'll switch it on for you.
Staging costs €3 a month, or €30 a year, and you add it from the **Billing** tab of your customer portal. Where we can show the price in your own currency we do, so the amount on your invoice may read differently.
The add-on follows your plan's billing cycle. On a monthly plan it's billed monthly, on a yearly plan it's billed yearly.
## Adding it
1. Log in to your Ghost admin at `yourdomain.com/ghost` and open the **Customer portal** link in the left sidebar.
2. Go to **Billing**, scroll to **Available Add-ons** and find **Staging Environment**.
3. Click **Continue**. The next screen shows what you pay now, prorated for the rest of your billing period, and what your next invoice will be.
4. Pay, and that's it.
We then build your staging site for you. It takes a few minutes, and the **Staging** tab reads *Provisioning* while that happens and *Private* once it's ready. Your live site keeps serving readers throughout.
Staging starts as a copy of your live site, so it opens with your real posts, pages and theme rather than an empty Ghost install. [What a staging site is and what you can do on it](https://www.magicpages.co/help/staging/what-is-a-staging-site/) covers the rest.
## If the add-on isn't there
Two reasons it wouldn't show up:
- **Staging is still in beta**, so we switch it on site by site. That's the usual reason.
- **You're on a lifetime plan.** Staging is a recurring add-on and a lifetime plan has no recurring subscription for it to sit on, so it can't be added to one. We are working on that as well, but it will only be available after beta testing.
## Removing it
Go to **Billing**, find **Staging Environment** under **Active Add-ons** and click **Remove**.
That deletes your staging site and everything on it straight away, not at the end of your billing period, so [publish anything you want to keep](https://www.magicpages.co/help/staging/publishing-your-staging-changes-to-your-live-site/) first. Your live site, your members and your subscriptions aren't touched.
Add it again later and you'll get a fresh copy of your live site as it is then.
### What is a staging site?
URL: https://www.magicpages.co/help/staging/what-is-a-staging-site/
Last updated: 2026-07-29T11:10:10.000Z
Staging is in beta. If you want to try it on your site, email help@magicpages.co and we'll switch it on for you.
A staging site is a private copy of your site where you can write posts, try a different theme and change settings without any of it reaching your readers. When you're happy with it, you publish everything to your live site in one step.
It's an add-on on top of any monthly or yearly plan. [Here's what it costs and how to turn it on](https://www.magicpages.co/help/staging/adding-a-staging-site-to-your-plan/).
## Where to find it
Log in to your Ghost admin at `yourdomain.com/ghost` and open the [Customer portal](https://www.magicpages.co/help/trial/where-can-i-find-the-magic-pages-customer-portal/) link in the left sidebar. **Staging** sits in the top menu, next to Configuration.
That page shows both sites side by side: your live site, and your staging site with its own address. The address is your [.mymagic.page subdomain](https://www.magicpages.co/help/domains/the-mymagic-page-subdomain/) with `staging` in front of the rest. A site on `example.mymagic.page` gets `example.staging.mymagic.page`, and that stays the same even if your live site runs on a custom domain.
## It's always private
Anyone opening your staging site gets asked for an access code first, so nothing you're working on is public and search engines can't index it.
To find the code, sign in to your staging site's Ghost admin and go to **Settings → Access**. It's under "What access code should visitors use?" and looks something like `harbor427`. You can't type your own code on staging, but the refresh icon beside the field generates a new one.
Share the address and the code with anyone whose opinion you want before you publish.
## Signing in
Your staff accounts come across from your live site, so sign in at your staging address followed by `/ghost` with the same email and password you already use. Password resets and login codes work as normal.
## What you can do there
- Write and edit posts and pages
- Install a theme, preview it on your real content and change its settings
- Edit site settings: title, description, colours, navigation, the announcement bar, comments
- Change your routes and redirects
Staging and your live site share one media library. An image you upload on staging is already in your live site's library, so nothing needs uploading twice.
## What you can't do there
- **Send newsletters.** Our staging sites block every newsletter sending, so there's no way to email your subscribers by accident.
- **Take payments.** Your Stripe connection isn't copied.
- **Collect members or comments.** Staging starts with no members and signups are switched off.
- **Use your integrations.** Custom integrations are removed and staging's API keys are new ones, so webhooks and anything talking to the Ghost API won't reach it.
Staging also stays out of the fediverse, and it gets its own analytics identity, so test traffic never lands in your live site's stats.
## The two things you'll do most
[**Refresh from production**](https://www.magicpages.co/help/staging/refreshing-staging-from-your-live-site/) replaces staging with a fresh copy of your live site. [**Publish to production**](https://www.magicpages.co/help/staging/publishing-your-staging-changes-to-your-live-site/) sends your staging work the other way.
### Updated Customer Websites to Ghost v6.54.1
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-54-1/
Last updated: 2026-07-28T17:30:19.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.54.1 today. You can read about changes included in Ghost's official release.
[Release 6.54.1 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.54.1?ref=magicpages.co)
### Does Magic Pages have an uptime SLA?
URL: https://www.magicpages.co/help/plans/does-magic-pages-have-an-uptime-sla/
Last updated: 2026-07-25T18:25:11.000Z
Yes, on Pro plans billed monthly or yearly. The full terms are in the [Service Level Agreement](https://www.magicpages.co/legal/sla/).
Two things worth being clear about, because they catch people out.
## Lifetime plans don't include the SLA
Everything else about Pro is the same on a lifetime plan. The uptime SLA is the one exception, and it applies to monthly and yearly billing only.
If a contractual uptime commitment matters for your project — a client site, or something with an agreement behind it — you want Pro on monthly or yearly billing.
## Starter doesn't include it either
The SLA is a commitment attached to the Pro plan, not a description of how hard we try. Every site gets monitored, and when something breaks I want to know about it regardless of what you pay.
## What to do if your site goes down
Don't wait for a report to tell you. Email me or use the live chat — I'd rather hear about it from you immediately than find out later.
### Can I use a custom theme on the Starter plan?
URL: https://www.magicpages.co/help/plans/can-i-use-a-custom-theme-on-the-starter-plan/
Last updated: 2026-07-25T18:25:10.000Z
Short answer: yes, with an add-on.
Custom themes — anything you bought, downloaded, or wrote yourself — are included on the Pro plan. The Starter plan runs the Magic Pages exclusive themes and Ghost's official ones.
## Adding custom themes to Starter
If you're on Starter and want to upload your own theme, you can add custom themes to your plan without moving to Pro. It's a separate add-on that follows your billing cycle: monthly, yearly, or a one-off payment on lifetime plans. You'll see the current price in the customer portal when you add it.
## Or just move to Pro
Worth comparing before you decide. Alongside custom themes, Pro gives you:
- 10,000 emails a month instead of 2,000
- 200 MB file uploads instead of 128 MB
- The worldwide CDN
Depending on how close you are to your email limit, upgrading can work out better than the add-on.
## Not sure if your theme counts as custom?
Send it over and I'll tell you. If it's one of ours, or one of Ghost's, you don't need anything extra.
### Off-site backups to your own storage
URL: https://www.magicpages.co/help/features/off-site-backups-to-your-own-storage/
Last updated: 2026-07-25T18:25:09.000Z
Every Magic Pages site is backed up daily, and those backups are kept away from the server running your site. That happens whether you do anything or not.
Some people want a copy somewhere they control as well — their own storage, their own retention rules. That's what off-site backups are for.
## Where you can send them
You can point off-site backups at:
- **S3-compatible storage** — Backblaze B2, Cloudflare R2, or anything else that speaks the S3 API
- **SFTP** — any server you can log into
- **A cloud drive** — Google Drive, OneDrive or Dropbox
## Setting it up
In the customer portal, open your site's settings and find the off-site backup section. Pick a destination type, add your credentials, and save. From then on, your backups get copied there automatically.
You also choose how long to keep them. The default keeps the last seven days, which is enough to catch a problem you noticed a few days late.
## When something breaks
Credentials expire. Buckets get renamed. Storage fills up. If the copy fails three times in a row, we pause it and tell you, rather than retrying forever and burying you in alerts.
Your normal backups keep running the whole time. Pausing the off-site copy never touches the backups we hold for you.
## Do you need this?
No. The backups included with your plan already cover you, and most sites never turn this on. It's here for the cases where you want a copy under your own control — a client site, an archive somewhere specific, or your own compliance rules.
If you're not sure whether it's worth setting up for your site, ask me and I'll tell you honestly.
### Updated Customer Websites to Ghost v6.54.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-54-0/
Last updated: 2026-07-24T20:01:30.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.54.0 today. You can read about changes included in Ghost's official release.
[Release 6.54.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.54.0?ref=magicpages.co)
### Creating a custom 404 page for your Ghost site
URL: https://www.magicpages.co/blog/creating-a-custom-404-page-for-your-ghost-site/
Last updated: 2026-07-24T09:07:39.000Z
When someone lands on a page that doesn't exist on your site, whether from a deleted post, a mistyped URL, or an old link that no longer works, Ghost shows a default "Page not found". That's a 404 error, and it's a normal part of running any site on the web. What matters is how that page looks when a visitor lands on it. Ghost's default page works, but it's disconnected from everything else on your site: no branding, no navigation, nothing that says "you're still here".

The solution for this is a single file inside your theme: `error-404.hbs`. And since recently, you can create it straight from the browser in Ghost admin, without re-uploading your theme. The examples below show what's possible with custom illustrations and simple layouts, small changes that make your 404 feel alive and give visitors a clear next step. These are five templates you can grab from the GitHub repository linked at the end of this article, so feel free to download them all and experiment.





Note that some of Ghost's default themes already include an `error-404.hbs`. If yours does, you don't need to create a new one – just edit it directly. To see how your 404 page looks at any point, visit a URL on your site that doesn't exist, like `yoursite.com/this-page-is-not-real`.
## How Ghost handles 404
Whenever someone visits a URL that doesn't exist, Ghost looks in your theme's root folder for a file called `error-404.hbs`. If it doesn't find one, Ghost falls back to its own built-in default. The `.hbs` template format is generally used to build every page on your Ghost site. This way, all we need to do is create one and put our content in it.
Open your Ghost admin settings and navigate to Theme, then click the three dots next to your active theme and choose **Edit code**. Once you're in the theme editor, hit **+** to create a new file and type `error-404.hbs` exactly – nothing in front of it, so it sits in the theme root.

If you'd rather work locally, you can add the ready to use file to your theme folder, zip it, and re-upload it by clicking on **Change theme -> Upload theme** in Ghost admin settings.
## How to give it a personal touch
When experimenting with these templates, everything is easy to tweak. The accent color updates automatically based on your site's design settings. All the headings and body text are plain HTML, so you can edit them directly in the`.hbs `file.
An illustration or image is also a nice way to keep your template from feeling like a generic error screen. If you don't have one, sites like [unDraw](https://undraw.co/?ref=magicpages.co), [Open Doodles](https://opendoodles.com/?ref=magicpages.co) or similar offer free 404 illustrations you can use and tweak. And if you're up for drawing your own, tools like Inkscape or Krita work well – both are free and open source.
And the easiest way to host your image is through Ghost itself. Drop it into any draft post using the image card, then copy the URL Ghost gives back – it'll look like `.../content/images/your-file.png`. Use that in the `src` attribute.
Or, if you'd rather bundle the image with your theme, add it to the theme's `assets/images/` folder and reference it with the `{{asset}}` helper instead. That said, skipping the image is fine too. Plenty of good 404 pages skip it entirely and lean on typography, colour, or content instead.
## Breaking down the code
Even though the five templates look and behave differently, they all lean on a small set of Ghost building blocks. Understanding these means you can mix, remix, and build your own templates from scratch too.
**`{{!< default}}` — the one line that keeps you on-brand**
Every template starts with this. It tells Ghost to render the 404 inside `default.hbs`, your theme's main layout, so your header, navigation, and footer come along automatically. Without it, the page renders naked, no navigation, no way back to the rest of your site. It's the single most important line in the file.
**`var(--ghost-accent-color)` — your theme's accent color**
Every template pulls its accent color from this variable. It's tied to the color you set under Settings → Design & Branding, so changing your brand color updates every button, badge, and highlight across all five templates without touching a line of CSS.
**`{{@site.url}}`, `{{@site.title}}`, `{{@site.description}}` — dynamic site data**
Instead of hard-coding your homepage link or blog title, these Handlebars helpers pull the values from your Ghost settings. Use these to turn the 404 into a mini site intro, showing your publication's title and tagline right on the error page.
**`{{#get}}` — the underused helper for 404 templates**
This is the one that makes a 404 more than just an error screen. `{{#get "posts"}}` pulls in your latest articles as post cards. `{{#get "tags"}}` pulls your most popular tags. You can adjust the limit, change the order, or filter by tag. It's the same helper that powers homepages and archive pages in most Ghost themes.
All five templates are in the GitHub repository linked below, ready to drop into your theme. Two of them are tuned for Casper-based themes, since they rely on the built-in `post-card` partial to render the recent posts block. The other three work with any Ghost theme out of the box. And if you want to go deeper, Ghost's [theme documentation](https://ghost.org/docs/themes/?ref=magicpages.co) is a good place to start.
[GitHub - magicpages/ghost-404-templatesContribute to magicpages/ghost-404-templates development by creating an account on GitHub.GitHubmagicpages](https://github.com/magicpages/ghost-404-templates?ref=magicpages.co)
### A Web Hosting Company at a Print Festival
URL: https://www.magicpages.co/podcast/episodes/episode-4-indiecon/
Last updated: 2026-07-23T08:26:18.000Z
## About this episode
A different kind of episode — no guest this time, just Jannis. In about six weeks, Magic Pages is heading to [IndieCon](https://www.indiecon-festival.com/?ref=magicpages.co), an independent publishing festival in Hamburg that's almost entirely about print: magazines, zines, small books, art prints — things printed with ink on paper. Magic Pages is a Ghost hosting company, so the obvious question is what a web hosting company is doing at a print festival. That's what this episode is about.
The short answer: print publishers and online publishers are fighting the same fight — for ownership of their work and a direct relationship with their readers, with no big platform in the middle. Jannis walks through what Magic Pages is bringing to IndieCon — a hands-on Ghost workshop, a small magazine called *A Press of Your Own*, and a community dinner — and the two things he most wants to learn back from the print world: how to talk honestly about fair pricing, and how a scene built on trust actually forms. Plus how you can win a ticket, and a seat at the dinner.
## Chapters
- **0:00** — Welcome — why this one's just me
- **0:59** — Why is a web hosting company sponsoring a print festival?
- **1:24** — What IndieCon actually is
- **4:04** — The same fight: print and online publishers
- **6:35** — It comes down to ownership
- **7:14** — Valuing the work over the scale of the work
- **8:19** — How we want to show up — not there to sell
- **8:52** — The workshop: from first post to paid members
- **9:21** — Why a workshop and not a talk
- **11:36** — The magazine — A Press of Your Own
- **14:13** — Who's coming, and a dinner in Hamburg
- **15:07** — Learning from print: fair pricing
- **17:03** — Learning from print: a scene built on trust
- **19:08** — Win a ticket (and a seat at dinner)
- **20:29** — Closing
## Links & mentions
- [IndieCon](https://www.indiecon-festival.com/?ref=magicpages.co) — the independent publishing festival in Hamburg, 4–6 September 2026
- [Ghost](https://ghost.org/?ref=magicpages.co) — the open-source publishing platform everything at Magic Pages runs on
- [help@magicpages.co](mailto:help@magicpages.co) — email us to enter the ticket giveaway (by 26 July 2026) or just to say hi
- [Oberhafen-Kantine](https://oberhafenkantine-hamburg.de/?ref=magicpages.co) — the \~100-year-old harbour canteen where we're hosting the Saturday dinner
## Transcript
**Jannis:** Hi, and welcome to the Magic Pages podcast, the podcast where we sit down with the people building, hosting and publishing on Ghost. Today is going to be a slightly different episode because it will just be me. I want to talk to you about something I've been thinking about for a while. In about six weeks, Mariia, our first customer and friend, Christine, and myself will take a train to Hamburg. Why? Well, because Magic Pages is sponsoring a festival called IndieCon. IndieCon is a festival for independent publishers. It's happening every year in Hamburg, and what might surprise you? It's mostly focused on print, magazines, zines, small books, art prints, things you can hold, things printed with ink on paper usually.
And Magic Pages, well, if you're new here, is a web hosting company. We host ghost sites, online publications, newsletters, blog, that kind of thing. So the question. I want to discuss with you today is essentially why a web hosting company is sponsoring a print festival. What are we doing there? And more importantly, what am I hoping the people that visit us there will get from it? And a small teaser? We have a couple of tickets for the conference left, so stay until the end to find out how you can get one of these and also have Magic Pages pay for your dinner. Let me start with a bit of a deeper dive into what IndieCon actually is, because most people listening to this probably haven't heard of it.
IndieCon runs from September 4th to 6th in Hamburg at a venue called Gleishalle. That's essentially an old freight hall by the harbor, so very industrial, very urban. It's been running for over a decade at this point, and unlike most bigger conferences, it doesn't have a big company behind it. It's run and organized by a small team who wanted a space where the independent publishing world could come together internationally, not just German speaking. And how it was described to me is basically that if you walk into IndieCon you'll see tables, lots of them, rows of them, and behind each of these tables there's a publisher.
So someone who makes a magazine, a zine, a book, some of them are very small, some of them are one-person operations, some of them are a little bit bigger. Some print 200 copies of an issue, some print 2000, and there's a Portuguese photography magazine next to a German literary journal, next to a Ukrainian art publication, next to a food zine from Copenhagen. And what unites all of these people is that they made the thing. They decided what goes in it, they chose the paper, they chose the printer, they took the risk to print something that they believed in, and nobody at Meta or Google decided what would perform well or adjusted the design. Nobody quietly shifted the algorithm, they just made a magazine, wrote content for it, printed it, and brought it to this venue in Hamburg to sell it and talk to people about it.
That's the atmosphere that sold me when I first heard about it. And. I am by far the least analog person you can imagine. Literally everything in my life is digital. It's not a trade show, there's also not a keynote speaker that used to, you know, work at Google or Apple or whatever that will tell you about the future of media. There's no exhibitors selling you ads or analytic tools or CRMs or anything like that. It's the kind of event where people talk about actually making things instead of growth hacks and funnels. And it's kind of scary thinking about walking into that as a web hosting company.
So the real question is, what are we doing there? I've thought about this a lot, honestly, when the organizers approach the ghost community and they essentially just post it in the ghost forum, they also mentioned that there will be podcast hosts and newsletter creators, kind of the people we talk to every day at Magic Pages anyway. And that made me realize that the print world and the online publishing world are actually not that different. We essentially fight the same fight. We want to produce something that we have control over. We want to share something we're passionate about. And most importantly, neither side wants a big company in the middle of that relationship with our readers, not a print distributor deciding which magazines go out to which stores.
No social media platform deciding which posts get shown to which readers. Zine maker and the newsletter writer are, in my eyes, two versions of the same person. They're just working with different materials. And that's where we're going. Not because we've suddenly decided, or because we think IndieCon goers are potential Magic Pages customers, we're going because the people at IndieCon are very similar to the people we talk to every day. They're just doing it, as I said, on another material. See, the thing is, when you sit with this for a while, you realize that the tools and the medium are just two sides of the same metal.
When I wrote the script of this episode, I started with a very vague idea, and the more. I wrote and wrote about it, the clearer it became. Zine maker prints 300 copies of something. They sell them by hand at festivals like IndieCon, or they mail them to subscribers, or maybe they leave a stack at their favorite independent bookshop. They know their readers not as a number in an analytical dashboard, but as people. They probably recognize faces that keep buying their magazines in person, and they know which magazine goes to which shop. A ghost publisher, a newsletter writer, maybe an independent journalist, or a small magazine that publishes on their own domain already does the exact same thing digitally.
Most of our customers have a couple of hundred subscribers for the newsletters. They know a lot of their readers by name, because those readers reply to the newsletters. Same thing happening on Magic Pages. When I send out a newsletter, I get replies from actual people, and I know those people by name. When you send a message to our customer support chat, we usually know you by name, because maybe we've been in touch before. Those ghost publishers, they pay attention to, cancels their newsletters and subscriptions and why. They know their community as people, and not as monthly active user numbers. Both of those publishers, the zine maker or the newsletter creator, they made an active choice at some point.
They chose not to publish on Medium or Substack, or on some big platform that would give them a bigger audience, but take a cut. Instead, they chose a smaller, more direct route. They chose ownership, essentially. Because that's really what it comes down to, ownership. Owning your publication, owning the relationship with your readers, owning the ability to move if you need to move, and not being at the mercy of a platform that could decide tomorrow that your kind of content is no longer welcome. And that's what.
I mean by the same fight. It doesn't matter if you're printing with ink or publishing to your own domain. The impulse is the same. I want to make this thing, I want to get it to the people who want it, and I don't want anybody in the middle who can take that away from me. And there's a second thing that connects those two worlds, which might be even more important. Both of them value the work itself more than the scale of the work. You don't start printing a small, independent magazine because you want to build a media empire. You do it because you love the thing you're making. You want to spread the message you're printing. And the same thing goes for a ghost publisher.
The people I talk to who run small newsletters, they're not trying to reach millions of people. They just want to make something good and share it with the people who care and be able to keep doing it. And that's a completely different angle from the one that dominates most conversations about publishing right now. Most of it is about growth. How do you grow your list? How do you scale your operation? How do you optimize your funnel?
But in my eyes, the independent publishing world, whether it's print or online, is often actively suspicious of that framing because growth isn't the point. The work is the point. And that's the kind of person. I want Magic Pages to serve. That's who Sviatoslav, Mariia, and myself are actively building this for. All right. So if that's the reason we're going, then how we show up matters in my eyes. I don't want to be that tech company that just shows up trying to make sales. Now, to be fully honest with you, we are bringing discount codes. Two months for free if you decide to try Magic Pages.
But we're not going to push them. Nobody in our booth is going to try to close you on signing up for a hosting deal. The codes are there if you already know you want to try ghosting. Magic Pages happens to be the option that makes sense for you. If you leave the booth without one, that's completely fine because selling hosting was never the point of this. What we're actually spending most of our energy on is a workshop. It's called publishing online with Ghost from first post to paid members. It's going to be 90 minutes. It will be about 10 to 15 people. Everybody brings a laptop and by the end of the workshop, every single participant will have a real live Ghost site.
Not a demo, not a mock-up, but an actual working ghost site with their own writing on it, their own newsletter set up and the basics of paid memberships in place if they want to go that direction. I want to say why we picked this format because it took us a while to figure out the right shape. We could have done a talk, stand at the front, you know, at a stage, explain what ghost is, answer questions at the end. But I don't think that talks land the way I'd like because people forget them. They nod along all the time and then usually, you know, when you leave a talk like this, you never actually try what you've heard. A workshop in my eyes is different because when you leave a workshop, you either have the thing you came to make or you don't.
There's no middle ground, really. So by structuring it as this 90 minute workshop and hands-on building session, we are forcing accountability on basically ourselves, but also the participants. If you're in the room, you're building. And when you leave, you have a website. From what we've heard from the organizers, lots of publishers that come to the IndieCon Festival every year want to actually branch out into the digital world. And most of them, unfortunately, end up on Substack. And that's a pity in my eyes because the platform stands against the very thing independent publishers are trying to do, own what they create. And that's why the most important part of the workshop will be that the participants leave with a site that's theirs.
It will be technically hosted on Magic Pages for the workshop just to fit everything into those 90 minutes. But Ghost is open source and a Ghost site is portable. So any participant can pack up their content at any point. They can take the subscribers, the settings, the content, all of it, and take it somewhere else at any time. They can host it themselves. They can host it with us. They can host it at one of our competitors. If somebody walks out of that workshop and never talks to Magic Pages again, but a year from now, they're running a small independent newsletter on their own domain, that's a win for me. That's the whole reason we're doing this.
If we've helped one more person get to a place where they can publish independently, then it's all made sense for us. And that's what. I mean when I say we're not there to sell. I want to be there to give something, to show a skill, a little bit of the knowledge we've built running Magic Pages for the last three years, because. I want to be there to share that knowledge and enable people to not only be independent offline, but also online.
But that's not all because apart from the workshop itself, we're also making a small magazine. It's called a press of your own, and it's essentially a collection of four short essays about what it means to have your own place on the internet in 2026\. And crucially, it is platform independent. It's not about Magic Pages. It's also not really about ghost either. It's about the deeper question of what publishers should be thinking about when they set up their own web presence. There are four essays, as I said, and I'm just going to read you the titles of them, because I think that really does a better job of describing what the magazine is than what I could do now.
The first one is called a press of your own, what the platforms keep when you write on them. And it's essentially about what sub-stack and medium keep from you, what you own, what you don't own, and what you're missing out compared to hosting your publication on an independent platform, whether that's ghost, WordPress, or anything else. The second one is called a short history of the homepage where writers used to live and where they live now. That one takes a step a little bit back, and it talks about this full circle moment where, you know, in the 90s and early 2000s, there were a lot of those personal homepages websites where people wrote about their day-to-day, and then we kind of took this side quest towards social media that we've been on for the last 10, 15 years.
And now I think we're coming back to this full circle moment where people start realizing that maybe publishing on their own website, their own homepage might actually be worth it. The third one is called Five Places Worth Visiting, a short tour of publications on their own addresses, and that one introduces five publishers who already do what we talk about at IndieCon. It will also feature a couple of Magic Pages customers, also a couple of other ones that might not be publishing on Ghost at all.
So it's really just like a little place to start where you can dig in and just see what cool things people are doing already. And the last one is called Writing That Lasts 10 Years, on longevity, archives, and what survives. Again, a counterpoint to the social media stream that just, you know, scrolls by, that just flashes by, where everything is this so-called short form content. And it talks a little bit more about longevity and making sure that your writing survives the next decade and even more than that. The magazine itself will be a small print run, so we only print as many copies as we think we can give to people at the conference. And it will also be available online on our website once the conference starts.
So it's not there yet, but once the conference starts in the beginning of September, it will also be on our website. And last but not least, we are also bringing ourselves. So Mariia and I are coming. Christine, who you've met in the second episode of this podcast, is also coming. And a couple of Magic Pages publishers might show up there as well. I'm already talking to a couple of them. So let's see how that goes. And we're also hosting a small dinner on Saturday evening, September the 5th, in a small restaurant right next to the venue. It's called the Oberhafen-Kantine, and it's a 100-year-old institution, Hamburg. The dinner itself is, I think, where a lot of the real conversation will happen.
And as I mentioned in the beginning, there is a chance to win not only tickets to the IndieCon, but also an invitation to this very dinner. So, yeah, that's our presence at IndieCon, a workshop, a magazine, a booth to talk to us, and a dinner on Saturday. But let's be honest, we're not just going to IndieCon to give something. I also want us to learn something, specifically, how can Magic Pages get better at what we do by spending three days with the people who've been doing the same adjacent thing for decades in the print world.
Because that's really the frame. I want to hold on to. We host online publishers, the people at IndieCon are print publishers, and the overlap between what those two groups need is bigger than most people would assume. And there are things the print world has figured out that would make Magic Pages a better product, a better service, and a better company if we paid attention. Let me give you two specific things that. I have in mind. The first one is around pricing, but not the pricing of our own service of Magic Pages, but the pricing our customers charge their readers. Independent magazines cost quite a lot of money sometimes, 15, 20, sometimes 30 euros for a single issue, and the readers happily pay it, because it is usually worth it.
Because a small audience can sustain something they love if you charge them what it actually costs to make. Most ghost publishers I know on the other hand are under price, they're afraid to charge 10 euros a month because they don't want to lose subscribers, so instead they charge smaller numbers and struggle to sustain the work, which then becomes our problem too as a hosting company, because a publisher who can't sustain their work is a publisher who eventually stops publishing, and a publisher who eventually leaves us.
So what. I want to learn from the print world is how do they help each other to get comfortable with fair pricing? Is there a language they use, a framing that works, a set of examples they point to? Because if we can bring that to our customers, that's a real service to them, to help show them that charging what the work is worth isn't greedy. But actually what makes independence sustainable. It won't be a course, it won't be a marketing gimmick. I just want to be able to have better conversations with our own community about what it takes to keep going. And the second thing, and this one is maybe the one I'm most curious about, is how the print world actually builds these relationships in their world.
Not just with readers, but with each other. The independent print scene is usually built on an infrastructure of trust that the indie web is still figuring out. Publishers know other publishers and distributors know other distributors, and that means that festivals like IndieCon exist because the community itself organizes them. Nobody made this happen top down. There was no big international publisher that said, well, let's get all the indie zine makers together. When a print publisher launches something new, they don't have to buy meta ads to find the first readers. They have a network of people who will vouch for them, distribute them and feature them, put their magazine on a shelf essentially.
The online equivalent of that is still much thinner. Most ghost publishers I know operate in relative isolation. They might follow a few other newsletters, they might occasionally do a cross promotion, but there isn't really a scene, the way there's a scene in the indie print. And that's something. I want to think about for Magic Pages as well. What could we do to help our customers get to know each other better? Not as a marketing feature and not as a community in the empty tech industry sense, but actually in a way that Indiecon manages to do it, to have this real thing that brings real publishers into the same room, whether it's virtual or physical.
So. I want to figure out whether there is a version of that for the people that we host, maybe an event, a directory, maybe it's also this podcast to a certain extent, maybe something entirely different. And we have talked about this within the Magic Pages team already, but quite honestly, we don't have the answer yet. So maybe the print world can help us figure that out to a certain extent. So yeah, those are the two things I'm carrying with me, not as rigid interview questions, just as things. I want to sit with and listen and see what shape to take when I get back home. Maybe I'll find the answers I'm looking for, maybe I don't, so who knows?
But hey, let's get to the fun part. As I mentioned at the beginning of this episode, we do have a small number of IndieCon tickets to give away. I'd love it if some of you can come with us. And here's how it works. Just send a quick email to help at magicpages.co. Just tell us you'd like to come. You don't need to write anything elaborate, but it's obviously nicer for us to also get to know you a little bit. Entries close by July 26.
So this is this Sunday, right after the episode airs end of day in Central European time. So technically 11, 59 PM Central European time. We will then draw the numbers at random from everyone who put their hand up. And since it's just a few weeks before the conference, we do trust that if you put your hand up, you'll also show up there. We'll have to do a dinner reservation and it would be pity if the restaurant prepares food that nobody will eat in the end.
So if you win, we cover your IndieCon ticket. It also includes what's called the breakfast club. So you will certainly not start the day hungry and you'll also have a seat at our community dinner on Saturday. We cannot cover your travel expenses or accommodations. So have a look at that beforehand, please. And if you don't win, come anyway if you can, buy a ticket, come to the workshop, come find us at our booth, come pick up one of the magazines that we'll bring, because the whole reason we're going is to meet more of the people who care about independent publishing. And that includes everybody listening to this.
So yeah, that's it for today. If you're publishing independently, whether that's on paper, online or both, you're doing something that matters. Not because it's going to make you a lot of money or reach millions of people, but because the alternative is that publishing keeps getting more concentrated and the people making decisions about what gets read have less and less to do with the actual work. Independent publishing, print and web is the counterweight to that.
So thank you also for publishing your newsletter, your publication on Ghost or anywhere else. And if you've liked this, subscribe, wherever you get your podcasts. The next episode, we will be back with the regular format. I've got a couple of guests lined up already. And if you're coming to IndieCon or thinking about it, just send us a quick email and let us know. So see you in Hamburg and bye-bye.
### WordPress to Ghost: is it worth it?
URL: https://www.magicpages.co/blog/wordpress-to-ghost-is-it-worth-it/
Last updated: 2026-07-21T17:50:36.000Z
If you're reading this, you probably already have a WordPress site that works. So the real question isn't "which platform is best" in the abstract – it's whether moving is worth the hassle of moving.
Here's the honest answer, from someone who moves WordPress sites to Ghost for a living.
**Short version, if you're deciding right now:** WordPress can do almost anything, because you assemble it from plugins and themes, and maintaining that assembly is the job. Ghost does far less on purpose: the things you'd add to WordPress with five or six plugins (a newsletter, paid memberships, SEO, speed, a clean editor) are built in, and on a managed host they're maintained for you.
If you're a writer, publisher, or newsletter/membership business tired of plugin upkeep, Ghost is lighter and usually cheaper to keep running. If you run a store, depend on specific plugins, or need a page builder's design freedom, it might be smarter to stay on WordPress.
## What WordPress actually gives you
WordPress powers a huge share of the web, and it earned that. There are tens of thousands of plugins, so for almost any feature you can imagine, someone has already built it. Page builders like Elementor give you pixel-level design control. WooCommerce runs real online stores handling real money. And behind all of it is an enormous ecosystem of themes, developers, agencies, and tutorials for every problem you'll ever hit.
If your site is more than a blog – a shop, a directory, a booking system, a marketing site – that flexibility is genuinely hard to beat. And quite honestly, that's the reason a lot of people should not switch.
## Flexibility is a tax, and you pay it in maintenance
However, every plugin you add is code you now depend on and have to keep patched. That isn't abstract. [Security researchers at Patchstack logged 11,334 new WordPress vulnerabilities in 2025](https://patchstack.com/whitepaper/state-of-wordpress-security-in-2026/?ref=magicpages.co) – up 42% year over year. 91% were in plugins and 9% in themes. The WordPress core itself accounted for just 6, all low risk. Attackers scan the web for vulnerable versions within hours of a disclosure, and unmaintained sites get compromised before their owner even sees the update notice.
So, a WordPress site is never really "done." There are updates, compatibility checks, backups, performance tuning, and the occasional plugin update that quietly breaks another. And the plugins doing the real work usually aren't free: a typical business site running 10–15 premium plugins can easily add up to four figures a year in licenses, before hosting.
None of this makes WordPress bad software. It's the built-in cost of a platform that does everything by being assembled from parts. You're not just running a website; you're maintaining a small stack.
## Feature by feature
Here's how Ghost and WordPress compare on the things that shape day-to-day publishing:
| | WordPress | Ghost |
| ---------------------------- | ---------------------------------------------------------------- | ------------------------------------------------ |
| **Newsletter / email** | Add a plugin (MailPoet, Newsletter, etc.) | Built in, with your own subscriber list |
| **Paid memberships & tiers** | Add a plugin (MemberPress, Paid Memberships Pro) | Built in − free, paid, and multiple tiers |
| **Payment fees** | Depends on plugin, some take a cut | Your own Stripe, 0% platform fee |
| **Speed out of the box** | Depends on hosting, theme, and caching plugins | Fast by default — lean app, no plugin bloat |
| **Maintenance** | Ongoing: core, plugins, themes, security | Nothing to maintain on a managed host |
| **Security surface** | Large — plugins account for the vast majority of vulnerabilities | Small — lean core, no plugin marketplace |
| **SEO** | Strong, but usually via a plugin (Yoast, Rank Math) | Strong, built in |
| **Editor** | Block editor, flexible but busy | Clean, focused, made for writing |
| **Extensibility** | Tens of thousands of plugins | Integrations + a lean core, far fewer add-ons |
| **Online store** | WooCommerce runs full stores | Memberships & subscriptions, not a shopping cart |
| **Design flexibility** | Near-unlimited via themes & page builders | Full theme control, but fewer themes |
| **Content ownership** | Fully yours (open source, self-hostable) | Fully yours (open source, self-hostable) |
| **Fediverse / ActivityPub** | Via plugin | Built in — reach Mastodon and Threads directly |
The pattern is consistent. WordPress optimizes for doing anything, at the cost of assembling and maintaining it. Ghost optimizes for doing the core of publishing well, out of the box, at the cost of range and flexibility.
## What Ghost does better
The theme across that table is "built in, not bolted on". A newsletter, membership tiers, and payments through your own Stripe account, with no platform cut, are core features in Ghost, not a MailPoet-plus-MemberPress-plus-caching stack you assemble and then babysit. It's fast by default, because it's a lean application rather than PHP carrying a dozen plugins. The editor is quiet and made for writing. SEO is handled without a plugin. And ActivityPub is native, so your posts can reach the Fediverse (Mastodon, Threads) directly from your site.
For a publication, that adds up to less to think about. The features you'd have carefully wired together on WordPress are simply there, and someone else keeps them running.
## What WordPress does better
However, there are areas where WordPress is arguably stronger.
If the feature you need exists as a plugin – and on WordPress it almost always does – WordPress has it and Ghost may not. WooCommerce runs a full store with a cart, inventory, and shipping. Ghost's commerce is memberships and subscriptions, not products. Page builders give you design control Ghost's themes don't try to match. And for anything beyond publishing – a directory, a forum, an online course, a multi-function marketing site – WordPress is built for that range and Ghost deliberately isn't.
If your site is one of those, stay on WordPress. Moving would cost you capability you actually use, and no amount of "it's simpler" makes up for a feature you need and lose.
## The honest catch with Ghost
Ghost does less, and sometimes "less" is a wall. There's no plugin marketplace and no near-native e-commerce integration. If you've built your site around a specific plugin or a page builder, that doesn't come across, and you'd rebuild that part differently or not at all.
And Ghost is still software someone has to run. Self-host it and you own the servers, updates, email deliverability, and backups. Deliverability in particular is unforgiving, because when your posts start landing in spam, nobody tells you. That's the part a managed host removes. Magic Pages, and plenty of others, run the Ghost side for you, so you get the built-in simplicity without touching infrastructure.
## Moving from WordPress to Ghost
The good news: the path is well-trodden and mostly automated. The honest news: a few things don't come across cleanly, and knowing them upfront saves the "where did my SEO go" panic later.
**Use Ghost's official WordPress importer.** Ghost publishes a WordPress plugin and import tool, available from Settings → Advanced → Import/Export in any Ghost admin, including Magic Pages. It brings across your posts, pages, tags, authors, dates, and excerpts.
**Know what doesn't transfer.** WordPress categories become Ghost tags. The first category on a post becomes its primary tag. Yoast SEO titles and descriptions don't come over, so plan to reset them on your important posts. Content built by plugins (tables, gallery plugins, page-builder blocks, and shortcodes like `[caption]`, `[audio]`, or `[code]`) won't render and needs redoing. Scheduled posts arrive as drafts.
**Handle images deliberately.** Images from your WordPress install generally move during import, but anything that fails to transfer or still points at your old domain keeps loading from there. Either keep the old domain serving files for a while, or re-upload. Broken images are one of the most common post-migration complaints, and it's largely avoidable with a check right after import.
**Preserve your SEO with routing and redirects.** Ghost's URLs differ from WordPress's, so you can upload both a [routing](https://docs.ghost.org/themes/routing?ref=magicpages.co) and a [redirects](https://ghost.org/tutorials/implementing-redirects/?ref=magicpages.co) file (Settings → Advanced) to mimic or redirect every old URL to a new one. Do this and your rankings carry over. Skip it and you'll drop traffic you spent years earning.
**Your theme won't come with you.** Ghost themes are their own format – you'll choose or build a Ghost theme rather than port your WordPress one.
If reading that list makes your palms sweat, that's exactly what a managed host is for. We'll do the migration for you: content, images, redirects, and the fiddly parts. We'll also say plainly if a piece of your site, a store, a plugin you rely on, is better left on WordPress. A straightforward blog moves in about an hour; a large or plugin-heavy site takes longer, and we'll tell you that before you commit rather than after.
## Where to start
If your site is a blog, a newsletter, or a membership publication (writing at its core), and you're tired of being its sysadmin, Ghost will feel like putting down something heavy you'd stopped noticing you were carrying. If your site is a store, or depends on plugins and page builders you'd have to rebuild, WordPress is the right home, and switching would cost you more than it saves.
WordPress wins on raw power, easily. The real question is how much of that power you actually use, and how much you're maintaining for nothing. For a lot of writers, the honest answer is: not much, and too much. If that's you, Ghost is worth it.
You can try Magic Pages free for 14 days, no card required. If you decide to move, we'll handle the WordPress migration for you. And if we think you're better off staying where you are, we'll tell you that too.
## Common questions
#### ****Will I lose my Google rankings if I switch?**
Not if you set up proper routing and redirects. That's the step that carries your SEO across. A managed host will usually do it as part of the migration. Skip it and you will lose rankings, so don't skip it.
#### ****Can I keep my WordPress theme**?
No − Ghost uses its own theme format, so you'll pick or build a Ghost theme rather than port your existing one. Your content moves, the design is rebuilt. For most blogs that's quick, and often an improvement.
#### ****Does Ghost have plugins like WordPress?**
Not a marketplace of thousands. Ghost keeps a lean core with the big things − newsletters, memberships, SEO − built in, plus integrations for popular tools. If your site depends on a specific WordPress plugin, check whether Ghost covers that need before moving.
#### Can I run an online store on Ghost?
Ghost handles memberships and subscriptions, not a full shopping cart with products, inventory, and shipping. If you're selling physical or digital products, WordPress with WooCommerce, or a dedicated tool like Shopify, is the better fit.
#### ****How long does the migration take?**
A standard blog usually moves in about an hour. A large archive or a plugin-heavy site takes longer, mostly because of redirects and rebuilding plugin-generated content. A managed host can give you a realistic estimate before you start.
### Updated Customer Websites to Ghost v6.53.0
URL: https://www.magicpages.co/roadmap/updated-customer-websites-to-ghost-v6-53-0/
Last updated: 2026-07-20T15:04:18.000Z
All customer websites running on Magic Pages have been updated to Ghost's new release v6.53.0 today. You can read about changes included in Ghost's official release.
[Release 6.53.0 · TryGhost/GhostSee the full changelog for details on what's new in this releaseGitHubTryGhost](https://github.com/TryGhost/Ghost/releases/tag/v6.53.0?ref=magicpages.co)
### Substack vs. Ghost for a paid newsletter
URL: https://www.magicpages.co/blog/substack-vs-ghost-for-a-paid-newsletter/
Last updated: 2026-07-28T19:19:45.000Z
When people decide where to put their writing, two names come up: Substack and Medium. Both hand you an audience. Both run on the same premise: you write, they own the relationship with your readers.
There's a third option that starts from the opposite premise. If you plan to charge for your work, it's worth understanding before you commit years to it. Here's the honest comparison between the platform most paid newsletters start on, Substack, and the one built on owning your audience instead, Ghost – including the part about money that never makes it onto a pricing page.
Short version, if you're deciding right now: Substack is free to start and takes 10% of your subscription revenue forever, plus Stripe's processing fees. A Ghost site costs a hosting fee that has nothing to do with what you earn, and 0% of your subscription revenue. You keep everything after Stripe. In practice that means Substack is cheaper until you have roughly 14 paid subscribers. Above that, Ghost wins by a growing margin, and you also own your domain, your list, and your archive outright. The rest of this piece walks through why that matters beyond the math.
## What Substack and Medium actually give you
Before getting into where they fall short, it's worth being specific about what you're getting, because it's not nothing. Substack gives you a working publication in minutes: hosted newsletter, built-in payments, a reader app, and a discovery network of other writers' audiences. Medium gives you something similar for essays and articles, built around its own curation and paywall. Neither requires you to think about a server, a domain, or an email service provider. For someone testing whether they even like writing regularly, that's a legitimate reason to start there.
The trade-off shows up once you're not just testing anymore: once people are paying you and you're building something you intend to keep.
## The network effect is real. That's exactly why it's a trap.
Give Substack its due. Notes, cross-recommendations from other writers, the reader app: they genuinely put you in front of people who've never heard of you. Medium does the same through its own distribution. This is the main reason both platforms win people starting out.
Now look at what you're building while it happens. Every reader that network sends you is a relationship the platform owns, not you. You can export a list of email addresses but you can't export the recommendations, the discovery, or the algorithm that brought them. Those only work while you stay.
That's the trap. Not that you can't leave, but that leaving costs you the thing that made the platform attractive in the first place. The discovery feels free. But you pay for it in dependency.
## The 10% is just the visible cost
Substack takes 10% of your subscription revenue, on top of the payment processing Stripe charges wherever you host (roughly 2.9% + 30¢, plus a 0.5% recurring-billing fee). That 10% is Substack's, and it doesn't stop, discount, or cap as you grow.
Ghost – and any managed hosting provider running it for you – takes nothing from your revenue. You connect your own Stripe account and, after Stripe's cut, keep 100%. Instead of a percentage, you pay for the hosting. What you charge your readers never enters the calculation.
The clearest way to see it is to count subscribers instead of revenue, because that's the number you actually know about yourself. So: say each paid subscriber pays you €8 a month, they make up your whole list, and you send a weekly newsletter — four sends in a typical month. Stripe's cut applies on every platform, so it's left out of all three columns, and each provider is shown in the currency it actually bills in.
| Paid subscribers | Emails a month | Substack's cut, per year | Magic Pages, per year | Ghost(Pro) Publisher, per year |
| ---------------- | -------------- | ------------------------ | --------------------- | ------------------------------ |
| 25 | 100 | €240 | €130 | $348 |
| 100 | 400 | €960 | €130 | $348 |
| 250 | 1,000 | €2,400 | €130 | $348 |
| 500 | 2,000 | €4,800 | €130 | $348 |
| 1,000 | 4,000 | €9,600 | €130 | $348 |
| 2,500 | 10,000 | €24,000 | €130 | $552 |
| 5,000 | 20,000 | €48,000 | €183 | $756 |
The break-even is about **14 paid subscribers**. At €8 a month, fourteen subscribers generate roughly €11 a month in Substack fees, which is what a year of Magic Pages costs per month. Charge €15 and it happens at seven subscribers. Charge €5 and it takes twenty-two. Either way it arrives early, long before this feels like a real business.
After that, the two lines diverge permanently. At 500 paid subscribers you hand Substack €4,800 a year and Magic Pages €130.
## What a hosting provider for Ghost actually charges for
Hosting isn't one fixed number forever, though, so it's worth knowing what moves it. It doesn't move with your revenue. It moves with how much you use it. The easiest way to show that is with a full example.
Say you have 6,000 subscribers. Five hundred of them pay €8 a month, and the other 5,500 read for free. You send four newsletters a month. That gives you **€4,000 a month in subscription revenue, and 24,000 emails to send**. Here is what each platform charges for that same publication.
| | What it charges for | What this example costs |
| ----------- | ----------------------------------------------------------------- | ---------------------------- |
| Substack | 10% of your subscription revenue | €400 a month — €4,800 a year |
| Magic Pages | Emails sent: 10,000 a month included, then €4.39 per extra 10,000 | €22 a month — €235 a year |
| Ghost(Pro) | Total members, in tiers. Email sends are unlimited | $95 a month — $948 a year |
Same publication, three very different bills. The reason Magic Pages costs €235 a year rather than €130 is the free list: 6,000 subscribers times four newsletters is 24,000 emails, which is 14,000 over the 10,000 included, adding €8.78 a month. The 500 people actually paying you barely register – on their own they would be 2,000 emails a month, comfortably inside the allowance.
On most hosting provider for Ghost, your bill follows how big your audience is and how often you email it, not how much you earn from it. Substack is the reverse: it doesn't care whether your list is 500 people or 50,000, only what you charge them.
Which means the two models genuinely suit different publications. A large free list earning modest revenue can be cheaper on Substack. A smaller list that pays well is dramatically cheaper on Ghost. And because email volume is the thing that moves the Magic Pages number, it is worth seeing how it grows as your list and your publishing schedule do:
| Subscribers receiving your newsletter | One a month | One a week | Two a week |
| ------------------------------------- | ----------- | ---------- | ---------- |
| 1,000 | €130/yr | €130/yr | €130/yr |
| 2,500 | €130/yr | €130/yr | €183/yr |
| 5,000 | €130/yr | €183/yr | €288/yr |
| 10,000 | €130/yr | €288/yr | €499/yr |
Ghost(Pro) moves on a different axis again. It never charges for email, no matter how often you send, but every subscriber counts toward the member total that sets your price – free readers included. Its Publisher plan moves in tiers: billed yearly, that is $29 a month for up to 1,000 members, $63 up to 5,000, $79 up to 7,500, $88 up to 10,000 and $141 up to 25,000\. A 6,000-person list sits on the 7,500 tier, which is where the figure above comes from.
## Feature by feature
Fees are only part of the decision. Here's how the two platforms actually compare on the things that shape day-to-day publishing:
| | Substack | Ghost |
| ----------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Ownership of subscriber list** | Exportable as CSV, but discovery and recommendations don't travel with it | Fully yours − list, content, and domain |
| **Design & branding** | Fixed layout, limited customization | Full theme control, your own design, HTML/CSS if you want it |
| **Custom domain** | Costs an extra one-time fee | Included on any Ghost host, including Magic Pages |
| **Membership tiers** | Free and paid, single paid tier by default | Free, paid, and multiple paid tiers, plus gifting and complimentary paid memberships |
| **Payments** | Substack-managed Stripe integration, 10% platform fee | Your own Stripe account, 0% platform fee |
| **Discovery** | Substack Notes, cross-recommendations, in-app network | Public, SEO-indexable website; discovery is organic and search-driven, connected to the Fediverse via ActivityPub |
| **Email deliverability** | Handled by Substack | Handled by your Ghost host (Magic Pages manages this for you) |
| **Podcasts / newsletters as audio** | Native audio post support | Supported via theme (Magic Pages' Pod theme is built for this) |
| **Data portability** | Content and emails exportable, audience/discovery isn't | Everything portable − you can move hosts without losing anything |
| **Software** | Closed, proprietary platform | Open source — the software itself can never be taken away |
| **Algorithmic interference** | Notes and app can surface or bury posts | None — what you send is what subscribers get |
The pattern across almost every row is the same one from the fee comparison: Substack optimizes for zero setup and borrowed reach. Ghost optimizes for control you keep, at the cost of setting more of it up yourself — which is exactly what a Ghost host like Magic Pages exists to remove.
## What owning your audience actually gets you
On Ghost, the entire publication is yours: your domain, your Stripe account, your subscriber list, your content. It's all exportable and portable. Ghost is open source, so even the software itself can't be taken away from you. If your hosting provider ever changed terms or shut down, you could move the whole thing elsewhere and keep every reader.
**You build on ground you own, so nobody else's decision can undo your work.**
Ghost also publishes a real, indexable website. Every post you write keeps working long after you hit publish. It will show up in search results, pulling in new readers who never saw your newsletter go out. That's discovery you own, compounding over years, instead of discovery you rent.
That also means that there is no algorithm in between. What you send is what your readers get. Nothing decides to show your post to a fraction of your list to encourage you to boost it, and nothing buries an email because engagement dipped.
## What Substack does better
An honest comparison cuts both ways. So let's be fair.
Substack is entirely free until you turn on paid subscriptions, so there's no upfront cost to test whether people will pay for your writing. The built-in discovery network is real distribution that a brand-new Ghost site simply doesn't have on day one.
If you're not sure yet whether you want to write regularly, or whether anyone will pay for it, that's a reasonable set of trade-offs to accept temporarily.
## The honest catch with Ghost
Someone has to run it. Ghost is software, not a service. Self-host it yourself and you're now responsible for servers, updates, email deliverability, and backups. Email deliverability in particular is unforgiving: get it wrong and your posts land in spam instead of inboxes, and readers rarely tell you when that happens. That's genuine, ongoing work, and it's the honest reason plenty of people stay on the easier option even after they know the trade-offs.
[The real cost of self-hosting Ghost in 2026Self-hosting Ghost looks like $5/month. The honest 2026 total − after the Mailgun price hike, a server that won’t crash, and your time − is a different number. Here’s the full overview, and who should still do it.Magic PagesJannis Fedoruk-Betschki](https://www.magicpages.co/blog/the-real-cost-of-self-hosting-ghost-in-2026/)
That's the part a managed host removes. Magic Pages – and many others – run the Ghost site for you. That includes updates, deliverability, backups, security, and the server itself, so you get everything above without touching infrastructure. You write; we keep the lights on.
## Moving from Substack to Ghost
If you already have paying subscribers on Substack, migrating doesn't mean starting over – and it doesn't require the from-scratch rebuild some horror stories suggest. The general path:
1. **Export your content from Substack**, then run it through Ghost's built-in Substack migrator (Settings → Migration tools in any Ghost admin, including Magic Pages). This matters more than it sounds: Substack's raw export doesn't include your images, so if you just import the HTML directly, every post ends up hotlinking back to Substack – and those images break the moment your Substack goes offline. The migrator tool pulls the media across properly and rewrites internal links so your archive actually works standalone.
2. **Export your subscriber list as CSV** and import it into Ghost. Free and paid status carry over.
3. **Connect the same Stripe account** you were using on Substack. Because Substack subscriptions run on Stripe under the hood, your subscribers' cards stay on file and billing continues without asking anyone to re-enter payment details – this is the one part of the whole process that tends to just work.
4. **Deal with Substack's ongoing fee.** Ghost doesn't take a cut of your revenue, but Substack will keep taking its 10% on subscriptions that started there, even after you've migrated, until that fee connection is explicitly removed – it doesn't happen on its own. [Molly White ran into this directly](https://www.citationneeded.news/substack-to-self-hosted-ghost/?ref=magicpages.co): she had to email Substack support and ask them, specifically, to disconnect the fee from the Stripe account, and initially got a reply suggesting this wasn't possible before a second, more informed reply confirmed it was – and did it. **Whatever you do, don't use Substack's self-service "disconnect Stripe" option for this. That cancels and refunds every paid subscription instead of just removing the fee.**
5. **Point your domain** at the new site, or set one up if you were publishing on a Substack subdomain – Substack doesn't let you take their subdomain with you.
6. **Send a note to your list** letting them know where you've moved.
## Where to start
If you just want to find out whether you enjoy writing, use anything – a free platform, a notebook, it barely matters. But the day this becomes something you charge for and intend to build on, start where you mean to stay. Every subscriber you gather on rented land is one you'll eventually have to move, and later always costs more than now. More subscribers to re-verify, more history to migrate, more inertia to overcome.
So, my (biased) advice: own it from the start.
## Common questions
#### Is Ghost cheaper than Substack?
Once you have about 14 paid subscribers at €8 a month, yes − and the gap grows from there. At 500 paid subscribers, Substack's 10% comes to €4,800 a year while Magic Pages is €130.
Hosting isn't literally fixed: it grows with email volume, or with member count on Ghost(Pro). But it grows far more slowly than a share of everything you earn, and it never depends on what you charge.
#### Can I move my paying subscribers from Substack to Ghost without losing them?
Yes. If you use your own Stripe account, subscribers' billing continues uninterrupted during a migration — no need to ask them to re-enter payment details.
#### Is Ghost free?
The software is free and open source if you self-host it. Managed hosting, like Magic Pages, charges a flat monthly or annual fee instead of a revenue cut.
#### Does Ghost support podcasts?
Yes, through themes built for it − Magic Pages' own [Pod theme](https://www.magicpages.co/themes/pod/) is designed specifically for podcast newsletters with RSS feed generation built in.
#### Do I need technical skills to run a Ghost site?
Not with a managed host. Self-hosting Ghost requires comfort with servers and email infrastructure; a managed host removes that requirement entirely.
#### What makes a Ghost hosting bill go up?
Usage, not revenue − and mostly your free subscribers. On Magic Pages you get 10,000 emails a month, then pay €4.39 per additional 10,000, with unlimited members. So a big list emailed often costs more, while your paid-subscriber count and your prices are irrelevant.
Ghost(Pro) works the other way around: unlimited sends, but the price follows your total member count.
### Troubleshooting
URL: https://www.magicpages.co/themes/pod/docs/troubleshooting/
Last updated: 2026-07-13T07:34:06.000Z
If something's not right, this is the checklist. Common misconfigurations first, weirder ones after.
## My homepage doesn't show any episodes
Pod filters the homepage archive by the internal tag `#podcast`. Every episode post has to carry it, or it doesn't show up.
**Fix:** Open each episode post, click the settings cog, add the tag `#podcast` (typed with the hash — Ghost treats hash-prefixed tags as internal, meaning they don't appear on the public tag page but still filter feeds and collections).
## The RSS feed at /podcast/rss/ returns a 404
Pod needs a routes.yaml that includes the `/podcast/rss/` and `/subscribe/` route entries. Without it, both URLs return Ghost's default 404 page.
**Fix:** Download Pod's [routes.yaml](https://github.com/magicpages/pod/releases/latest?ref=magicpages.co) from the latest GitHub release. In **Ghost admin → Settings → Labs → Upload routes.yaml**, upload it. If you've customised your routes previously, follow the "merge" branch in the [Getting started](https://www.magicpages.co/themes/pod/docs/getting-started/) doc instead of overwriting.
## The RSS feed loads but has no episodes
Same tag issue as the homepage. The feed template's query is `tag:hash-podcast`, matching the internal `#podcast` tag on episode posts.
**Fix:** Add `#podcast` as an internal tag to every episode. Refresh `/podcast/rss/` and the items should now appear.
## Audio plays but the RSS enclosure says length="0"
Pod can't know your audio file's size unless you tell it. Podcast apps use the file-size `length` attribute for download-progress bars, and strict validators flag it as a warning when it's missing.
**Fix:** Use the [episode metadata generator](https://www.magicpages.co/themes/pod/docs/episode-metadata-generator/)'s *Fetch from URL* button — it HEAD-requests your MP3 and fills in the file size automatically. Or add the `` marker manually to your episode's code injection foot.
## Audio doesn't play on the site
Three usual causes:
1. **MIME type**. Some CDNs / self-hosted setups serve MP3s with the wrong `Content-Type`. Browsers refuse to play audio that isn't served as `audio/mpeg` or a similar audio MIME.
**Check:** `curl -I https://your-audio-url/ep01.mp3`. If the `content-type` header isn't `audio/mpeg`, fix it on the audio host's side.
2. **CORS**. If your audio is on a different host than your Ghost site, and that host doesn't allow cross-origin fetches, the player can play the file but the "Fetch from URL" button in the generator won't work. Playback itself doesn't require CORS on modern browsers; only the file-size HEAD request does.
**Check:** the browser dev tools' Network tab shows CORS errors under the failing request.
3. **Mixed content**. Serving audio over `http://` from a Ghost site on `https://` — browsers block this.
**Fix:** use HTTPS for the audio host, or upload the file to Ghost.
## My episode's cover art is the wrong image
Pod's cover-art resolution order (both for the /podcast/rss/ feed and the on-site archive card):
1. Ghost's **feature image** on the post — this is what shows up if you set one.
2. If no feature image, Pod's CSS-rendered fallback tile takes over on the site (gradient + episode number). In the RSS feed, Pod falls back to the theme-shipped default cover at `/assets/img/default-cover.jpg`.
**Fix:** Set a per-episode feature image in the post's settings. Apple recommends 1400×1400 to 3000×3000 pixels, JPG or PNG, under 512 KB. Pod uses the same image for both the on-page cover and the RSS ``.
## Apple Podcasts rejected my submission
Common reasons:
- **Cover art too small, too big, or wrong format**. Must be 1400×1400 min, 3000×3000 max, JPG or PNG, RGB, under 512 KB. Pod's default cover meets these, but if you've uploaded a custom one, double-check.
- **iTunes explicit flag not set**. Apple requires an explicit yes/no answer, no "unknown". Set `itunes_explicit` in Ghost admin.
- **Owner email verification failed**. The email in `itunes_owner_email` must be a real inbox — Apple sends a verification code to it. Check spam.
- **Category missing or invalid**. Set `itunes_category` in Ghost admin to one of Apple's official categories.
- **Show title too long** (limit is 60 chars for the show title, 250 chars for episode titles).
## The subscribe page shows apps I don't want
The ten open-catalog apps (Apple, Overcast, Pocket Casts, Castro, Podcast Addict, AntennaPod, Podverse, Player FM, gPodder, RSS) always render. That's by design — publishers shouldn't have to hand-configure every app, and the deep-link URL is derived from the RSS feed URL. The six closed-catalog apps (Spotify, Amazon, YouTube Music, iHeart, Castbox, Pandora) only appear when you paste in their respective show URLs.
**What you can control:** the closed-catalog buttons. Leave those settings empty in **Ghost admin → Settings → Design → Site-wide** and the corresponding buttons don't render.
Hiding the ten always-on apps isn't currently possible via custom settings; if you have a strong reason (a listener demographic that's exclusively on one app, or a partnership requirement), edit `partials/subscribe-grid.hbs` in the theme.
## Chapters don't show up in podcast apps
Chapters need to be in the code-injection foot as repeated `pod:chapter=` markers. Two things to check:
1. **Format:** ``. Note the `|` separator between timestamp and title. Leading zeros aren't required — `0:05:30` works.
2. **App support:** not every podcast app renders chapters. Apple Podcasts, Overcast, Pocket Casts, and Spotify do. Some smaller apps don't. That's not a Pod problem; it's an ecosystem limitation.
## The Ghost admin says my theme has warnings after upload
Pod is [gscan-validated](https://github.com/magicpages/pod/blob/main/CHANGELOG.md?ref=magicpages.co) against Ghost 6.x with zero warnings. If your Ghost install shows warnings on upload, one of two things happened:
1. You're on an older Ghost (below 5.93) that doesn't recognise all of Pod's helpers. Upgrade Ghost.
2. Ghost's gscan version disagrees with the version we test against. Check the specific warnings — if they're about Ghost 7 forward-compatibility, they're informational and won't affect functionality until a future Ghost major release.
## Something else
If this doc doesn't cover your situation, the fastest path is:
- [Open an issue on GitHub](https://github.com/magicpages/pod/issues?ref=magicpages.co) — bug reports and feature requests both welcome.
- [Email help@magicpages.co](mailto:help@magicpages.co) — Magic Pages customers get direct support; anyone else gets a best-effort reply.
- Check the [Ghost forum](https://forum.ghost.org/?ref=magicpages.co) for anything about Ghost itself (routes.yaml behaviour, custom template rules, general theme development).
### Podcasting 2.0 settings
URL: https://www.magicpages.co/themes/pod/docs/podcasting-2-0-settings/
Last updated: 2026-07-13T07:34:04.000Z
[Podcasting 2.0](https://podcasting2.org/?ref=magicpages.co) is a set of RSS extensions maintained by the Podcast Index. Their goal, in one sentence: give the podcast ecosystem a way to carry *everything* a show is about in the feed itself — transcripts, chapters, credits, funding links, micro-payments, cross-platform identity — without any of it being owned by a specific app or hosting company. Pod supports the full spec on both the channel and item level.
Most publishers can ignore most of it. The apps that use these tags today — Podverse, Fountain, CurioCaster, the Podcast Index website — are still a small share of total listenership. But every feature Pod supports is one you don't have to worry about later; when the ecosystem catches up, your feed is already there.
This doc covers only the *channel-level* settings you configure once, in **Ghost admin → Settings → Design → Site-wide**. Per-episode PC2.0 markers (chapters, transcripts, hosts + guests) are covered in the [episode metadata generator](https://www.magicpages.co/themes/pod/docs/episode-metadata-generator/) — same generator makes the code-injection block for you.
## podcast:guid — your show's permanent identity
A `podcast:guid` is a UUIDv5 derived from your RSS feed URL. It's your show's cross-platform identity. When you eventually change hosts, or move domains, or switch to a different Ghost theme, the guid stays the same — and the apps that support it can recognise your show is the same one.
**How to generate one:** visit [podcastindex.org/namespace/1.0#guid](https://podcastindex.org/namespace/1.0?ref=magicpages.co#guid), paste your feed URL (`https://yoursite.com/podcast/rss/`) into the generator, copy the resulting UUID.
**How to configure:** paste the UUID into the `podcast_guid` custom setting.
Set it once, forever. Don't change it after you've submitted your feed anywhere — the whole point is stability across a show's lifetime.
## podcast:locked — permission for other hosts to import your feed
When a publisher moves between podcast hosts, some hosts offer a one-click "import from RSS" flow. Without `podcast:locked`, anyone who has your feed URL can plausibly claim your show on another platform. With it set to `yes`, hosts that honour the flag will refuse the import unless the requester can verify ownership via the iTunes owner email you set.
**How to configure:** set `podcast_locked` to `yes` if you want the extra protection. Default is `no`, which is fine for shows that don't care about impostor claims.
The mechanism only works if a) the hosts you're worried about actually implement the flag, and b) they can reach your iTunes owner email. It's a soft protection, not a legal one, but it's the accepted convention in the ecosystem.
## podcast:funding — where listeners can support the show
The `podcast:funding` tag carries a URL to wherever you accept support — Patreon, Buy Me a Coffee, Ko-fi, GitHub Sponsors, a Stripe checkout, or any other page. Apps that support the tag surface the link somewhere in their UI ("Support the show" button on the episode screen, usually).
**How to configure:** paste the URL into `podcast_funding_url`.
If you leave `podcast_funding_url` empty *and* you've enabled Ghost's built-in tip jar (**Settings → Membership → Tips**), Pod automatically points `podcast:funding` at your Ghost tip-jar URL: `{site_url}/#/portal/support`. You don't need to do anything else — one enabled setting in Ghost, one enabled feature on the feed.
If you have both a Ghost tip jar and a Patreon, the explicit `podcast_funding_url` wins — set it to whichever you'd rather steer listeners toward.
## podcast:value — Lightning micro-payments
Value 4 Value (V4V) is the Podcast Index's model for direct listener-to-creator payments via the Bitcoin Lightning Network. Listeners in supporting apps (Fountain, Breez, Podverse with Alby) can send small amounts as they listen — usually a few sats per minute. Some shows earn meaningful revenue from V4V; most don't. Almost no listener will send you anything unless you tell them the show accepts it.
To turn it on, you need a Lightning node with a public keysend-capable pubkey. If you're already running one — Alby, Umbrel, Voltage, Fedimint, or a self-hosted lnd — you have this. If you're not, ignore this section.
**How to configure:**
1. Set `podcast_value_type` to `lightning`.
2. Paste your Lightning node's pubkey into `podcast_value_address`. It starts with `02` or `03` and is 66 hex characters long.
The suggested payment rate (5000 sats per minute, roughly $2/hour at current prices) and payment method (`keysend`) are hardcoded to the ecosystem's conventions. Set `podcast_value_type` back to `none` to disable.
Multiple recipients (splitting between hosts, editors, a producer) are supported by the PC2.0 spec but not exposed as a custom setting in Pod — Ghost's 20-setting limit forced us to pick. If you need splits, edit `podcast/rss.hbs` directly and add more `` elements inside the value block.
## podcast:medium — always "podcast"
Not a setting, just a note: Pod hardcodes `podcast` on every feed. The tag exists because the Podcasting 2.0 spec supports other media types too (music, audiobook, newsletter, film, video), but Pod is specifically a podcast theme. If you're building something else, that's a different theme.
## What Pod supports on the per-episode side
Everything worth mentioning, all populated via the code-injection generator:
- `` and `` — episode + season numbers, from `pod:episode=` and `pod:season=`.
- `` — pointer to a chapters JSON file (Podlove Simple Chapters format), from `pod:chapters=`.
- `` — repeatable, one per format/language, from `pod:transcript=URL|MIME|LANG`.
- `` — repeatable, one per host/guest/credit, from `pod:person=Name|Role|Href|Img`.
- `` — a URL where episode discussion happens (Mastodon post, Bluesky thread), from `pod:socialinteract=`. Fediverse-native apps thread replies underneath.
See the [generator](https://www.magicpages.co/themes/pod/docs/episode-metadata-generator/) for the exact syntax and a live tool that outputs it.
## What Pod doesn't support (yet)
The Podcasting 2.0 namespace is still growing. Pod ships with the tags publishers actually use in the wild — GUID, locked, funding, value, chapters, transcripts, person, socialInteract. Tags Pod doesn't emit today, and why:
- `podcast:soundbite` — for one-off promo clips. Rare in practice, exposed by very few apps.
- `podcast:license` — Creative Commons license for the episode audio. Fine idea, low adoption.
- `podcast:location` — for episodes tied to a place. Niche.
- `podcast:trailer` — Pod handles trailers via the `episodeType=trailer` marker instead.
- `podcast:updateFrequency`, `podcast:publisher`, `podcast:images`, `podcast:alternateEnclosure` — spec-defined but adoption is essentially zero.
Any of these can be added to Pod without a spec change on our end — the RSS template's marker-parsing pattern is easy to extend. If one of them turns out to matter to you specifically, [open an issue](https://github.com/magicpages/pod/issues/new?ref=magicpages.co) on GitHub.
### Submitting your show to Apple Podcasts + Spotify
URL: https://www.magicpages.co/themes/pod/docs/submitting-to-apple-and-spotify/
Last updated: 2026-07-13T14:02:08.000Z
You've got Pod installed, your first episode is up, and the RSS feed at `yoursite.com/podcast/rss/` is producing what it should. Now for the last step: getting your show into the directories listeners actually use — Apple Podcasts, Spotify, and everywhere else they crawl outward from.
## Before you submit
The directories run their own automated checks on new feeds. Meet these first or the submission gets rejected and you have to try again after a fix + a wait:
- **Cover art on the show and on each episode** — this is what listeners see in every podcast app, so it's worth getting right before you submit.
- **The show cover** is Ghost's *publication cover*. Set it in **Ghost admin → Settings → Design & branding → Brand** — the *Publication cover* field is at the top. Upload a square image, 1400×1400 to 3000×3000 pixels, JPG or PNG, RGB colour space, under 512 KB. Pod ships a bundled default so a fresh install technically passes Apple's validator, but replace it before submitting — the default is a stock landscape, not your show.
- **Each episode cover** is Ghost's *feature image* on the episode post. In the Ghost editor, click the settings cog (top right), and near the top of the panel is a *Feature image* upload button. Same size and format rules apply. Skip this and Pod paints its CSS-rendered fallback tile on your site plus the shipped default cover in the RSS feed — every episode still has cover art, just not the specific one you'd probably design.
- **iTunes fields filled in**. In **Ghost admin → Settings → Design → Site-wide**: iTunes author, iTunes owner name, iTunes owner email (this must be a real inbox — Apple emails a verification code to it), iTunes category, iTunes explicit flag, iTunes type (episodic vs serial).
- **At least one published episode**. Some directories reject feeds with zero items.
- **The feed is publicly reachable**. If your site is behind a members-only wall, Apple can't fetch it. Public site required.
- **HTTPS**. Apple requires it. If you're on Magic Pages you already have it; if you're self-hosting, make sure your certificate is valid.
Pass the feed through [Cast Feed Validator](https://castfeedvalidator.com/?ref=magicpages.co) or [Cast Feed Validator](https://castfeedvalidator.com/?ref=magicpages.co) first — either will tell you if anything's wrong before Apple does.
## Apple Podcasts
Apple's directory is the primary one — most other apps ingest Apple's catalog, so submitting here first often surfaces you in a dozen other apps by association.
1. Go to [podcastsconnect.apple.com](https://podcastsconnect.apple.com/?ref=magicpages.co) and sign in with an Apple ID. Any Apple ID works; you don't need a paid developer account.
2. Click **Add a Show** in the top-right.
3. Paste your Pod feed URL: `https://yoursite.com/podcast/rss/`. Apple fetches the feed and validates it in-browser. If validation fails, Apple points at the specific field or requirement that failed. Fix that, click **Refresh**, try again.
4. Confirm ownership. Apple emails a verification code to the iTunes owner email you set in Ghost. Enter the code.
5. Submit for review. Approval usually takes hours to a day. Apple runs an automated + light human review — they check the cover art, category, and any obvious policy issues. When approved, you get an `apple.co` URL and an Apple Podcasts show ID.
6. After Apple approves your show, copy your `podcasts.apple.com/…` show URL and paste it into **Ghost admin → Settings → Design → Site-wide → `subscribe_apple_url`**. That URL now powers the Apple Podcasts button on your */subscribe/* page, the homepage subscribe band, and the end-of-episode CTA — one working button for listeners on every OS and browser, not just iOS. Before you paste it in, the pill still works via the `podcast://` URL scheme for iOS/macOS listeners, so day-one visitors aren't left with a dead link.
## Spotify
Spotify is the second-largest podcast platform for most creators. Their submission flow is at [podcasters.spotify.com](https://podcasters.spotify.com/?ref=magicpages.co).
1. Sign in with a Spotify account.
2. Click **Add or claim your podcast**.
3. Paste your Pod feed URL. Spotify validates it, verifies ownership by emailing a code to the iTunes owner email (same field Apple uses).
4. Fill in a few Spotify-specific fields (country, primary language, category — Spotify's categories aren't identical to Apple's, but the closest match works fine).
5. Submit. Spotify's review is usually faster than Apple's — typically an hour.
6. When approved, copy your Spotify show URL (looks like `https://open.spotify.com/show/6a5nY...`) and paste it into **Ghost admin → Settings → Design → Site-wide → Spotify show URL**. This turns on the Spotify button on `/subscribe/`, the top-5 band on the homepage, and the end-of-episode CTA. See [Where listeners subscribe](https://www.magicpages.co/themes/pod/docs/where-listeners-subscribe/) for the full list of app fields.
## Everywhere else
Apple and Spotify together cover about 80% of listeners in most markets. The remaining apps split into two camps:
### Open-catalog apps — no submission needed
Overcast, Pocket Casts, Castro, Podcast Addict, AntennaPod, Podverse, Player FM, gPodder — these read Apple's public feed catalog. Once Apple has approved you, most of them index you within a day or two automatically. Nothing else to do. They're already on Pod's `/subscribe/` page and always have been.
### Closed-catalog apps — one form each
Amazon Music, YouTube Music, iHeartRadio, Castbox, Pandora — each of these has its own onboarding form on its own website. There's no universal submitter; you do one at a time.
- **Amazon Music for Podcasters**: [podcasters.amazon.com](https://podcasters.amazon.com/?ref=magicpages.co)
- **YouTube Music**: podcasters submit via [YouTube Studio](https://studio.youtube.com/?ref=magicpages.co) under "Content → Podcasts"
- **Castbox**: [helper.castbox.fm](https://helper.castbox.fm/?ref=magicpages.co)
Each one takes a few minutes. When approved, paste the resulting show URL into the matching Pod custom setting in **Ghost admin → Settings → Design → Site-wide**: `subscribe_amazon_url`, `subscribe_youtube_url`, `subscribe_castbox_url`. Pod uses the pasted URL as the destination for that app's button on `/subscribe/`. Empty fields hide the corresponding button.
## What to expect after submission
- **Day one:** Apple approves, Spotify approves. Your show is discoverable in those two apps by name.
- **Days 2-7:** the open-catalog apps that piggy-back on Apple index you. Overcast, Pocket Casts, Podcast Addict et al. start showing your show without you doing anything.
- **Weeks 1-4:** Google's podcast crawler picks up your feed; you start appearing in general Google search for your show name.
- **Any time:** a listener can subscribe directly from your `/subscribe/` page, at any point — that page works from the moment Pod is installed and the routes.yaml is uploaded, no directory approval required.
## Updating an already-submitted show
Once your feed is in Apple + Spotify, they poll it periodically for changes. New episodes appear within an hour or so of your RSS feed being updated. You don't re-submit for each episode; you just publish new posts on your Ghost site and let the feed do the work.
If you ever need to change your feed URL (moving hosts, switching domains, etc.), the mechanism is ``. Pod supports this via a custom setting in a future release — until then, contact [help@magicpages.co](mailto:help@magicpages.co) if you need to migrate a live feed.
### Where listeners subscribe
URL: https://www.magicpages.co/themes/pod/docs/where-listeners-subscribe/
Last updated: 2026-07-13T14:01:11.000Z
Pod ships three places listeners can subscribe to your show, all fed from the same list of podcast apps: the **/subscribe/ page**, the **homepage subscribe band**, and the **end-of-episode CTA**. This document walks through what each one shows, why some apps always appear and others don't, and what you configure to control it.
## The /subscribe/ landing page
Your `/subscribe/` page is designed to be the one URL you hand to your audience. Print it on a business card, drop it in your bio, mention it at the end of an episode — from there, listeners pick their app and go. Each button opens straight into the app with your show ready to follow.
The page needs the routes.yaml entry Pod ships with ([Getting started](https://www.magicpages.co/themes/pod/docs/getting-started/) covers the one-file upload). Without it, `/subscribe/` returns a 404 and the "More ways to subscribe" link in the band doesn't resolve.
At the bottom of the page you'll also find a "Copy RSS URL" card — for power users who want to paste your feed directly into an app that isn't in the grid.
## The ten apps that always appear
Ten podcast apps show up on the /subscribe/ page for every publisher automatically, no configuration needed. Pod knows how to deep-link each one because they all read a public RSS feed and none of them require a business relationship with the publisher.
- **Apple Podcasts** — deep-links straight into the iOS/macOS Podcasts app via the `podcast://` URL scheme from day one, before any directory submission. Once Apple approves your feed, paste your `podcasts.apple.com/…` show URL into `subscribe_apple_url` in Ghost admin and the pill switches to that URL — one working button for listeners on every OS + browser, not just iOS.
- **Overcast** — `overcast://x-callback-url/add?url=…`. iOS-only; opens the app and subscribes.
- **Pocket Casts** — `pktc://subscribe/…`. iOS + Android + web. Opens Pocket Casts and subscribes.
- **Castro** — `castro://subscribe/…`. iOS-only.
- **Podcast Addict** — `podcastaddict://…`. Android's most popular independent podcast app.
- **AntennaPod** — `antennapod-subscribe://…`. Android, open source.
- **Podverse** — `https://podverse.fm/search?q=…`. Open-source, web + native, one of the fullest Podcasting 2.0 implementations.
- **Player FM** — web-based subscribe URL. Android + web.
- **gPodder** — desktop-native podcatcher on Linux, macOS, Windows.
- **RSS** — the raw feed URL. For anyone using an app that isn't in this list, or for the "just give me the URL" crowd.
These ten cover the majority of listeners you're likely to have. They're also the ten most likely to survive the next reshuffle of the podcast landscape — they're small, independent, and mostly community-funded.
## The six apps that require a show URL
Four other apps run *closed catalogs* — they don't automatically pull public RSS feeds; they require the publisher to submit the show through their own onboarding flow, and only then does the show get a canonical URL in their catalog. Pod can only link listeners to those apps if you paste that URL in.
These are:
- **Spotify** (via Spotify for Podcasters)
- **Amazon Music** (via Amazon Music for Podcasters)
- **YouTube Music**
- **Castbox** (has a public catalog with a slug per show)
To turn any of them on, go to **Ghost admin → Settings → Design → Site-wide** and paste the show URL into the matching field. Empty fields hide the corresponding button. Turn one on today, another next month — you don't have to do them all at once, and you don't have to do any of them at all.
Recommended flow: submit your feed to Apple Podcasts, Spotify and one or two others first, wait a few days for the catalog listings to appear, then come back and paste in the URLs you get.
## The homepage subscribe band + episode CTA
The full 16-app grid on `/subscribe/` is the deep menu. On the homepage and at the end of every episode, we show a shorter **top-five band** for the ones your audience is most likely to already have.
The band's five slots are fixed for layout stability:
1. **Apple Podcasts** — always
2. **Spotify** — only when you've filled in the Spotify show URL
3. **Overcast** — always
4. **Pocket Casts** — always
5. **RSS** — always
Plus a "More ways to subscribe →" link pointing at `/subscribe/`. That handles all the other apps in one place without cluttering the front page.
The same band appears at the end of every episode page as a "Keep Listening" CTA card. It uses the same partial as the homepage, so if you change your Spotify URL (or remove it), both surfaces stay in lockstep. You can turn the end-of-episode CTA off entirely via the `show_post_cta` custom setting if you'd rather not repeat the pills.
## How the deep links actually work
The magic of a good subscribe page is that clicking a button doesn't take listeners to a website where they then have to search for you and tap "Follow" — it opens their podcast app directly, with your show already loaded. Pod uses each app's documented deep-link mechanism:
- **Custom URL schemes** like `podcast://`, `overcast://`, `pktc://`, `castro://`, `podcastaddict://`, `antennapod-subscribe://`. The operating system routes these to the installed app.
- **Web deep links** like `overcast.fm/podcasterinfo`, `pca.st/…`, `podverse.fm/search?q=…`. These work in a browser first, then the app if it's installed.
- **Publisher-provided URLs** for Spotify, Amazon, YouTube Music, Castbox — you paste in the URL you got from that app's onboarding, and Pod uses it verbatim.
All URL patterns are validated against [Nathan Gathright's podcast platform catalog](https://podcasterinfo.com/?ref=magicpages.co) and each platform's own documentation. If a URL scheme changes, Pod's next release picks up the new one — patch or minor, based on how noisy the change is.
## What if a listener's app isn't in the grid?
Podcasting is open, and any podcast app worth using can accept a raw RSS URL. That's what the "RSS" button gives them: `yoursite.com/podcast/rss/`. They copy that URL, paste it into their app's "Add by URL" or "Import feed" field, and they're subscribed. The bottom of the /subscribe/ page also has a "Copy RSS URL" card with a one-click clipboard button — same feed, no app-specific button needed.
## Testing your subscribe links
Before you send anyone to the page, click through each button on your own phone or laptop:
- On **iOS**: `podcast://`, `overcast://`, `pktc://`, `castro://` all fire the corresponding app if installed. If not installed, the OS falls back to a "no app" screen — perfectly fine, that just means the listener doesn't use that app.
- On **Android**: `pktc://`, `podcastaddict://`, `antennapod-subscribe://` work the same way.
- On **desktop**: iOS-specific schemes are no-ops (as they should be), but the web-based ones (Overcast's web player, Podverse, Player FM, gPodder's web catalog) open in the browser.
If a button ever misfires — wrong show loads, opens the wrong app, gives a 404 — check the show URL you pasted in for that app. That's almost always the culprit. Otherwise, [file a bug](https://github.com/magicpages/pod/issues?ref=magicpages.co); the URL patterns are versioned in the theme and easy to correct.
### Hosting your audio files
URL: https://www.magicpages.co/themes/pod/docs/hosting-your-audio-files/
Last updated: 2026-07-13T05:36:46.000Z
Pod doesn't care where your MP3 files live. It'll happily read them out of Ghost's file library, off Castopod, off Azuracast, off an S3 bucket, off a VPS you own, or off the podcast host you're trying to escape from. There are three ways to point Pod at an audio file. All three produce the same iTunes-spec + Podcasting 2.0 RSS enclosure; the only difference is where the MP3 physically sits and how you tell Pod about it.
## Option 1 — Upload to Ghost
The simplest path, and what we recommend for most people. Ghost has a file library; your MP3 goes in it, next to any images or PDFs you've uploaded.
1. In the Ghost editor, click the **+** to add a card and pick **Audio**.
2. Drop your MP3 in.
3. Publish.
Ghost hosts the file at a URL like `https://yoursite.com/content/files/2026/07/ep01.mp3`. Pod's RSS template automatically picks up the first `