Notion Blocks, Obsidian Callouts, Scrivener Snapshots: The Workarounds Writers Use to Keep Sentence Variants
Here's why those workarounds exist, and what a purpose-built tool looks like.
If you’ve ever wanted to keep two or three versions of the same sentence alive in a document—compare them, swap between them, decide later—you’ve probably discovered that no writing app has a button for that.
So you improvise. You stuff alternate phrasings into Notion toggle blocks, park variant sentences inside Obsidian callouts, take Scrivener snapshots before rewriting a paragraph (and hope you’ll remember to check the diff later), or use iA Writer’s critic markup to hold one alternative visible next to the original.
These are all clever hacks. They’re also all evidence that the feature you actually want doesn’t exist in any of these tools.
Notion toggle blocks
Notion’s toggle block is designed for collapsible content—FAQs, nested details, things you want to hide until someone clicks. Writers repurpose it as a container for alternate phrasings: write the current version in the paragraph, stuff two other options inside a toggle underneath.
It works until it doesn’t: toggle blocks are visually heavy, and they break the flow of your prose with a disclosure triangle that announces there’s a UI element in your document.
You can’t switch between versions in place either; you have to open the toggle, read the alternative, mentally compare it to the paragraph above, close the toggle, and then decide. If you want to try a version that mixes the opening of variant A with the closing of variant B, you’re copy-pasting between toggles and the main text.
Obsidian callouts
Obsidian’s callout syntax (> [!note]) is even more of a repurposed feature. Callouts are designed for notes, warnings, and tips, which is to say sidebar-style annotations. Writers use them to stash alternate phrasings next to the “live” version of a paragraph, because it’s the closest thing Obsidian has to inline annotations.
The callout sits below or beside your text, visually distinct and clearly not part of the document, which is exactly the problem. Your alternate phrasing is part of the document; it’s a version of the text that might become the real one. Rendering it as an annotation makes it feel secondary, like a comment rather than a contender.
There are community plugins that let you store multiple variants of a span and cycle through them, and these get closer to the right idea. The massive plugin ecosystem is the beauty of Obsidian, and for note-taking, I still personally use Obsidian. But plugins are third-party, and your workflow depends on a plugin maintainer’s continued interest. One abandoned plugin update and your revision system—the whole writing system—is gone.
Scrivener snapshots
Scrivener is the only mainstream writing tool with a first-party feature for this problem: Snapshots. You take a snapshot before revising, and later you can compare the current version against the snapshot in a split view.
But Scrivener snapshots are whole-document. You can’t snapshot a single sentence. If you rewrite one paragraph, the snapshot diff shows you the entire document with that one change highlighted, and you have to scan through to find it. Take multiple snapshots across multiple revision sessions and comparing them becomes an archaeology project.
Snapshots are also manual and one-directional. You have to remember to take one before you start revising, and if you forget—or if you only realize midway through that you liked the old version—the previous text is gone. You also can’t maintain two versions simultaneously; a snapshot is a frozen archive, not a live alternative you can switch to.
The comparison view, when it works, shows a side-by-side diff. Side-by-side is better than nothing, but it’s still a diff view, which means you’re looking at what changed rather than what your options are. Those are different questions, and writers need the second one.
Also, Scrivener costs money.
iA Writer and critic markup
iA Writer supports CriticMarkup, a plain-text syntax for tracking changes: {~~old~>new~~} shows a substitution, {++addition++} shows an insertion. Some writers use this to hold one alternate phrasing visible next to the original, inline, without leaving their Markdown file.
Of all the workarounds, this one is the most honest about what it’s doing. It’s literally inline, literally in the text, and it doesn’t pretend to be something else. But it has hard limits: you can only hold two versions (the old and the new). There’s no syntax for three or four variants. The markup is noisy in the raw text, and it doesn’t compose—you can’t have a critic-markup substitution inside another substitution. For a single “try this instead” pass, it works. For the kind of exploratory revision where you write a sentence four different ways, it breaks down fast.
Also, you can’t use CriticMarkup inside CriticMarkup.
What all of these have in common
Every one of these workarounds is trying to solve the same problem: keeping multiple versions of the same text alive in a document so you can compare, choose, and swap between them. Notion toggle blocks, Obsidian callouts, Scrivener snapshots, and iA Writer critic markup all approximate this, and they all fall short in the same ways:
- They’re not inline. The alternate version lives somewhere else—below the text, in a sidebar, in a snapshot archive—instead of occupying the same space as the original.
- They don’t compose. You can’t branch a branch. You can’t try a version that combines pieces of two other versions without manual copy-pasting.
- They’re not first-class. These are all repurposed features, built for something else and awkwardly shoved into a revision workflow.
The tool that’s actually built for this
This is why Quillium exists.
In Quillium, you select any span of text—a word, a sentence, a paragraph—and branch it. The branch creates a new version that lives in the same place as the original, you switch between versions with a click, and both are fully editable.
You can branch a branch. You can have three, four, five versions of the same sentence, all alive, all inline, all part of the document.
The closest analogy is Git branches, but for individual sentences. But unlike Git, branches are embedded in the document itself, with real-time switching and a single undo timeline that crosses branch boundaries. You can also mix-and-match the combinations of different branches, too.
It’s what Notion toggle blocks and Obsidian callouts are trying to be, except as a first-class feature rather than a duct-tape workaround.
If you’ve been parking alternate phrasings in toggles, callouts, snapshots, or critic markup, you already know you need this. You’ve just been building it yourself out of the wrong parts. You want Git for writing, but specifically designed for writers.