# Ghost Developer Docs ## Docs - [Overview](https://docs.ghost.org/admin-api.md): It’s possible to create and manage your content using the Ghost Admin API. Our content management interface, Ghost Admin, uses the admin API - which means that everything Ghost Admin can do is also possible with the API, and a whole lot more! - [Overview](https://docs.ghost.org/admin-api/images/overview.md) - [Uploading an Image](https://docs.ghost.org/admin-api/images/uploading-an-image.md) - [Creating a member](https://docs.ghost.org/admin-api/members/creating-a-member.md) - [Overview](https://docs.ghost.org/admin-api/members/overview.md) - [Updating a member](https://docs.ghost.org/admin-api/members/updating-a-member.md) - [Creating a Newsletter](https://docs.ghost.org/admin-api/newsletters/creating-a-newsletter.md) - [Overview](https://docs.ghost.org/admin-api/newsletters/overview.md) - [Sender email validation](https://docs.ghost.org/admin-api/newsletters/sender-email-validation.md) - [Updating a Newsletter](https://docs.ghost.org/admin-api/newsletters/updating-a-newsletter.md) - [Creating an Offer](https://docs.ghost.org/admin-api/offers/creating-an-offer.md) - [Overview](https://docs.ghost.org/admin-api/offers/overview.md) - [Updating an Offer](https://docs.ghost.org/admin-api/offers/updating-an-offer.md) - [Overview](https://docs.ghost.org/admin-api/pages/overview.md) - [Creating a Post](https://docs.ghost.org/admin-api/posts/creating-a-post.md) - [Deleting a Post](https://docs.ghost.org/admin-api/posts/deleting-a-post.md) - [Email only posts](https://docs.ghost.org/admin-api/posts/email-only-posts.md) - [Overview](https://docs.ghost.org/admin-api/posts/overview.md) - [Publishing a Post](https://docs.ghost.org/admin-api/posts/publishing-a-post.md) - [Scheduling a Post](https://docs.ghost.org/admin-api/posts/scheduling-a-post.md) - [Sending a Post via email](https://docs.ghost.org/admin-api/posts/sending-a-post.md) - [Updating a Post](https://docs.ghost.org/admin-api/posts/updating-a-post.md) - [Overview](https://docs.ghost.org/admin-api/themes/overview.md) - [Uploading a theme](https://docs.ghost.org/admin-api/themes/uploading-a-theme.md) - [Creating a Tier](https://docs.ghost.org/admin-api/tiers/creating-a-tier.md) - [Overview](https://docs.ghost.org/admin-api/tiers/overview.md) - [Updating a Tier](https://docs.ghost.org/admin-api/tiers/updating-a-tier.md) - [Deleting a user](https://docs.ghost.org/admin-api/users/deleting-a-user.md) - [Invites](https://docs.ghost.org/admin-api/users/invites.md) - [Overview](https://docs.ghost.org/admin-api/users/overview.md) - [Roles](https://docs.ghost.org/admin-api/users/roles.md) - [Updating a user](https://docs.ghost.org/admin-api/users/updating-a-user.md) - [Creating a Webhook](https://docs.ghost.org/admin-api/webhooks/creating-a-webhook.md) - [Deleting a Webhook](https://docs.ghost.org/admin-api/webhooks/deleting-a-webhook.md) - [Overview](https://docs.ghost.org/admin-api/webhooks/overview.md) - [Updating a Webhook](https://docs.ghost.org/admin-api/webhooks/updating-a-webhook.md) - [Architecture](https://docs.ghost.org/architecture.md): Ghost is structured as a modern, decoupled web application with a sensible service-based architecture. - [Breaking Changes](https://docs.ghost.org/changes.md): A catalog of critical changes between major Ghost versions - [Configuration](https://docs.ghost.org/config.md): For self-hosted Ghost users, a custom configuration file can be used to override Ghost’s default behaviour. This provides you with a range of options to configure your publication to suit your needs. - [Overview](https://docs.ghost.org/content-api.md): Ghost’s RESTful Content API delivers published content to the world and can be accessed in a read-only manner by any client to render in a website, app, or other embedded media. - [Authors](https://docs.ghost.org/content-api/authors.md): Authors are a subset of [users](/staff/) who have published posts associated with them. - [Errors](https://docs.ghost.org/content-api/errors.md) - [Filtering](https://docs.ghost.org/content-api/filtering.md) - [Pages](https://docs.ghost.org/content-api/pages.md): Pages are static resources that are not included in channels or collections on the Ghost front-end. The API will only return pages that were created as resources and will not contain routes created with [dynamic routing](/themes/routing/). - [Pagination](https://docs.ghost.org/content-api/pagination.md) - [Parameters](https://docs.ghost.org/content-api/parameters.md) - [Posts](https://docs.ghost.org/content-api/posts.md): Posts are the primary resource in a Ghost site. Using the posts endpoint it is possible to get lists of posts filtered by various criteria. - [Settings](https://docs.ghost.org/content-api/settings.md): Settings contain the global settings for a site. - [Tags](https://docs.ghost.org/content-api/tags.md): Tags are the [primary taxonomy](/publishing/#tags) within a Ghost site. - [Tiers](https://docs.ghost.org/content-api/tiers.md): Tiers allow publishers to create multiple options for an audience to become paid subscribers. Each tier can have its own price points, benefits, and content access levels. Ghost connects tiers directly to the publication’s Stripe account. - [Versioning](https://docs.ghost.org/content-api/versioning.md) - [Contributing To Ghost](https://docs.ghost.org/contributing.md): Ghost is completely open source software built almost entirely by volunteer contributors who use it every day. - [Ghost Developer FAQs](https://docs.ghost.org/faq.md): Frequently asked questions and answers about running Ghost - [Ghost CLI](https://docs.ghost.org/ghost-cli.md): A fully loaded tool to help you get Ghost installed and configured and to make it super easy to keep your Ghost install up to date. - [Hosting Ghost](https://docs.ghost.org/hosting.md): A short guide to running Ghost in a production environment and setting up an independent publication to serve traffic at scale. - [How To Install Ghost](https://docs.ghost.org/install.md): The fastest way to get started is to set up a site on **Ghost(Pro)**. If you're running a self-hosted instance, we strongly recommend an Ubuntu server with at least 1GB of memory to run Ghost. - [Introduction](https://docs.ghost.org/introduction.md): Ghost is an open source, professional publishing platform built on a modern Node.js technology stack — designed for teams who need power, flexibility and performance. - [Ghost On The JAMstack](https://docs.ghost.org/jamstack.md): How to use Ghost as a headless CMS with popular static site generators - [License](https://docs.ghost.org/license.md): Ghost is free software released under the [MIT License](http://en.wikipedia.org/wiki/MIT_License), which pretty much means you can do anything you want with it. The MIT License is one of the most free and open licenses in the world, and does not restrict how you use the software which it’s applied to. We believe open source software should be free. As in free. - [LLM](https://docs.ghost.org/llm.md): Industry-standard files that help AI tools efficiently index and understand Ghost documentation structure and content - [Logos](https://docs.ghost.org/logos.md): The Ghost brand is our pride and joy. We’ve gone to great lengths to make it as beautiful as possible, so we care a great deal about keeping it that way! These guidelines provide all of our official assets and styles, along with details of how to correctly use them. - [Memberships](https://docs.ghost.org/members.md): The native Members feature in Ghost makes it possible to launch a membership business from any Ghost publication, with member signup, paid subscriptions and email newsletters built-in. - [Migrating To Ghost](https://docs.ghost.org/migration.md) - [Migrating from BeeHiiv](https://docs.ghost.org/migration/beehiiv.md): Migrate from BeeHiiv and import your content to Ghost with this guide - [Migrating from Buttondown](https://docs.ghost.org/migration/buttondown.md): Migrate from Buttondown and import your content to Ghost with this guide - [Developer Migration Docs](https://docs.ghost.org/migration/custom.md): If no export tools exist for your current blogging system you’ll need to create one that generates a JSON file as described here. There is a full example at the end of this file. Please note that your final JSON file should have no comments in the final format. Those are only included here for readability and explanatory purposes. - [Migrating from Ghost To Ghost](https://docs.ghost.org/migration/ghost.md): Migrate from a self-hosted instance to Ghost(Pro) with this guide - [Migrating from Gumroad](https://docs.ghost.org/migration/gumroad.md): Migrate from Gumroad and import your customers to Ghost with this guide - [Migrating from Jekyll](https://docs.ghost.org/migration/jekyll.md): Migrate from Jekyll and import your content to Ghost with this guide - [Migrating from Kit](https://docs.ghost.org/migration/kit.md): Migrate from Kit and import your subscribers to Ghost with this guide - [Migrating from Mailchimp](https://docs.ghost.org/migration/mailchimp.md): Migrate from Mailchimp and import your content to Ghost with this guide - [Migrating from Medium](https://docs.ghost.org/migration/medium.md): Migrate from Medium and import your content to Ghost with this guide - [Migrating from Memberful](https://docs.ghost.org/migration/memberful.md): Migrate from Memberful and import your members to Ghost with this guide - [Migrating from Newspack](https://docs.ghost.org/migration/newspack.md): Migrate from Newspack and import your content to Ghost with this guide. You can manage a migration from Newspack yourself or, if you prefer, our team can take care of the migration for you. - [Migrating from Patreon](https://docs.ghost.org/migration/patreon.md): Migrate from Patreon and import your Patrons to Ghost with this guide - [Migrating from Squarespace](https://docs.ghost.org/migration/squarespace.md): Official guide: How to migrate from Squarespace to Ghost - [Migrating from Substack](https://docs.ghost.org/migration/substack.md): Migrate from Substack and import your content to Ghost with this guide - [Migrating from WordPress](https://docs.ghost.org/migration/wordpress.md): Migrate from WordPress and import your content to Ghost with this guide - [Email Newsletters](https://docs.ghost.org/newsletters.md): Sites using the Members feature benefit from built-in email newsletters, where all posts can be delivered directly to segments of your audience in just a few clicks. - [Product Principles & Roadmap](https://docs.ghost.org/product.md): Developing Ghost as a product is a complex process undertaken by a small number of people with a great deal of care. - [Publishing](https://docs.ghost.org/publishing.md): Posts are the primary entry-type within Ghost, and generally represent the majority of stored data. - [Recommendations](https://docs.ghost.org/recommendations.md) - [Ghost Security](https://docs.ghost.org/security.md): Ghost is committed to developing secure, reliable products utilising all modern security best practices and processes. - [Staff Users](https://docs.ghost.org/staff.md): Staff users within Ghost have access to the admin area with varying levels of permissions for what they can do. - [Ghost Handlebars Themes](https://docs.ghost.org/themes.md): The Ghost theme layer has been engineered to give developers and designers the flexibility to build custom publications that are powered by the Ghost platform. - [Assets](https://docs.ghost.org/themes/assets.md): Ghost themes support automatic image resizing, allowing you to use a minimal handlebars helper to output different image sizes. - [Content](https://docs.ghost.org/themes/content.md): The open-source Ghost editor is robust and extensible. - [Contexts](https://docs.ghost.org/themes/contexts.md): Each page in a Ghost theme belongs to a context, which determines which template is used, what data will be available and what content is output by the `{{body_class}}` helper. - [Custom Settings](https://docs.ghost.org/themes/custom-settings.md): Custom theme settings are a powerful tool that allows theme developers to configure custom settings that appear in Ghost Admin — making it easy for site owners to make stylistic choices without needing to edit theme files. - [GScan](https://docs.ghost.org/themes/gscan.md): Validating your Ghost theme is handled efficiently with the GScan tool. GScan will check your theme for errors, deprecations and compatibility issues. GScan is used in several ways: - [Data Helpers](https://docs.ghost.org/themes/helpers/data.md): Data helpers are used to output data from your site. Use this reference list to discover what each handlebars helper can do when building a custom Ghost theme. - [Authors](https://docs.ghost.org/themes/helpers/data/authors.md) - [Comments](https://docs.ghost.org/themes/helpers/data/comments.md): Usage: `{{comments}}` - [@Config](https://docs.ghost.org/themes/helpers/data/config.md): The `@config` property provides access to global data properties, which are available anywhere in your theme. - [Content](https://docs.ghost.org/themes/helpers/data/content.md): Usage: `{{content}}` - [@Custom](https://docs.ghost.org/themes/helpers/data/custom.md): The `@custom` property provides access to custom theme settings, which are available anywhere in your theme. - [Date](https://docs.ghost.org/themes/helpers/data/date.md): Usage: `{{date value format="formatString"}}` - [Excerpt](https://docs.ghost.org/themes/helpers/data/excerpt.md): Usage: `{{excerpt}}` - [Facebook](https://docs.ghost.org/themes/helpers/data/facebook.md): Usage: `{{facebook_url}}` or `{{facebook_url @site.facebook}}` or `{{facebook_url "myfavouritepage"}}` - [Img_url](https://docs.ghost.org/themes/helpers/data/img_url.md): Usage: `{{img_url value}}` - [Link](https://docs.ghost.org/themes/helpers/data/link.md): Usage: `{{#link href="/about/"}}About{{/link}}` - [Meta Data](https://docs.ghost.org/themes/helpers/data/meta_data.md): Usage: `{{meta_title}}` and `{{meta_description}}` and `{{canonical_url}}` - [Navigation](https://docs.ghost.org/themes/helpers/data/navigation.md): Usage: `{{navigation}}` and `{{navigation type="secondary"}}` - [@Page](https://docs.ghost.org/themes/helpers/data/page.md): The `@page` object provides access to page properties, which are available anywhere in your theme. - [Post](https://docs.ghost.org/themes/helpers/data/post.md): Usage: `{{#post}}{{/post}}` or `{{#foreach posts}}{{/foreach}}` - [Price](https://docs.ghost.org/themes/helpers/data/price.md): Usage: `{{price plan}}` - [Readable Url](https://docs.ghost.org/themes/helpers/data/readable_url.md): Usage: `{{readable_url URL}}` - [Recommendations](https://docs.ghost.org/themes/helpers/data/recommendations.md): Usage: `{{recommendations}}` - [@Site](https://docs.ghost.org/themes/helpers/data/site.md): The `@site` property provides access to global settings, which are available anywhere in your theme: - [Social_url](https://docs.ghost.org/themes/helpers/data/social_url.md): Usage: `{{social_url type="platform"}}` (e.g., `{{social_url type="facebook"}}`, `{{social_url type="bluesky"}}`) - [Tags](https://docs.ghost.org/themes/helpers/data/tags.md): Usage: `{{tags}}` or `{{#foreach tags}}{{/foreach}}` in `tag.hbs` you can use `{{#tag}}{{/tag}}` to access tag properties - [Tiers](https://docs.ghost.org/themes/helpers/data/tiers.md): Usage: `{{tiers}}`/ `{{tiers prefix=":" separator=" - " lastSeparator=", " suffix='options'}}` - [Title](https://docs.ghost.org/themes/helpers/data/title.md): Usage: `{{title}}` - [Total_members](https://docs.ghost.org/themes/helpers/data/total_members.md): Usage: `{{total_members}}` - [Total_paid_members](https://docs.ghost.org/themes/helpers/data/total_paid_members.md): Usage: `{{total_paid_members}}` - [Twitter](https://docs.ghost.org/themes/helpers/data/twitter.md): Usage: `{{twitter_url}}` or `{{twitter_url @site.twitter}}` or `{{twitter_url "myfavouritepage"}}` - [Url](https://docs.ghost.org/themes/helpers/data/url.md): Usage: `{{url}}` - [Functional Helpers](https://docs.ghost.org/themes/helpers/functional.md): Functional helpers are used to work with data objects. Use this reference list to discover what each handlebars helper can do when building a custom Ghost theme. - [Foreach](https://docs.ghost.org/themes/helpers/functional/foreach.md): Usage: `{{#foreach data}}{{/foreach}}` - [Get](https://docs.ghost.org/themes/helpers/functional/get.md): Usage: `{{#get "posts"}}{{/get}}` - [Has](https://docs.ghost.org/themes/helpers/functional/has.md): Usage: - [If](https://docs.ghost.org/themes/helpers/functional/if.md): Usage: `{{#if featured}}{{/if}}` - [Is](https://docs.ghost.org/themes/helpers/functional/is.md): Usage: `{{#is "contexts"}}` - [Match](https://docs.ghost.org/themes/helpers/functional/match.md): Usage: `{{#match @custom.color_scheme "=" "Dark"}} class="dark-mode"{{/match}}` - [Unless](https://docs.ghost.org/themes/helpers/functional/unless.md): Usage: `{{#unless featured}}{{/unless}}` - [Utility Helpers](https://docs.ghost.org/themes/helpers/utility.md): Utility helpers are used to perform minor, optional tasks. Use this reference list to discover what each handlebars helper can do when building a custom Ghost theme. - [Asset](https://docs.ghost.org/themes/helpers/utility/asset.md): Usage: `{{asset "asset-path"}}` - [Block](https://docs.ghost.org/themes/helpers/utility/block.md): Usage: `{{{block "section"}}}` and `{{#contentFor "section"}} content {{/contentFor}}` - [Body_class](https://docs.ghost.org/themes/helpers/utility/body_class.md): Usage: `{{body_class}}` - [Concat](https://docs.ghost.org/themes/helpers/utility/concat.md): Usage: `{{concat "a" "b" "c"}}` - [Encode](https://docs.ghost.org/themes/helpers/utility/encode.md): Usage: `{{encode value}}` - [Ghost_head/Foot](https://docs.ghost.org/themes/helpers/utility/ghost_head_foot.md): Usage: `{{ghost_head}}` and `{{ghost_foot}}` - [Link_class](https://docs.ghost.org/themes/helpers/utility/link_class.md): Usage: `{{link_class for="/about/"}}` - [Log](https://docs.ghost.org/themes/helpers/utility/log.md): Usage: `{{log value}}` - [Pagination](https://docs.ghost.org/themes/helpers/utility/pagination.md): Usage: `{{pagination}}` - [Partials](https://docs.ghost.org/themes/helpers/utility/partials.md): Usage: `{{> "partial-name"}}` - [Plural](https://docs.ghost.org/themes/helpers/utility/plural.md): Usage: `{{plural value empty="" singular="" plural=""}}` - [Post_class](https://docs.ghost.org/themes/helpers/utility/post_class.md): Usage: `{{post_class}}` - [Prev_post & Next_post](https://docs.ghost.org/themes/helpers/utility/prev_next_post.md): Usage: `{{#prev_post}}{{title}}{{/prev_post}}` - `{{#next_post}}{{title}}{{/next_post}}` - [Reading_time](https://docs.ghost.org/themes/helpers/utility/reading_time.md): Usage: `{{reading_time}}` - [Search](https://docs.ghost.org/themes/helpers/utility/search.md): Usage: `{{search}}` - [Translate](https://docs.ghost.org/themes/helpers/utility/translate.md): Usage: `{{t}}` - [Members](https://docs.ghost.org/themes/members.md): The Members feature allows you to turn any site into a membership business with member signup, paid subscriptions and email newsletters. - [URLs & Dynamic Routing](https://docs.ghost.org/themes/routing.md): Routing is the system that maps URL patterns to data and templates within Ghost. It comes pre-configured by default, but it can also be customized extensively to build powerful custom site structures. - [Search](https://docs.ghost.org/themes/search.md): Ghost has a native search feature that can be accessed via URL or implemented directly into themes using a single data attribute. - [Structure](https://docs.ghost.org/themes/structure.md): A Ghost theme contains static HTML templates that make use of helpers to output data from your site, and custom CSS for styling. - [Trademark](https://docs.ghost.org/trademark.md) - [How To Update Ghost](https://docs.ghost.org/update.md): Learn how to update your self-hosted Ghost install to the latest version - [Webhooks](https://docs.ghost.org/webhooks.md): Webhooks are specific events triggered when something happens in Ghost, like publishing a new post or receiving a new member ## Optional - [Tutorials](https://ghost.org/tutorials/) - [Developer Forum](https://forum.ghost.org/)