Collaborating With Scrivener

Another alternative could be Fade In. While it is primarily a screenplay writing application, it also has a template for a Novel Manuscript.
Fade In features real time multiuser collaboration.
It’s Elements (= paragraph styles) can be altered to the user’s liking and/or new ones can created. It also features a Index Card View akin to Scrivener’s Corkboard. Feature-wise, Fade In is somewhere between Ulysses and Scrivener.

All the best.

As a long time user of Scrivener for novel writing, I can concur with folks looking for a collaborative feature. Having sent novel drafts away as word docs, I have to go back through the resulting edits line by line, searching for where I’ve misspelt “you’re” as “your” in the middle of a five thousand word chapter is no fun. If I could send my editor a link to an online edit space, or have them download a collaboration only copy that can only see my work, but then the edits are sync’d back to my original, it would save a lot of time and hassle.

As an IT professional, I can fully understand Katherine’s point about the difficulty of implementing this. One of the greatest features of Scrivener is it’s reliability. I will not tolerate any software that loses something I’ve written, Scrivener never has, even after the introduction of the iOS sync feature.

So mixed feelings. Would love to see it, but not at the cost of losing the integrity of the core program.
Kieran

I posted the original “wish” here a few weeks ago. Just read all the replies. Here’s my take away:

  1. Saying it’s just too hard is a cop out - clearly customers want collaboration, they NEED it, and co-writing is a thing of the future. Telling people to get over themselves is not helpful. It’s a legitimate request.

  2. Clearly people are willing to play outside the Scrivener box if necessary. Make that easier is all we are asking. For example, if I need to export a chapter or full document to GoogleDocs for collaboration, fine. But make that SIMPLE, and make it SIMPLE to get the document back into Scrivener as well.

  3. Cloud based file management is not new, and DropBox is not the only game in town. Yet the Scrivener ecosystem appears to recognize only DropBox as a viable option. At the very least, it should not be hard to enable Scrivener to open a full Scrivener project file from a cloud based location - after all, it’s just another storage drive. Online storage is the future.

I don’t hear anybody directly involved with Scrivener development telling people to get over themselves. But - although I know next-to-nothing about software development, my understanding is that to plug simultaneous collaboration into Scrivener would indeed be very hard. (Sequential collaboration, with each user taking turns to work on a project in a central location is a different matter and very possible now - see below.) The problems with coding for simultaneous collaboration in Scrivener are at least twofold: first, people to do the work - within L&L Scrivener for the Mac is coded by one person, and Scrivener for Windows by two, whilst outfits such as Microsoft and Google which do offer simultaneous collaboration apparently have more people in their PR departments than L&L has employees. Imagine how many coders they must have! Second, each Scrivener package is made up of a folder containing hundreds, perhaps thousands of files (unlike, as I understand it, Google Docs, say). This protects long Scrivener projects from being totally destroyed by the corruption of one part*, amongst other advantages, but even a layman like me can see that getting simultaneous access and editing by two or more users to work with such a file structure would be, well, a very hard thing.

Although I’ve never used Scrivener’s feature that enables syncing of a document with an external folder, what you have described is my understanding of exactly what that feature will do. (See Section 13.2 in the Scrivener Manual, if I remember correctly.) I see that you work on Windows - if that particular feature hasn’t yet arrived on Scrivener for Windows, it will do before too long.

Dropbox isn’t the only viable option; other cloud options are also viable. It’s much more that certain cloud options aren’t designed for Scrivener’s multi-file project structure and will pretty definitely screw it up for you, and therefore are wise to avoid - the advisories in the FAQ here are well worth reading, if you haven’t. As far as Dropbox is concerned, I keep all my Scrivener projects there - at no cost to me - and open at least one of them from that cloud location on most days. Dropbox has never to date let me down. And I could work collaboratively with a writing partner on the same projects (see above) in the same cloud location, as long as we worked sequentially.

  • I value Scrivener’s multi-file folder structure particularly - I once irrecoverably lost 40,000 words in MS Word.

The reasons for this have been discussed in detail elsewhere. Briefly, (1) other cloud services do not support the level of access to the file structure that is needed for Scrivener projects, and (2) what happens to your cloud-stored project if you lose access to the internet with 4,000 unsaved words in your computer’s memory? Personally, I have no interest in a writing program that requires an internet connection to use it.

If you find that Google Docs is a better fit for your needs, feel free to use it. I wonder, though, why no one is pointing out that, after years of development with a much larger team, Google Docs has nothing that even resembles Scrivener’s organizational and editing tools for large documents. They are different tools with different goals.

Katherine

What you’re asking for is the equivalent of making a Lamborghini into a helicopter.

A Lamborghini is designed for a specific purpose. Specific requirements (“can do X miles an hour”, “can handle forces of X magnitude when cornering”, “does not need storage space”, “does not need space for more than driver and passenger”, etc.) are determined, assumptions made, and the entire design hinges around those requirements and assumptions.

Now, sure, you can go all Mythbusters on that Lamborghini and figure out a series of modifications that could be applied to the car that would allow it, technically, to be a helicopter. You could brute-force it and get something that manages to get off the ground. However, it’s not going to be a GOOD helicopter. It won’t do the kinds of things that you can do with a real helicopter. It won’t have the range, the safety features, the cargo capacity, the passenger capacity, and all the other features and requirements a real helicopter is designed to meet. It’s a one-off hack that is not usable on a regular basis.

It’s probably going to suck as a high-end race car, too, because you had to compromise all of the original design requirements and assumptions to get it to the Frankencopter state.

All because you tried to make something perform a task outside of its design requirements.

It’s the same thing with software – good software design includes requirements and assumptions, whether there is a formal process to identify them or not. KB had a very specific set of goals in mind (still seems to!) for what he wanted Scrivener to be. The design goals and requirements he made determined the technology choices he made (which, BTW, is one of the reasons why the Windows port has always been farther behind, as it doesn’t have key pieces of the technology the Mac version does because the Windows OS doesn’t offer them the way Mac OS X does). The vision of “multiple little documents compiled into final output document” has HUGE advantages for the process of writing, but it massively complicates (I would go so far as to say “makes impossible at this time”) things like real-time multi-user collaboration because the requirements just don’t add up.

For the record, one-way sync can be a more difficult problem to solve than you think, even for single files. Every sync solution I’ve used has issues, at first, as the dev teams figure out what kinds of errors and oversights are common and learn how to solve them. Very few sync engines can handle multiple files that are all related, which is how ANY sync solution sees the Scrivener package format. Of the key players in this space, only DropBox both handles that complexity safely AND gives the necessary level of access to its routines to permit app authors to wire it up correctly with their iOS and Android apps to handle that package format. Writing mobile apps is a whole new set of assumptions, requirements, and constraints.

Give up that package format, and a lot of the features that thousands of current Scrivener users rely on TODAY suddenly go away. Plus, you essentially throw out all of Scrivener’s code and start from scratch.

As Katherine noted, multi-user realtime collaboration solutions like GoogleDocs or Word Online don’t have the full range of organizational features that a tool like Scrivener does. They are designed to do one thing – permit collaboration on a SIMPLE document that is a subset of functionality of a full desktop word processor. They can’t even handle all versions of their own format – take a complicated traditional Word or RTF document through either solution and watch it get mangled!

If LamboCopters were easy, they’d already be a thing. In software, as in the physical world, design is a series of compromises. A lot of times the features you leave out are more important than the features you include.

Moreover the initial commitment to a cross-platform framework and Linux releases impaired the deployment of Windows DLLs and ActiveX components in SFW’s development. So the team couldn’t really make the most of Windows’ capabilities.

I haven’t always agreed with you, but I LOVE this. I’m telling you it will be shamelessly stolen out of sheer lack of any better explanation of exactly why requirement creep is the spawn of all evil in the universe…

LamboCopter… Whuummpaaummmpaaummmpa

HA.

You can’t steal what is freely offered, my friend. :slight_smile:

“Let me introduce, the Lambocopter! The Swiss army knife equivalent when it comes to vehicles!”

… which means it isn’t really good for anything, which Devinganger explained in a fantastic way. Specialized tools always out-perform multi-purpose tools when it comes to really quakified work. Ask any carpenter…
Including more and more specialized tools in a single software is like buying a carpenters belt filled with tools. It’s likely to hold some of the tools you need but not all, and definitely also a lot of stuff you don’t need.

Lambocopters - I want one!

A full, real time, collaboration tool a la GoogleDocs is not what seems required. But just a few tools to make collaboration less painful, and not requiring carefully coordinating when you are working on a large doc, would be very helpful - and for the most part, also help those of us who use Scrivener on our own docs on multiple devices on those occasions when something unforeseen happens. For example, a tool that let you do a sensible merge differences tool for resolving conflicts (eg like a lighter version of a tool like Beyond Compare), especially if it let you have practical defaults to configure for smart conflict handling. Not a total redesign, just much better handling of the issues that result from things like conflicts, and the issues that result from round trip edit cycles.

Not a total redesign to be a tool that has a different focus, just an acceptance that edit conflicts are not just a mistake to be avoided that can be handled as a clumsy error, but rather a regular thing that happens and should have some tools for it. That literally would be enough for me to use it for collaboration effectively.

Perhaps once 3.0 is out cross-platform and stabilized, KB might have time to consider the minimum viable product for such a feature that would work with the Scrivener philosophy – but to do so, one would need a realistic set of scenarios painted out, not just the “it needs to be like Google Docs” that most people lead with.

What would such a conflict resolution experience in Scrivener look like to you?

Scrivener 3 includes some new features to facilitate collaboration, notably an “Import and Merge” command to combine two versions of a project.

Katherine

One possible approach is to explore the use cases around collaboration. You may find users are wanting to use your software for purposes that you had not initially considered. You could then perhaps bring out editions that catered to specific needs that maybe removed some features and enabled others such as real time collaboration. It may be a way of growing into new markets while not destroying the original strong product. Or alternatively you may want to think about developing Scapple further as a collaborative tool with greater workflow integration into Scrivener
I think there are a lot of features in Scrivener and Scapple that could make it a great qualitative research synthesis tool for example in fields like UX and service design. Collaborative working around inputing data and arranging being key in these fields.

Real time collaboration in particular is an enormous technical lift, in a space where the number one competitor (Google Docs) has essentially unlimited resources and gives the product away for free, and the number two competitor (Office 365) also has essentially unlimited resources and has had a stranglehold on the enterprise market for more than 20 years. There may be a compelling business case, but I haven’t seen it.

The problem with special editions generally is that each requires additional development and support effort, while getting further and further away from the core needs of our core audience. The less “Scrivener-like” the proposed application is, the harder it is to see what we might bring to the table.

Katherine

The Node.JS development world has addressed local and cloud sync and allows local filesystem access (see Electron). It also allows the same code base to be ported simultaneously to different platforms (desktop, mobile, web). You wouldn’t need an Internet connection, but it could address a lot of the request here. There are also a lot of pre-built plugins that would simplify development.

It would be a massive change to Scrivener. But, looking at the underlying file structure (I’m a geek), KB has a strong foundation for such a move. That is, a lot of the design decisions I would make are there.

You are right, Scrivener provides document project management capability not readily available anywhere else. Google Docs solves a different problem than you are solving. That doesn’t mean there’s not a market in the middle that you’re not better situated to satisfy than them…and that someone else won’t fill it.

I used Scriv for my first novel, and part of my 2nd. I started looking at another toolchain because Scriv had some gaps. Scrive3 seems to be filling the very specific gaps I had (styles being one). Y’all’s exploration of Android fills another one. I’m coming back on Scriv3 (and enjoying it so far, KB did a fine job).

The one gap I see is the ability to collaborate with a professional editor, which is not synchronous editing.

I know a few people (senior software developers, not Scrivener-related) who refuse to even consider any job that requires them to use Node.js. It’s an ugly, ugly development environment in a number of ways. Porting all of Scrivener to it sounds like a pretty radical approach to me.

Katherine

Perhaps true. Node.JS is sort of my crib for the greater trend in programming towards Javascript (Angular, React, etc.). Node has the advantage of having access to the file system. Certainly a port would be a huge undertaking.

At any rate, enjoying Scrivener again with v.3.

I think what is interesting is a multidisciplinary view of this topic.

I am a software engineer who has been asked to collaborate on a Scrivener project. In my world this is an incredibly easy problem to solve… just put the project under CVS, GIT, or SVN version control. You check out the parts of the project you wish to work on for you local machine and simply merge the changes back to the cloud database.

You would have to check out files like library books before you started Scrivener up. However once awake, Scrivener wouldn’t even realize what you were doing when it was not running. Multiple copies can be “checked out” by different writers. The workflows for editing and merging work should be similar… they always have to be moderated in some context, inline or not.

I have had to track and merge the changes of dozens of “writers” upon final concatenation. It wouldn’t matter as a manager of a project if the “writers” were writing code or fiction. In comparison, scrivener sync would be so easy it is hardly worth mentioning to a software person. You would actually have an incredibly difficult time explaining your problem because “it is not a problem” to them. They would most likely reply, “Is something broken?” Version control just “is”. It is the lifeblood of software coding when you literally have hundreds of people working on a project. And it is not just coders, there are manual writers, app writers, product support writers - all under the same version control software, cloud based or not.

The misconception is that version control software… just does software. In reality, the version control software doesn’t care or even know what it is tracking.(Yes, they do have some features that are useful if the deliverable is actually code) CVS was developed in the 80s and Google still uses it today for many of its code and non-code product development, including documentation. Version control software can work with encrypted binaries… it literally doesn’t care what it is tracking, or what other program is using the files.

CVS, GIT and SVN are easy to learn, but the nomenclature isn’t reminiscent to anything writers are used to. So, there are learning curves.

A good post would be “Controlling and syncing Scrivener with CVS, GIT or SVN”. (Collaboration or multi-users are implied with version control) I would write it but explaining it to non-version control users is the challenging part. If I ever do figure out a way to explain it or just create a script to say just do “this” I most certainly will try.

These links touch on some but not all of these aspects in relation to Scrivener:

makeuseof.com/tag/not-just- … r-writers/

cuttlesoft.com/using-git-so … mentation/

“GitBook” is described in this article but also several excellent open source writing tools as possible companions to Scrivener.

itsfoss.com/open-source-tools-writers/