Hi! I’ve searched the entire forum and even spent hours on Google/GPT, but it seems like this topic has been forgotten.
I honestly don’t understand the reasoning behind not having a native file manager in Ghost.
As far I see, Ghost is meant for publishers and that often means news websites with massive content archives.
When you’re dealing with sites that have more than 70k articles, that usually means at least 50k images.
Editors often need to reuse images. For example, a politician’s photo is typically used across multiple articles.
Re-uploading the same image multiple times is not only inefficient in terms of cache and storage, but it also forces authors to maintain their own external file organization system. Why would a user want to manage files separately instead of having everything integrated within a single platform?
I believe this is one of the main reasons why many users coming from other CMS platforms never migrate to Ghost. The lack of a proper media library makes it very difficult to manage content at scale.
I sense this is partly a workflow issue to get used to, and also include learning how to take advantage of snippets for content that tends to be reused in ones article.
About the media library I can agree to the idea of storage capacity but unlike a photo storing site the images you upload on sites like Ghost will be compressed.
The latest featured image I uploaded yesterday was about 11mb and when downloading it from my Ghost site right now I get a file around 1.1 mb.
Which makes sense cause the cost for storing images files online in general are quite steep. So are the costs for hosting big and heavy websites.
On top of that you’d still need to tag your files accordingly otherwise you’ll never find them back anyway. Which actually leads me back to the workflow issue.
I considered a few times to put a simple media library for the Ghost sites that I’m hosting on Synaps Media, but a good media library implementation requires a neat work. Just showing a file explorer for images (or files and media) folders will not help a lot, because images folder also have auto resized versions of your uploads. If you accidentally pick the wrong version of an image, than outcome will be poor.
If you have some images you put to posts very often, as @Cowgirl mentioned, snippets is also a good solution. You will just make that image a snippet, and then it will be always in the plus menu. This will cover one aspect of the “efficiency” issue, fast loading. Other aspect would be the storage size, but this can be (even should be) solved without media library. If an image doesn’t have any reference anymore, it should be automatically cleaned up. You should not need to remove an image from media library manually.
Also, as far as I know, big publishers use special tools for their media library anyway, since they have stock photo or agency subscriptions they prefer to use a different, fresh photo from there every time.
I was planning to do this same thing after investigating for a week and finding the huge issues with the media management in ghost.
Probably will end up doing it “outside” of ghost, and just hotlinking the images on post with a subdomain but I am not sure how the resize can be managed.
I was thinking to add a JS to resize them but still considering the options.
I think the media requires some love from the team, but not sure what the solutions are right now, as I am just starting to understand how this works.
“We will never have a file manager unless someone from the community builds it.”
To me, this is quite frustrating. One of Ghost’s biggest advantages is how quickly you can set up a site and have it running smoothly. But that advantage disappears if you end up spending months building a basic file manager that, in other CMS platforms, is available out of the box.
Yes, snippets and external tools can help in very specific cases, but they don’t address the fundamental issue: at scale, publishers need a proper media library. Without it, workflows become fragmented, editors waste time, and the migration barrier from other CMS platforms remains extremely high.
And just to clarify: I’m not even talking about giant publishers — of course they will have their own editorial teams and external infrastructure to handle media. But they are the minority. The vast majority are small and medium publishers, who don’t have the resources to build or maintain an external media management system. For them, the lack of a native media library is a huge limitation.
So while I understand Ghost’s philosophy of keeping things lean, I honestly think this is one of those features where the lack of a native solution undermines the very efficiency Ghost is supposed to provide.
Here’s an opposing viewpoint, though somewhat agreeing with @muratcorlu and @Cowgirl . I used WP for 8 years before moving to Ghost. My WP media library grew to over 1 Gb (~16,000 images, including the resized versions). Finding images was always a problem without all the keywording, and mainly relied upon upload dates.
But the images originated from my fully-keyworded Lightroom library, also catalogued by image quality, date, camera, whatever. Now I use that, crop, upload and embed the image, which takes less time and means I don’t have to duplicate keywording etc. It also means changes to the crop, tweaks to the image, or the watermark are done in Lightroom, which keeps a record.
Anyone who uses a lot of images is likely to have a sytem outside Ghost to manage them. For a Ghost media library to be really useful, it would have to include all this functionality (and, for commercial users, interact with Getty Images etc) … and, in doing so, recapitulate existing tools.
If things are properly tagged from the beginning one can use Lightroom (I never used it for this purpose), Breezebrowser Pro (Windows) or PhotoMechanic (Mac) for keywording, proofing, renaming and watermarking.
Which are the four useful basics in this.
Personally I believe Breezebrowser Pro is a way better product but I work on a Mac so for now I just use Adobe Bridge for renaming and tagging.
I have some 250.000 high res photos online on my Smugmug and since all of them are tagged it takes me less than five minutes to find and upload a photo.
I am on Ghost Pro and upgraded my subscription to get away from the 5mb limit in size. To resize my files to that would have taken longer.
I see the value in the workflows you’ve described — for people who already manage their photo archives professionally with tools like Lightroom, Smugmug, or PhotoMechanic, it makes total sense to keep using them and just upload the final asset into Ghost.
The challenge is that these tools are built for personal workflows, not for shared editorial use. A Lightroom catalog or a Smugmug account isn’t something that multiple Ghost users can easily access and reuse. That means every editor ends up maintaining their own siloed archive.
From my perspective as a developer trying to offer Ghost as a platform to clients, this becomes a real limitation. Most of them don’t have complex infrastructures or external DAM systems — they just expect the CMS to provide a straightforward way to manage and reuse files.
So I think the discussion is not about replacing specialized software like Lightroom, but about providing a basic, shared media library inside Ghost. Something simple enough to let editors reuse assets across users and publications, without relying on personal tools that don’t scale for collaborative teams.
Sorry but I don’t get where this is going. If one work with photos [which has been my bread and butter for some plus 15 years] one must have them organised no matter what.
I know plenty of editorial outlets and organisations that rely on Smugmug, Photoshelter and Flickr even for their media assets. Others rely on locally stored media and products like Photomechanic to find them.
I also worked as an editor in chief for a news site built on Wordpress and reusing images from previous uploads was more of a hazzle than going for a new one, because of the things @muratcorlu mentioned earlier about resizing.
I understand your perspective, but for small or low-budget news sites, the reality is very different. External tools are often expensive, and many users cannot justify the cost of a subscription. Organizing files locally is not feasible for multi-user editorial teams. Having worked more than 20 years as a developer, I can assure you that you cannot assume users have their media perfectly catalogued — you have to expect anything from them and provide tools to manage it properly.
Since editors are already used to a certain workflow in the CMS, having to leave it, find a file in an external tool, copy a link, and paste it back adds friction, increases errors, and slows down their work. If users realize that this is the workflow they are expected to follow, it is very likely to result in a firm “no” from them.
Comparing Ghost to WordPress is also not a strong point, since WordPress is a multi-purpose CMS horrendously optimized in general. If you expect good performance, you have to dedicate a lot of work to optimize it and make it run smoothly, and reusing files can be cumbersome at scale.
The reality is that editors need a shared, simple media library inside the CMS to collaborate efficiently, reuse assets, and maintain consistency across multiple publications. The fact that so many posts in the forum request this feature shows there’s a real demand beyond professional photography workflows.
If Ghost wants to reach a wider audience, it needs to incorporate a proper file management system — and that is exactly what this post is about.
WordPress, and the way its database is structured, is so generic that a single database table tends to be used to store absolutely everything, which has a noticeable impact on performance.
CMSs based on Symfony, like Drupal, have solid media libraries with support for reuse, tagging, and metadata, but they tend to be very enterprise-oriented, and their UI is often not very friendly.
Other CMSs based on Laravel provide polished asset managers with folders, search, and custom fields. You can also build a Laravel-based CMS from scratch using libraries like Spatie to implement a media library, but the downside of these approaches, besides the deployment process, is that entity creation has to be done manually, which is not as straightforward as in most headless CMSs.
In any case, the implementation is usually not as quick as with Ghost or another headless CMS and requires a specific analysis and development for each situation.
I could go into more detail about the pros and cons of each CMS and the frameworks they’re built on, but that’s probably beyond the scope of this post.
Following along on the images but going away from the library and just talking backups… I’d absolutely love if we could download a backup of our current media library.
I’ve gone over "How can I backup my site data?” (https://ghost.org/docs/faq/manual-backup/) which was straightforward but didn’t include the media library. I store images I use on my computer in folders and am worried if I ever need to recover I’d have to manually connect which images went on which post.
I emailed and was told:
Ghost(Pro) is a managed service so you don’t need to worry about data backups. Site archives are available on a one-off basis for specific uses such as moving your site or creating a copy of your site on a new Ghost instance.
If you’re not planning to move right now you shouldn’t need an archive :)
But for the peace of mind it would be nice to have a yearly backup including the images.