Ghost blog

Ghost blog

Just a blogging platform, elgant modern and open source. If fact this website is running on Ghost.

TL;DR

node.js project for blogging

frontend:  EMBER.js(admin)

backend: express.js

Database: MySQL, SQLite, bookshelf.js, knex

API: REST API, Zapier automation

static websites: Gastby

JAM stack superstar


Ghost blog

The kickstarter video is amazing and the project culture from leadership, contrubution, maintainers etc...

We're a proud non-profit organisation building open source technology for journalism

Ghost was founded in April 2013, after a very successful Kickstarter campaign to create a new platform focused solely on professional publishing. Our mission is to create the best open source tools for independent journalists and writers across the world, and have a real impact on the future of online media.

Today Ghost powers an incredible range of websites; from individual bloggers who are just getting started, to large teams of writers and editors at some of the largest organisations in the world. We've built a sustainable business around a free core application, funded by a premium platform as a service to run it on.

3,000,000+Ghost installs to date

Behind the scenes, we're just a group of weird, fun-loving humans who enjoy experimenting with new technology. We believe in creating as much freedom in the world as we can, and everything we do is based on that core principle.

Ghost Foundation Team

Our virtual headquarters is in Singapore, but we're a fully remote team spread all over the world. Between us, we cover 5 continents, 13 nationalities and 12 languages. All the work we do happens online, with no office to speak of. We use great tools like Slack, Zoom and GitHub to collaborate efficiently, harnessing the formidable power-of-the-internet™ to get things done.

We spend our days talking to each other and developing beautiful, open source products using modern technology to power the future of online publishing.

GitHub - TryGhost/Ghost: Turn your audience into a business. Publishing, memberships, subscriptions and newsletters.
Turn your audience into a business. Publishing, memberships, subscriptions and newsletters. - GitHub - TryGhost/Ghost: Turn your audience into a business. Publishing, memberships, subscriptions and...

Contributing to Ghost

Ghost is completely open source software built almost entirely by volunteer contributors who use it every day.

The best part about structuring a software project this way is that not only does everyone get to own the source code without restriction, but as people all over the world help to improve it: Everyone benefits.

Core team

In addition to full time product team working for Ghost Foundation, there are a number of community members who have contributed to the project for a lengthy period of time and are considered part of the core team. They are:

How core team members are added

People typically invited to join the Core Team officially after an extended period of successful contribution to Ghost and demonstrating good judgement. In particular, this means having humility, being open to feedback and changing their mind, knowing the limits of their abilities and being able to communicate all of these things such that it is noticed. Good judgement is what produces trust, not quality, quantity or pure technical skill.

When we believe a core contributor would make a great ambassador for Ghost and feel able to trust them to make good decisions about its future - that’s generally when we’ll ask them to become a member of the formal Core Team.

Core Team members are granted commit rights to Ghost projects, access to the Ghost Foundation private Slack, and occasionally join our international team retreats.

Community guidelines

All participation in the Ghost community is subject to our incredibly straightforward code of conduct and wider community guidelines.

The vast majority of the Ghost community is incredible, and we work hard to make sure it stays that way. We always welcome people who are friendly and participate constructively, but we outright ban anyone who is behaving in a poisonous manner.

Ghost Trademark

Ghost is a registered trademark of Ghost Foundation Ltd. We’re happy to extend a flexible usage license of the Ghost trademark to community projects, companies and individuals, however it please read the Ghost trademark usage policy before using the Ghost name in your project.

Development guide

If you’re a developer looking to help, but you’re not sure where to begin: Check out the good first issuelabel on GitHub, which contains small pieces of work that have been specifically flagged as being friendly to new contributors.

Or, if you’re looking for something a little more challenging to sink your teeth into, there’s a broader help wanted label encompassing issues which need some love.

When you’re ready, check out the full Ghost Contributing Guide for detailed instructions about how to hack on Ghost Core and send changes upstream.

Ghost is currently hiring Product Engineers! Check out what it’s like to be part of the team and see our open roles at careers.ghost.org

Other ways to help

The primary way to contribute to Ghost is by writing code, but if you’re not a developer there are still ways you can help. We always need help with:

  • Helping our Ghost users on the forum
  • Creating tutorials and guides
  • Testing and quality assurance
  • Hosting local events or meetups
  • Promoting Ghost to others

There are lots of ways to make discovering and using Ghost a better experience.

Donations

As a non-profit organisation we’re always grateful to receive any and all donations to help our work, and allow us to employ more people to work on Ghost directly.

Partnerships

We’re very happy to partner with startups and companies who are able to provide Ghost with credit, goods and services which help us build free, open software for everyone. Please reach out to us hello@ghost.org if you’re interested in partnering with us to help Ghost.

Open Collective

OpenCollective

New: We have a number of ongoing donation and sponsorship opportunities for individuals or companies looking to make ongoing contributions to the open source software which they use on Open Collective.


Architecture

Ghost is structured as a modern, decoupled web application with a sensible service-based architecture.

  1. A robust core JSON API
  2. A beautiful admin client app
  3. A simple, powerful front-end theme layer

These three areas work together to make every Ghost site function smoothly, but because they’re decoupled there’s plenty of room for customisation.


How things fit together

Ghost Architecture

Physically, the Ghost codebase is structured in two main directories:

  • core - Contains the core files which make up Ghost
  • content - Contains the files which may be added or changed by the user such as themes and images

Ghost-CLI

Orchestrating these different components is done via a comprehensive CLI and set of utilities to keep everything running and up to date.

Philosophy

Ghost is architected to be familiar and easy to work with for teams who are already used to working with JavaScript based codebases, whilst still being accessible to a broad audience. It’s neither the most bleeding-edge structure in the world, nor the most simple, but strives to be right balance between the two.

You can help build the future. Ghost is currently hiring Product Engineers - check out what it’s like to be part of the team and see our open roles at careers.ghost.org

Ghost Core

At its heart, Ghost is a RESTful JSON API — designed to create, manage and retrieve publication content with ease.

Ghost’s API is split by function into two parts: Content and Admin. Each has its own authentication methods, structure and extensive tooling so that common publication usecases are solved with minimal effort.

Whether you want to publish content from your favourite desktop editor, build a custom interface for handling editorial workflow, share your most recent posts on your marketing site, or use Ghost as a full headless CMS, Ghost has the tools to support you.

Content API

Ghost’s public Content API is what 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.

Access control is managed via an API key, and even the most complex filters are made simple with our query language. The Content API is designed to be fully cachable, meaning you can fetch data as often as you like without limitation.

Admin API

Managing content is done via Ghost’s Admin API, which has both read and write access used to create and update content.

The Admin API provides secure role-based authentication so that you can publish from anywhere with confidence, either as a staff user via session authentication or via an integration with a third-party service.

When authenticated with the admin or owner role, the Admin API provides full control for creating, editing and deleting all data in your publication, giving you even more power and flexibility than the standard Ghost admin client.




Data & Storage

Ghost ships with the Bookshelf.js ORM layer by default allowing for a range of databases to be used. Currently SQLite3 is the supported default in development while MySQL is recommended for production. Other databases are available, and compatible, but not supported by the core team.

Additionally, while Ghost uses local file storage by default it’s also possible to use custom storage adapters to make your filesystem completely external. There are fairly wide range of pre-made storage adapters for Ghost already available for use.

Ghost on the JAMstack

How to use Ghost as a headless CMS with popular static site generators

Ghost ships with a default front-end theme layer built with Handlebars, but based on its flexible architecture it also be used as a headless CMS with third party front-end frameworks. We have setup guides for most of the most popular frameworks and how to use Ghost with them.

Next.js
Gatsby.js
Hexo
Nuxt.js
VuePress
Gridsome
Eleventy
Custom

Tips for using Ghost headless

Something to keep in mind is that Ghost’s default front-end is not just a theme layer, but also contains a large subset of functionality which is commonly required by most publishers, including:

  • Tag archives, routes and templates
  • Author archives, routes and templates
  • Generated sitemap.xml for SEO
  • Intelligent output and fallbacks for SEO meta data
  • Automatic Open Graph structured data
  • Automatic support for Twitter Cards
  • Automatic Google AMP routes and templates
  • Custom routes and automatic pagination
  • Front-end code injection from admin

When using a statically generated front-end, all of this functionality must be re-implemented. Getting a list of posts from the API is usually the easy part, while taking care of the long tail of extra features is the bulk of the work needed to make this work well.

NATIVE ANALYTICS

Understand what's working. Detailed engagement analytics for your audience so you can understand what content is getting the most attention, and who your biggest fans are.

Then create more for them.

SUBSCRIPTION COMMERCE

Fund your work with subscription revenue.Connect your Stripe account and offer premium content to your audience. Our creators are making over $8 million per year, while Ghost takes 0% payment fees.

POWERFUL INTEGRATIONS

Will it play nicely with my other tools?Referral programs, push notifications, social sharing, payment gateways, A/B testing, desktop editors, mobile apps, comments. Yes.

BUILT TO LAST

A product you can depend on. Ghost is open source, independent, and funded 100% by its users.

No investors. No bullshit.