Ghostwriter v6 is Live!

Jul 23 2025
Share
By: Christopher Maddalena • 4 min read

TL;DR: Ghostwriter now supports real-time collaborative editing for observations, findings, and report fields using the YJS framework, Tiptap editor, and Hocuspocus server, enabling multiple users to edit simultaneously without overwriting each other. This feature integrates seamlessly with Ghostwriter’s existing GraphQL API and infrastructure while introducing modern frontend tooling, React-based components, and upgrades to Django, PostgreSQL, and development workflows.

One month ago, we unveiled the release candidate for Ghostwriter v6.0. That was the final step in a year-long journey to introduce collaborative editing into Ghostwriter. It includes some significant changes. After using it internally for an assessment, we were confident in the feature set, but we wanted to hear what the community had to say first. The community responded excitedly, and we received feedback immediately. We let things simmer for a month, but after receiving only positive feedback from our test users since the last round of changes, we’re thrilled to mark this release as complete and ready for everyone!

The remainder of this post will highlight a few key features of v6. If you’re interested in a more technical deep dive on the changes, check Alex’s article from June.

Collaborative Editing

Ghostwriter v6 includes many significant changes, but we’ll focus on the headline change in here: collaborative editing. This feature has been requested since Ghostwriter’s earliest days, but it proved to be a challenging one. A pillar of Ghostwriter has always been its commitment to open-source. We don’t hold anything back! You don’t need to pay for anything to make Ghostwriter work or pay to gain access to features often considered “enterprise” (e.g., MFA, SSO). That was a problem for collaborative editing.

Collaborative editing applies to report fields, findings, and objectives for this release. You can make use of the collaborative editing in some creative ways when you combine it with a custom report field for a notes section. Your assessment team can use it as a collaborative journal or sketchpad to keep notes!

Most of the “off the shelf” solutions we might have considered for Ghostwriter—and we looked at most of them over the years—required a paid license and typically passed everything through a cloud service. We didn’t want anyone to have to pay to activate this feature, and we certainly didn’t want to pass sensitive reporting data through a cloud provider, so my fellow Ghostwriter developer, Alex Parril, researched options for introducing a completely open-source solution to Ghostwriter, and they did a terrific job!

Alex’s post from June gets into the technical details. They spent a year researching and implementing this solution, so it’s definitely worth your time to give it a read!

The new collaborative editor will feel familiar to anyone who has used a word processor like Google Docs. Multiple users can edit the same field simultaneously, seeing what others are typing or viewing, without stepping on each other’s edits.

Collaborative editing also brings several quality-of-life enhancements in addition to the benefits gained from collaboration. The most noticeable one is the lack of any “Save” or “Submit” buttons. Your work is constantly syncing with the server, so it’s saved as you make changes in real-time!

We have more control over the editor, allowing us to add evidence image previews inline with your text (as seen above). This was a heavily requested feature that we attempted to accommodate with previews, but those were never quite the same as being able to see the image as you typed.

Ghostwriter v6: First Steps

To support collaborative editing, we have also upgraded Django to v4.2 and PostgreSQL to v16.4. These changes are significant in their own right for security, performance, and new features, but they also require some maintenance before you can upgrade from Ghostwriter v5 or earlier.

You must upgrade your PostgreSQL database to v16. To automate the process, we’ve added the pg-upgrade subcommand to ghostwriter-cli. Make a database backup using ghostwriter-cli, pull the new update, and then run the subcommand to migrate the data (optionally passing the --dev flag for a development environment).

1. ./ghostwriter-cli backup — we also recommend taking a server snapshot just in case!

2. git pull — or however you prefer to update Ghostwriter, like downloading the release.

3. ./ghostwriter-cli down

4. ./ghostwriter-cli pg-upgrade

5. ./ghostwriter-cli containers build

Wrap Up

We’re excited to hear what you think of the release! Please remember to perform the necessary upgrade outlined in the First Steps section.

You can grab the release here:

https://github.com/GhostManager/Ghostwriter/releases/tag/v6.0.0