1 comments

  • Wavesonics an hour ago

    I've been building Hammer for over 4 years now. It's a multiplatform app written in Kotlin and it runs on Linux, Windows, Mac, iOS, Android.

    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