volcanicMole637 downloadsA minimalist novel-writing workspace: series/book ordering, word-count history, and a scoped codex, built on plain markdown you already own.
Storytelling plugin by volcanicMole
Obsidian + storyForge + (formatForge) + a theme = fully functional storytelling app.
Note: storyForge has now been slightly renamed to storytellingForge. My focus is now on storytellingForge's sister app, storyForge, which is going to be a standalone app.
A big update this time!
One of my sayings is Simplify to Amplify. That is what this update is about: simplification and amplification (wow, corporate speak warning). The biggest change is probably the smallest change. Panels having a flip side. Clicking on the storytelling / focus mode icons in the Obsidian sidebar headers introduces a different view.
book: lines in your notes are left alone; they just don't do anything any more.)#tag rails and the continuous-mode toggle.user enhanced lexicon.md) rather than hand-editing JSONI got fed up of having storytelling apps which were pretty but functionally useless, or functionally powerful, but ugly.
Then came the new generation of web apps: great, they were pretty and functional... Just they forced you to use a web browser (a real danger for me).
So I delved into Obsidian again and vibe coded storyForge to turn Obsidian into a perfect storytelling app for me! And if I found it useful, I'm sure others would too, so I decided to release it. But, yes, I know it's (still) only a pre-release as there's so much more I want to add to this plugin. Though, if I don't stop here and use it for a while, I doubt I'll get any storytelling done...
There's a welcome note built into the plugin which gives a more detailed breakdown, but here is a short description of what you get:
Title and series-name generators, open from the ribbon or the command palette ("Open titleForge"). Pick a section (series, novels or web fiction), a genre and a sub genre, and it'll give you titles shaped like that tradition's (Anglophone, Japanese light novel, and Chinese / Korean / Vietnamese / Indonesian / Thai web serials, plus a world fiction genre). Every generator only ever outputs English: titles shaped like another tradition's, not translations of one. You can add your own words in one markdown file in your vault, so adding a word never needs a plugin update. It's a self-contained subplugin, documented on its own terms in src/titleforge/README.md.
storyForge has formatting options for its own chrome (sizes, colours). The optional formatForge plugin adds manuscript fonts, colours and dividers, and hosts the shared formatting UI while it's enabled.
Basically the idea is: Obsidian + storyForge + (formatForge) + a theme = fully functional storytelling app
One which can be enhanced by using other plugins found within the Obsidian ecosystem: especially the Forge Family of plugins!
After installing, turn the plugin on, and a welcome screen pops up which asks for the name of your series (or if you're telling a standalone novel, there's an option there to set that too). You can also apply a template or config from your vault here.
Once you give the series name to storyForge you're brought into Obsidian proper. If you chose to create a welcome note, that'll be waiting in the Codex for you; otherwise you're on chapter 1 of your first novel. Briefly there's two default panels. The storyForge panel (the flip side to the storytelling mode on the left) houses all the features of the plugin, and at the top in the library pane you can add novels, then within a novel, chapters to be placed into your series / novel (at first they're unplaced, so just drag them to their proper location and all be ready for your masterpiece).
To add a novel / chapter look for the add icon on the Unplaced pane's header row.
The other panel is the Tools panel. A fancy way of saying this is Obsidian's ribbon given a slight bit of fancying up (adding the titles of the buttons of the ribbon), so anything you can do in the ribbon you can do here.
On the right there's more options. There's the focus mode, the standard (mostly) blank panel to hide things on the right to have a more focused screen. There's also a Story Context flip side which uses local dumb-code to help you with understanding what's going on within a scene or chapter. This dumb-code also produces a dossier about a codex item so you can see most, if not all, of the comments brought up about them during the story so far. There's also a novel overview with space for the cover, a synopsis, and a place to see where the chapter takes place, who is the PoV character, and what happens.
Also over here, there's the Archive section. As storyForge cannot delete files within your codex or library, this is where you can have them hidden, unseen unless one day you want to go back to them. (To add files to the archive, right click on the chapter or codex lore item and select archive.)
Your words are precious, and even if you don't want them they deserve to be celebrated in their own way. So there's no delete function anywhere in storyForge's code: things you don't want get archived instead.
_sf-backup/.Backups living inside your vault means they sync with your vault, but it also means they're not a backup away from your vault. Please follow proper backup procedures as well (321 backup is a good place to start).
storyForge writes only inside _backstage/storyforge/ (plugin state) and _sf-backup/ (backups and recovery files), plus two narrow exceptions at the story library's root, series.md and each book's novel-<code>.md, which describe your novels without being manuscript prose themselves. Beyond that, the only writes are for creating new files, renaming codex files (for wikilink purposes), and saving what you type in continuous mode.
storyForge never writes prose on its own initiative. The one time it writes to a chapter is when you type in continuous mode, where it saves your own typing (and nothing else) through a single guarded path:
_sf-backup/recovery/ instead, with a notice telling you where. Nothing is merged and nothing is overwritten._sf-backup/.On mobile, continuous mode is read-only and writes nothing.
If you're running an automated security/behaviour scan against storyForge, here's what it'll likely flag and why:
vault.adapter.list() API. That happens only in src/backup.ts, only when a backup runs, and never uploads anything. The plugin does not use Node's fs module or write outside the vault.The backup feature is the one exception to otherwise scoped read access. When a backup runs (whether you start it manually or via the schedule you've enabled) it reads vault files in order to zip them into _sf-backup/. The _sf-backup/ folder itself is always excluded so zips never nest previous backups. That's the sole reason the plugin walks vault folders.
Backups stay inside your vault (so they sync with Obsidian Sync / your chosen sync tool if you use one). Nothing leaves your machine via storyForge, and storyForge makes no network requests.
#tags, just add #tags within your normal markdown document. Then in the new codex tags window (found on the codex pane, it's the one with the # on it), set an icon and check the use checkbox