My long form writing setup

An early Obsidian user I eventually switched away to Logseq because it works better for me as a PKM; however, I have recently rediscovered Obsidian for a different purpose: as a replacement for Ulysses, the MacOS app I previously used for my long form writing. I had long been bothered by a couple of deficiencies with Ulysses that Obsidian fixes: the weird markdown syntax it uses, the lack of tighter integration with Zotero, and some weird buggy behavior that crops up now and then. (Yes, you can use standard markdown in Ulysses, but then you lose some of the Ulysses only features.) I also wanted some kind of task management to keep track of what needs to be done within the document itself (rather than using a separate app for this).

Since it took me a while to figure out how to replicate my Ulysses writing experience, I thought I’d share my setup here. I’ll try to update the post as I continue to tweak my settings. (I still haven’t tried out everything here, so it is likely to change.)

Long Form Writing

  • Commentator
    • Supports CriticMarkup syntax for tracking changes, as well as adding comments and viewing them in the sidebar
  • Longform
    • Concatenate multiple documents, strip code, and export. (I only use this at the end, as I find it a bit restrictive when working on early drafts.)
  • Pandoc Reference List
    • Format and list all in-text citations. Autocomplete from Zotero API.
  • Templater
    • Create default templates. Haven’t tried yet
  • Writing Goals
    • Similar to what Ulysses offers

Task management

  • Tasks
    • View all tasks in vault, grouped by file

Styling and UX

  • iA Writer theme
    • some conflicts with the task checkbox styling so I had to add some custom CSS snippets, see below.
  • Focus Mode
    • Quickly toggle focus mode
  • MySnippits
    • Add and manage css snippits. Currently using for snippet that formats task checkboxes.
  • Typewriter Mode
    • Keep text in center and fade other paragraphs
  • Workspace Plus
    • Maintain multiple obsidian workspaces
  • Zoom
    • Zoom in on header like an outliner



  • BRAT
    • To install Commentator, which is in beta

Custom CSS sippets

Added this to the alternative checkbox css because the iA Writer theme tries to force its own plain text checkboxes.

/* Custom styles for checkboxes */
body input[type="checkbox"].task-list-item-checkbox {
  /* Reset default checkbox appearance */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  width: 15px; /* Custom width */
  height: 15px; /* Custom height */
  border: 2px solid var(--checkbox); /* Custom border */
  cursor: pointer; /* Hand cursor on hover */
  position: relative; /* To position pseudo-elements */

/* Override the ::after pseudo-element for unchecked tasks */
body input[type="checkbox"].task-list-item-checkbox:not(:checked)::after {
  content: none;

/* Custom styling for checked state */
body input[type="checkbox"].task-list-item-checkbox:checked {
  background-color: var(--checkbox-done); /* Example checked color */
  /* Add other styles for checked state if needed */

I also like high contrast orange text:

body, p {
  color: #f6ad55 !important; /* Bright orange color, with !important to ensure it overrides other styles */

Additional notes