- Markdown: A combined single document
- Epub: A well formatted Epub I think, even a little color and cover page and such
- DocX: This one was tough, there is no Java or Kotlin based Docx lib that is light weight enough to port, so I hand rolled a writer that outputs a small sub-set of the full docx spec. It seems to work, but I have had a couple bug reports, so there's some debugging in my future LoL
- RTF: I ported and then improved a really nice Java lib for this, it now supports reading and writing
- PDF: idk, there was already a KMP lib for this, so I included it. But its not a very useful format for this use case I don't think
It's focused on writing anything from a short story, to a novel, but people have already used it to write RPG campaigns and more.
It's Free and Open Source (MIT) https://github.com/Darkrock-Studios/hammer-editor
It works offline, forever, storing plain text files (Markdown and TOML) in directories that define the project structure. (similar to Obsidian)
But it's got features focused on how writers work: You write your story as a series of nested scenes. You can make new drafts of each scene as things change, giving you a form of version control.
There is an Encyclopedia where you can build out your world, making entries for characters, locations, events, and more. And Hammer will scan you scenes to see which ones contain references to your various encyclopedia entries. Then a Dashboard will help you understand how things in your story are connected.
It's also got a visual timeline, and notes.
When you do come back online, there is an optional, and self-hostable sync server. This allows you to keep all of your devices in sync with content aware syncing. No "last edit wins", Hammer is paranoid about data loss, any conflict is presented to you to be solved. The server also allows you to share your story online, and even request someone to be your editor, and suggest revisions in a web-based interface.
Under the hood it's Kotlin Multiplatform with Compose for the client UI, and HTMX for the server. One codebase shipping to Windows, macOS, Linux, Android and iOS as native apps, as well as the Server. That has been mostly a joy and occasionally a war, and I'm happy to talk about which parts were which. The text editor is the war: I ended up maintaining my own Compose rich-text editor library (https://github.com/Darkrock-Studios/ComposeTextEditor) because nothing existed for true free-form Rich Text Editing. (No spell checking text editors existed either!)
KMP is still fairly nascent, so every time I've had to fill a gap in the ecosystem, I've done it by releasing an MIT licensed library to help grow it. That's included two spell checking libraries, an epub reader/writer lib, an RTF parser, and several earlier attempts at a rich text editor that were eventually superseded. https://github.com/Darkrock-Studios
Hammer isn't done by any stretch, but it's finally at a place where I'm proud to show it and think it might be valuable to those who aren't software devs them selves. https://github.com/Darkrock-Studios/hammer-editor
curious why not integrate actual version control? Git or Fossil would seem ideal for managing changes in a book but the audience likely does not have the technical acumen to work with them easily. A client that can provide a strong abstraction but utilize the tool underneath would seem to have a lot of value-add.