Repository navigation
Closed
Labels
core team[triage] Being looked at by the core Ghost team[triage] Being looked at by the core Ghost team
Description
We're working towards releasing Ghost 6.0. As with all major version bumps, there will be some breaking changes, especially around the API.
This issue is a placeholder where we'll keep track of all the breaking changes we are making. The intention is to have one place to point to - but also make this transparent for the community.
Breaking changes
This list isn't final until 6.0 is shipped.
- Dropping support for Node.js v18
v18 is EOL now, and no longer supported upstream, we're updating to reflect this - Dropping support for Node.js v20
Node.js v22 includes some important new features that we want to use to make building Ghost easier - including TypeScript and ESM support. Maintaining backwards compatibility with v20 in this case doesn't feel super valuable given the advantages of being v22 only and the timing of the 6.0 release means we get to call it out loud as a breaking change. - Return max 100 results from Ghost's APIs (deprecating
?limit=all)
Having the ability to return all results made sense when Ghost was a small blogging tool. Now it has significant performance issues.?limit=allwill be deprecated, and if used will only return max 100 results. Setting limit to a number higher than 100 will also result in a max of 100 results. - Removing AMP
Our AMP feature has been deprecated for quite some time. It will be removed in 6.0 - Removing
GET /ghost/api/admin/session/endpoint - this is an unused endpoint. UseGET /ghost/api/admin/users/me/instead. - Removing
created_by&updated_byfrom everywhere
These fields were deprecated a while ago and are not used in any meaningful way in the codebase. Audit logging is done via theactionssystem which replaced usage of these fields - Ensuring that all users have an
ObjectIDfor their ID. This means migrating any existing users who had an ID of1to anObjectID, and changing the system so that the first user created no longer has a hardcoded ID of1. This allows us to remove codepaths that had to check whether the ID was1or anObjectID(and allow us to properly type this field) as well as remove any assumptions that the owner ID is always1. It is no longer safe to assume the user with an ID of1is the default/owner user - Stopped serving files without extensions from the theme root folder & correctly 404 for missing theme assets.
Reacted by Cathy Sarisky, Jannis Fedoruk-Betschki, Yann Pringault and omnibus2211
Metadata
Metadata
Assignees
Labels
core team[triage] Being looked at by the core Ghost team[triage] Being looked at by the core Ghost team
Activity
[-]Breaking Changes for 6.0[/-][+]🔥 Breaking Changes for 6.0[/+]cathysarisky commentedon Jun 19, 2025
@ErisDS , it might be kind to self hosters to update what's here: https://ghost.org/docs/faq/node-versions/
A version of node that'll be discontinued this summer probably shouldn't be the recommended version today? Are there any blockers to recommending 22 now, while still on Ghost 5.x?
ErisDS commentedon Jun 20, 2025
You're correct, in an ideal world that would be the case. But also, we do usually change the recommended node version and drop node versions outside of majors (although in line with Node itself, roughly).
We haven't yet finished the internal process we use internally in order to officially declare v22 "recommended", so I wouldn't feel comfortable changing it yet, and I do think it's all going to come together at the same time as 6.0.
🔥 Removed Node.js v18 support (#23964)
137 remaining items
ngeorger commentedon Jul 21, 2025
Thank you very much, regards!
🔥 Removed Node.js v18 support (#23964)
🔥 Removed Node.js v20 support (#24004)
Removed AMP app, added redirectAmpUrls middleware (#23981)
🔥 Removed AMP from core (#24055)
Removed AMP from admin (#24043)
🔥 Enforced max `limit` of 100 in `{{#get}}` helper (#24145)
🔥 Removed GET /session/ endpoint (#24148)
Removed amp and amp_gtag_id from settings (#24099)
ErisDS commentedon Aug 4, 2025
The breaking changes list is final and officially published here now: https://docs.ghost.org/changes#ghost-6-0