This document aims to clarify the big picture vision for where we want Ghost to be in terms of features and function when we declare it version 0.6.
Note: There are several places where further clarification is needed in terms of more detailed write-ups, research, and issues being clarified or raised. These are a work in progress
We took a lot of time this year to rewrite major parts of the codebase, and that resulted in a big gap between releases. We need to make up for that by shipping features in order to reach feature parity with other similar platforms. This guide aims to clarify what features are missing, their importance and how we are going to ship them.
- Spell check
- Code Injection
- Sitemaps
- Post Scheduling
- Tag Management
- Next/Prev links (the query helper)
- Public API (OAuth)
- Navigation menu
- Custom Permalinks
- Post Filtering
These are the top missing features, ordered by importance and determined by a mix of most requests / votes and the value of that feature vs its complexity. Varying technical complexity prevents us from shipping in exactly this order, however it is important to have clear priorities.
In detail:
This one has always been a bit of an embarrassment so we're super keen to ship it. Recently we developed a plan to get it out the door, so it's currently a WIP expected to ship in weeks rather than months.
Code Injection provides users with a simple interface in the admin panel to paste code snippets into so they don't have to edit their theme to add things like GA.
This has an open PR, which got blocked firstly because I wanted to test how it behaved with various code snippets and themes. As a result of testing, it seemed best to ship it with the ability to detect if, for example, the active theme has the {{ghost_head}}
helper. Theme feature detection is tracked in issue #4319.
Moving forwards, we should merge the PR with the feature behind a config flag. The theme feature detection issue will be my focus after the editor and should be ready for other people to help with in a week or so.
A small feature that's important for SEO and therefore key to being an awesome blogging platform. This feature is a WIP at present but is expected to land within the month.
It has become apparent that this feature is blocking bigger organisations from using Ghost. It will be technically challenging to solve. We're currently researching potential ways to solve it / speccing it out.
The interface for managing, editing and removing tags is going to provide for all kinds of interesting opportunities.
It is currently partially implemented behind the config flag 'tagUI', and also requires several updates to the Tag and Post API to make all the features possible.
This is an ongoing WIP with a large scope. It needs issues raising for the next steps.
This for including a link to the next or previous post at the bottom of a post. It depends on an API update (see issue #4262) and also the query helper.
The API work is planned and marked high priority but not yet in progress. The query helper needs to be specced out and have issues raised for it.
Adding OAuth to the API so that external apps can access the API safely is getting a lot of pressure from the community. It should add extra value by encouraging more contributions. It is currently blocked on a tree of dependencies stemming all the way back to permissions migrations.
First and foremost, we need to start unblocking progress. The first thing we need to solve is permissions migrations, which is currently a stalled issue. There are also several issues that could be worked on in parallel that need clarifying.
Similar to code injection, allowing users to build a simple navigation menu will help reduce the need to edit themes. The idea is to provide a simple UI to set the title and URL, add a new item and reorder items.
This issue is currently being specced.
Ghost has supported all manner of different permalink formats for some time, but only by editing the setting directly in the DB. The UI for this has been designed and is ready to build. There is also some functional work needed to ensure all the permutations work 100% and are well-tested.
Some of this work is in progress, other parts need issues.
For users with a lot of posts, the content screen doesn't currently cut the mustard. Adding a menu to allow users to filter this is a step in the right direction, but is intended as an intermediary step whilst we work on adding full search capabilities.
This issue has a stalled PR and needs picking up again.
- Permissions Migration
- File System Abstraction
- Image Processing
- DB Migration Improvements
Each of these projects will help us to build out major features for Ghost. Below is a quick blurb on each item - none of them are currently in progress.
Issue #3910
Currently we have a set of permissions fixtures which are loaded into the DB when Ghost is started. These have undergone one wholesale change in the past, so we were able to simply remove the old permissions and create new ones. Now we need to create a simple way to add new permissions for additional endpoints.
The issue needs rewriting & improving.
Issue #2852
Assuming that it's ok to use fs, and that all the images, themes and other bits and pieces will be in the local file system is a bad thing. It makes it hard to use Ghost with a cdn and also has implications for hosts with a transient file system like Heroku.
This work is partly done, we have a storage abstraction for images, but it's not used for everything which it ought to be. We also need to make it pluggable in a simple way so that devs can provide a different storage layer with a simple config change.
The issue needs rewriting & improving.
Issue #4453 Adding Imagemagick as a dependency is too complicated, so we need a pure JS way to do resizing, cropping and removing of exif data for images uploaded to Ghost.
So far we're able to add, remove, rename and drop unique constraints on columns in Ghost. In order to make some improvements and build more features we also need to be able to change column types / sizes and we need to make the whole process tonnes easier.
This needs better issues.
There are obviously numerous other features and projects that we need to deliver, like search, i18n, post revisions and diffs, the app platform and tonnes more. After 0.6 the likely focus will be on building one or two bigger features like search & image manipulation. A 'Road to 0.7' issue will appear closer to the time.