Native image editing - Ghost Changelog

Ghost now has a built-in, native image editor, so you can make quick adjustments to uploaded media without interrupting your flow.

Sometimes you might upload a photo to a post and find that it's almost perfect... if only you could just tweak it a little bit with a simple crop and a filter. In the past that would have involved downloading the image, opening another app to adjust things, exporting it, then uploading it to Ghost again.

Now, all it takes is a few clicks to adjust the image right inside the editor:

0:00
/0:27
    </figure><p>Once complete, the edited image is automatically saved and you can pick right back up where you left off. No extra apps required.</p><p>Simple edits are fun, but more powerful annotations and adjustments are also possible. For example, if you publish content with screenshots, you might want to highlight certain areas and make sure that a white background on your image doesn't blend into the white background of your site. </p><p>By adding a zoom, arrow and border, it's possible to quickly draw attention to the area of the image you want people to focus on:</p><figure class="kg-card kg-video-card kg-width-wide" data-kg-thumbnail="https://ghost.org/changelog/content/media/2023/10/Screenshot-2023-10-02-at-15.15.33-converted_thumb.jpg" data-kg-custom-thumbnail="">
        <div class="kg-video-container">
            <video src="https://ghost.org/changelog/content/media/2023/10/Screenshot-2023-10-02-at-15.15.33-converted.mp4" poster="https://img.spacergif.org/v1/1266x790/0a/spacer.png" width="1266" height="790" playsinline="" preload="metadata" style="background: transparent url('https://ghost.org/changelog/content/media/2023/10/Screenshot-2023-10-02-at-15.15.33-converted_thumb.jpg') 50% 50% / cover no-repeat;"></video>
            <div class="kg-video-overlay">
                <button class="kg-video-large-play-icon">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                        <path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"></path>
                    </svg>
                </button>
            </div>
            <div class="kg-video-player-container">
                <div class="kg-video-player">
                    <button class="kg-video-play-icon">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                            <path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"></path>
                        </svg>
                    </button>
                    <button class="kg-video-pause-icon kg-video-hide">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                            <rect x="3" y="1" width="7" height="22" rx="1.5" ry="1.5"></rect>
                            <rect x="14" y="1" width="7" height="22" rx="1.5" ry="1.5"></rect>
                        </svg>
                    </button>
                    <span class="kg-video-current-time">0:00</span>
                    <div class="kg-video-time">
                        /<span class="kg-video-duration">0:43</span>
                    </div>
                    <input type="range" class="kg-video-seek-slider" max="100" value="0">
                    <button class="kg-video-playback-rate">1×</button>
                    <button class="kg-video-unmute-icon">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                            <path d="M15.189 2.021a9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h1.794a.249.249 0 0 1 .221.133 9.73 9.73 0 0 0 7.924 4.85h.06a1 1 0 0 0 1-1V3.02a1 1 0 0 0-1.06-.998Z"></path>
                        </svg>
                    </button>
                    <button class="kg-video-mute-icon kg-video-hide">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                            <path d="M16.177 4.3a.248.248 0 0 0 .073-.176v-1.1a1 1 0 0 0-1.061-1 9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h.114a.251.251 0 0 0 .177-.073ZM23.707 1.706A1 1 0 0 0 22.293.292l-22 22a1 1 0 0 0 0 1.414l.009.009a1 1 0 0 0 1.405-.009l6.63-6.631A.251.251 0 0 1 8.515 17a.245.245 0 0 1 .177.075 10.081 10.081 0 0 0 6.5 2.92 1 1 0 0 0 1.061-1V9.266a.247.247 0 0 1 .073-.176Z"></path>
                        </svg>
                    </button>
                    <input type="range" class="kg-video-volume-slider" max="100" value="100">
                </div>
            </div>
        </div>
        
    </figure><p>Ghost's new image editor comes thanks to a new partnership with <a href="https://pqina.nl/pintura/">Pintura</a>, the creators of the editing interface. </p><p>For <a href="https://ghost.org/pricing/" rel="noreferrer"><strong>Ghost(Pro)</strong></a> customers, the image editor is automatically enabled and included with every plan — for free! Just sign in to your site to start using it.</p><p>For developers who self-host Ghost on their own servers, the <a href="https://ghost.org/docs/config/#pintura">Pintura integration</a> can be enabled by purchasing a <a href="https://pqina.nl/pintura/">Pintura license</a> and entering your license information inside Ghost Admin to enable the image editing functionality.</p>
1 Like

For Ghost(Pro) customers, the image editor is automatically enabled and included with every plan — for free! Just sign in to your site to start using it.

For developers who self-host Ghost on their own servers, the Pintura integration can be enabled by purchasing a Pintura license and entering your license information inside Ghost Admin to enable the image editing functionality.

Cool news for Ghost(Pro) users, but seems kind of rough for anyone self-hosting Ghost, as it looks like the cheapest Pintura license is the “Hobby” level for $149/year unless I missed some other option on their website.

4 Likes

There’s no obligation to use the Pintura integration. You aren’t gaining anything from this announcement, but you aren’t losing anything, either.

It’ll be a nice perk for some less tech-y folks whose sites are on Ghost Pro and who might not have image editing software installed locally.

4 Likes

As I’ve said before, as a Ghost (Pro) user, I’m strongly opposed to this. I use and am happy to use Ghost because it is free software. I don’t need unnecessary proprietary antifeatures clogging up my user interface. I ask, again, that you remove this nonsense. If you think there should be a photo editor in Ghost, write it. Personally, I don’t think it would really add much.

3 Likes

Not enough people will voice a complaint about it, unfortunately. Cheers to voicing your response. Only way it will be noticed… if it is even acknowledged.

Glad to see you still in the comments about this! Cheers.

Piggybacking on Dan’s comment.

Proprietary software integrated within the editor on arguably the most important core tool of any CMS feels… off. Also considering Ghost has been a very friendly open-source platform.

I’d love to hear from someone affiliated within Ghost.org to respond to this.

This native image editing software isn’t a cheap option and Pintura’s yearly only option to buy is less than kind to anyone who is a hobbyist or starting out.

I honestly can’t think of any other sass that isn’t enterprise exclusive that doesn’t offer monthly payment options, even if the yearly price is a no-brainer to take cost wise.

I’m curious as to what kind of monetary deal between Pintura and Ghost(Pro) was created. Were self hosted users considered? Why not even so much as a discount for any Self-Hosted Ghost Users? There must have been a better thought out middle ground, I would hope.

What’s the next proprietary software that will be integrated within Ghost that the only option is to pay a yearly fee to another platform OR pay for Ghost(Pro) in order to use the “Native” functions?

My criticism is meant to be constructive. I’ll continue to edit my own photos elsewhere but I don’t like the direction this precedent has taken Ghost, nor the lack of conversation about it.

3 Likes

I enjoy reading this Forum and have seen you within the comments most times sharing and helping the community. I appreciate that! I’m sure many others do. I hope Ghost is paying you! If not, they should consider it asap!

I’m quoting from another comment I left to illustrate the slippery-slope the precedent of this decision creates as well as to highlight that your comment is also problematic in the slippery slope kind of way.

It doesn’t seem to empathize as why a subset of people choose to utilize a self-hosted Ghost solution to their CMS needs. Why shouldn’t they have a “Native” feature of the editor? Having this kind of software within the editor could help a ton of people create more content in a much easier fashion. I know plenty of people who use self-hosted Ghost that wouldn’t consider themselves “tech-y” and don’t have an image editor installed locally.

While most perks are just that, perks, this image editing is pronounced as a “Native” feature that’s integrated within the editor, when in all reality it’s a proprietary add on.

While self-hosting will always have extra costs as well as a myriad of challenges to navigate, this challenge seems avoidable enough to not potentially ostracize a subset of current users.

Open source helps people who can’t afford to pay learn new skills, learn how to create, and keeps the playing field of content creation about as close to fair as it can be.

Just a few thoughts. Again, your work within the forum has been very helpful. Cheers.

3 Likes

Agreed. This isn’t “native” but is essentially a paid plug in. I first saw this announcement and was excited to see some added functionality to the image uploader. Seeing that this is actually a paid third party feature is disappointing because self-hosting on an open source platform is the whole reason I’m here. Would love to see native integrations that reflect open source values rather than more third party plug ins. The whole point of ghost is to do more with less and avoid the bloat and “add-on” creep that made wordpress obsolete and expensive in the first place.

5 Likes

I appreciate you taking time to share this. Reasonable people certainly might come to different conclusions. If this really is a slippery slope and we’re headed for a place where a whole lot of essential functionality requires a paid subscription, then I’ll absolutely share your aggravation and disappointment.

I went back looking through the forum for a discussion I thought I remembered where someone on the dev team commented that there wasn’t a good OSS alternative for image manipulation. I can’t find it. Maybe I’m misremembering from some discussion about Mailgun.

I definitely value open source software. I also know that the Ghost team is funded by Ghost Pro subscriptions. That funding model means there are more folks working on Ghost full-time – a clear benefit for self-hosters. There’s presumably a little tension there - some choices they make might tilt the balance for choosing Ghost Pro vs self-hosting a little bit.

To clarify: I don’t work for Ghost. [Although that would be awesome.] I am registered as a Ghost expert, which brings me most of my freelance business. I’m definitely all-in on Ghost, since Ghost-related freelancing is a significant source of income for me. I’m also a Ghost Pro affiliate, which means that I make money for recommending Ghost, although so far I’ve made less than $100. So there you go, that’s me. I hang out on the forums a lot as part of my contribution back to OSS, and because I like hanging out on forums – it’s how I take a break from writing code. And I believe that vibrant OSS communities don’t leave questions un-responded to, and I want to be in that kind of community. :slight_smile:

6 Likes

What a great response. Thank you for reasoning mine and taking time to give your much valued feedback. I just wanted to share some thoughts and as you said, there’s different conclusions for people to come to.

I would have loved some kind of acknowledgment from the Ghost team that self-hosting crowd could at least some kind of discount. I’m not sure what deal was struck but I know the Pintura creator doesn’t like monthly pricing because someone can pay for a month and then have all the code. Alas it seems that having a one person(or possibly a very small) team and an integrated product doesn’t have much future proofing. I somewhat empathize.

Though as I write this he could just implement more features and such yearly with an update. I’ve seen his posts on Indie Hacker a while back suggesting a well off product. Having a niche but devoted platform on the rise like Ghost and in turn having all of the Ghost(Pro) customers using that one specific product is a net benefit for his product. Just confused on the inner-workings and why self-host was left out to dry for a proprietary product with a large entry point and a developer who doesn’t provide an easier pricing structure.

I see/understand peoples issues with Mailchimp, but they offer a flex plan (even if it’s… not obvious) which any one starting out can afford since it’s essentially free for anything under 1,000 emails a month.

Thank you again for you all you contribute and for the response. Cheers.

2 Likes

Plus 1!! - I left Wordpress for the same reasons.

Being fair to Ghost, we have a long way to go before bloat is an issue with Ghost but I do think this is an odd precedent to set.

We probably have some form of ptsd from Wordpress :sweat_smile:

1 Like

I’m not sure how would work. Ghost doesn’t own Pintura.

Self-hosters can continue to use a free image editor like GIMP as they could before.

Ghost(Pro) customers pay a fee and get some extras bundled with that. In turn, this supports giving away a high quality product for self-hosting for free. Seems fair enough.

5 Likes

The self-hosted crowed, could have the free version ;) with watermark and all!

2 Likes

Also, there are several of Open Source JS Image Manipulation Libraries, which is free, with the same functionality as Pintura, and more.

For instance, a simple rewrite of DPaint JS, could be a fully self-integrated into Ghost.

(Tried it, done it, already using it)

6 Likes

Yes. I’m well aware that Pintura and Ghost are separate entities. My comments were very clear of understanding this dynamic and the inclusion of the 3rd parties proprietary software within Ghost’s new editor being called a “Native” feature was, and still is, the main point of the issues I’ve stated.

To state that “Ghost doesn’t own Pintura” and you couldn’t see how a discount could work as a response to my comments was/is … a choice. Not the kind of answer I would have expected to receive, from a mod no less, nor see the relevance response provides. I don’t find it was constructive to the voicing of opinions/concerns.

In fact, it’s arguably a purposefully intentioned bad faith argument.

Plenty of companies within the SASS community have made choices to give their users discounts and benefits to access services from other companies/partners in the past, and plenty more will in the future. My initial discount comment was a first thought, off the cuff, spaghetti on the wall kind of comment, as there wasn’t any kind of solution provided other than to fully pay yearly for a service from a 3rd party.

Thankfully there’s other people providing great solutions in this thread.

As many people know, there’s a widely available plethora of photo editing software available elsewhere on the internet (paid and free) and the availability of free software being accessible and as an option elsewhere wasn’t/isn’t part of the issues I’ve brought forth within “Native” feature implemented within Ghost.

I felt I’ve clearly stated those concerns and I’m not sure how the existence of other software choices and their wide availability elsewhere has anything to do with what I’ve stated. Yet again, feels as though this is another response in bad faith. It’s a non-solution that doesn’t solve what I’ve described, nor is it constructive.

I brought the concerns of Ghost (a non-profit) adding Pintura (a 3rd party proprietary SASS) as a feature behind a paywall (a less than fair paywall structure, in fact) to a non-profits open source software’s core tool, as it warrants a discussion and yields many questions.

Pintura only offers yearly payments and I feel as though that decision in pricing structure is a poor-tax. While maybe not the intention, it should be considered as such either way.

I can’t imagine I’m the only one that feels that way. It would have been nice to see some kind of thought given to the self-hosters or at minimum call the feature what it is. A paid plugin.

Ghost(Pro) providing their cloud services, hosting, etc. to customers while being able to pay the salaries of the team to provide capital to fund and support the Ghost project and keep it open source is a great thing that I fully support and love to promote.

Though, isn’t that part of the purpose of being a nonprofit? To provide value to a community? I don’t see the altruism in a decision like this and it should be concerning to anyone that paid plugins are being added into the core product with the justification, by a mod, as “giving away a high quality product for self-hosting for free”

Ghost’s own stated purpose of " 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"

Ghost couldn’t function as a non-profit without the promise of providing tools to the open source community. The financial contributions of collecting money for Ghost(Pro) to support this stated mission is made with the intention providing value to this community. Which Ghost mostly succeeds at. But decisions like this should be questioned.

“Giving away … for free” is a bit reductive to the open source community when being open source is the only reason that Ghost can even function as a non-profit.

The concerns were simple questions to ask what are the next paid plugins to be added on in such a way to the core product? What functionality will be added that cannot be accessed without purchasing a 3rd party subscription? How does a decision like this benefit the open-source community?

Software as a service has had many, many failures and poor choices made by many teams and many organizations throughout it’s relatively short lifespan, and will have plenty more in the future.

While this decision is being treated as relatively small, it warrants a better faith discussion or statement as to why this choice was made without the thought of how this would impact the product provided to the open source community.

If this was an integration from a 3rd party, I wouldn’t have said one thing about it. But this is in the core product on the editor. Arguably the main tool of the software.

Decisions like this on an open source project can be, and often should be, an indicator to be cautious of the decisions made by the team, and to not be too surprised if/when more features are implemented in the future behind the guise of being called “Native” when in fact they’re a paid plugin within the software.

As the product continues to evolve, how different will the product be for all shapes of users?

I, whole heartedly/respectfully, agree to disagree.

3 Likes

Totally, I’m aware of some other options and like you said, could be added to the core with some work. Thank you for sharing this! I haven’t heard of this one at all.

I appreciate this response a ton! Solutions are great.

Did you fork this project when you added it to ghost? I’m interested in trying it out.

Right :sweat_smile: - I’m obviously a bit in the zone of calling this out, but I appreciate your concise responses, while providing solutions to the main issues. Cheers.

Yes, I’ve forked their Github and added a Image Editor for Feature Images and Images/Gallery images.

I also added/created a Media Library for re:useable images/videos (no need to upload the same file twice)(…stupid)

Since I’ve done it for my current workplace, I’m investigating the possibility, to release it as open source for everyone.

2 Likes

Sounds great! Even the framework of the steps taken on a repo or something would be a huge help.

Either way, cheers!

why can’t I disable it?

It’s detrimental to my experience. I don’t want it in my browser. I would block it in noscript, but it’s not coming from a Pintura domain, it’s coming from Ghost.

It doesn’t feel like an extension, it feels like there are two different products now—the open source ghost I was trying to support, and the proprietary ghost that’s only available through ghost pro.

Can other integrations use the same rails as Pintura to inject an image editor into ghost? Is it really an integration, or is it hard-coded in by the Ghost development team?

1 Like