For a long while, I was writing the game in Scrivener and then laying it out in InDesign. Scrivener is a superb tool for writing and organizing long-form documents and basically perfect for the task. InDesign is the industry standard for layout. This is the optimal setup, but only if you plan to do it once.
The formatting from Scrivener does not carry over into InDesign. Every time you move text from one into the other you have to format that chunk of text from scratch. What was then happening is that I would release a document, we would find errors or I would need to make clarifications, and then I would make those clarifications in Scrivener. I would then copy the text from scrivener, delete that section of text in InDesign, paste it in place and format it all over again. Because this process was lame as fuck (to use a technical term) and because I am lazy, what inevitably began to happen was that the InDesign text would get updated directly without those updates being reflected in the Scrivener copy. This was particularly common when it came to small typos like punctuation or a transposed letter.
Now we're in a position where the Scrivener text can no longer be trusted because I can't be sure that all of the updates that were made in InDesign were also made in Scrivener, so the Scrivener copy is now useless. This left us with InDesign alone.
Kids. Don't write drafts in InDesign. Just don't.
But that's exactly what I was doing. And it was balls. Worse, the documents were begun in InDesign CS3. When I switched over to Creative Cloud, things started going... Hinky. Random errors appearing, behaviors that were not the way in which the program was supposed to behave. Problems that were cropping up that had no fix because, like the great old ones from beyond the cold void of the stars, they should not have existed, to begin with.
Faced with the prospect of laying out the entire document from scratch again on a fresh set of InDesign files, I made the executive decision to Fuck That and tried to solve the problem entirely in Scrivener.
We started a brand new Scrivener document and pasted the entire book over again and began doing all of the formattings in Scrivener. Because Scrivener can, theoretically, output pdfs. This was fine for a while, but imperfect at best because Scrivener does not like tables. Scrivener is software meant for writing screenplays and novels and shit. It is not a program that is meant to care about complex layouts or the kinds of shenanigans RPG writers try to put it through.
Worse, it also started fighting me on the implementation of things like the table of contents feature, because the rulebook's nesting structure was significantly more complicated than a series of Chapter headings. So even if I got the tables and shit working as they were meant to, I wouldn't be able to output a table of contents or bookmarks. Not without manually going through and inserting the bookmarks into the pdf each time I released or updated something. Spoiler: Fuck that, too.
That lead to a search for another option, so I went with Notion. And thus, we began a third (and eventually a fourth) migration of all of this text and tables and reformatting thereof inside of six months. Notion has a number of benefits, not least of which is that I can output the text into markdown the next time I have to migrate everything again and that it's easy to do all the bullshit navigation things that people want/need in a document of this size. Moreover, it reduces the amount of time I have to spend on recompiling, polishing, and otherwise getting distribution up to nil, because it's now there and will update live like a google doc. If you're paying close attention, you may even be able to watch me do it at some point.
There are absolutely tradeoffs, but the fault here is mine for setting the bar so high, to begin with. Professional game design companies do all of their development and testing from basic-ass word-docs. They don't even begin to try and make shit pretty until it's basically done, let alone worry about the pdf bookmarking and all this other nonsense. I shouldn't have been wasting time on that either.