Our favorite open source writing tools

Opensource.com correspondents share their favorite tools for churning out words.
127 readers like this.
Working from home at a laptop


Writing is one of the primary ways we communicate, and it's endlessly fascinating to see the different ways writers work. I can hardly imagine writing before computers and their ability to instantly edit and rearrange the words I've typed onto a screen. Likewise, I wonder whether people who started out writing on a typewriter process their thoughts differently, even on a modern word processor, or whether their workflow has changed and adapted because of these new tools.

We asked some of our correspondents how they get their thoughts into comprehensible words and what open source tools they prefer while doing so. As you might expect, we got different answers from everyone who answered.

Text editors and word processors

Many of our authors prefer text editors. Then again, Opensource.com works a lot with Markdown during preproduction, so there could be some bias. Text editors are popular choices, though, probably in part because of their relative minimalism and also due to the separation between style and content.

Word processors are popular, too, because they enable authors to keep all their work in one file. For instance, an ODT file is actually just a ZIP file containing XML documents and metadata.

Matthew Broberg:

I use VSCodium (or VS Code) with an amazing extension that gives shortcuts for Markdown behaviors. I keep a folder on my laptop called writing, and I keep articles in progress in GitLab. Write, iterate, git commit, and back up to GitLab.

Alternatively, when I want to keep everything in a cloud-based solution, I keep my work in HackMD or Etherpad.

Jason van Gumster:

I keep myself tied to the terminal when writing.

Writing happens in Vim, with a handful of plugins (e.g., my base .vimrc lives there).

For version control, I use Mercurial. I've used Git before for writing, but Mercurial just tastes better to me for creative work.

I use Wdiff for seeing word-level differences between versions.

When writing away from the desk (which doesn't happen much these days), I write on my phone with a Bluetooth keyboard. Using Termux on Android, I can get a full terminal and still have access to Vim and Mercurial with all my command-line toys. When interfacing with book editors, who still predominantly rely on a DOC-based workflow, I have to convert to DOC/DOCX (using Pandoc) and then work in LibreOffice to reconcile their notes.

Seth Kenlon:

I use Emacs and write mostly in DocBook. I use Git for version control. I maintain a custom stylesheet in XSL along with custom Makefiles to transform my DocBook source into plain text, HTML, EPUB, and PDF. When writing for Opensource.com, I often write in CommonMark for its simplicity, but for text I have to maintain, I keep the source in DocBook.

Joshua Allen Holm:

It varies slightly depending upon what and for whom I am writing. The basics look like this:

  • Research gets organized in Zotero, where I keep full-text copies of the PDFs and websites I need to reference.
  • Writing is done either in LibreOffice for academic stuff, where I need to include citations, or gedit when I write Markdown (for Opensource.com articles and the like).
  • My works in progress are stored in a Writing directory, which is organized into subdirectories based on what the writing is (for example, Writing/DistroWatch/Fedora 32 Review or Writing/Opensource.com/Summer Reading List).
  • An in-progress directory is version-controlled with Git and also copied to a flash drive that I store in a fireproof case at least once a week.
  • I make a PDF copy of every web-based article I write using the finished, published article and attach it to my bibliography in Zotero. Ditto for things that are not web-based, but the process is less tedious. I export from LibreOffice to PDF, or I just take the publisher's final PDF, whenever possible.

Planning tools

One of the most effective ways to write something with a predictable outcome is to outline it first. Not everyone outlines first, yet the end result is often just as good. The trade-off, however, is that writing organized with an outline is often completed sooner. With an outline, the logical flow of an article or paper is determined while input is still minimal. You don't have to sort through paragraphs and paragraphs of information; you only have to move headings. As you fill in the gaps between headings, the flow of the article becomes clear, and you can adjust immediately as needed.

Kevin Sonney:

My workflow is almost all in Joplin; research, notes, to-dos, etc., all using the built-in functionality, with sync to all my devices. I write in Markdown and submit that as a standalone document. For screenshots, I generally use the built-in OS screenshot tools, and I edit those in GIMP.

Seth Kenlon:

I use Org mode for outlines because they're so easy to rearrange both in terms of their order and inheritance. I've been experimenting with writing entirely in Org mode, but because so much of the content I write ends up going to Markdown in the end, it seems silly to introduce any unnecessary conversion steps.

Jason van Gumster:

Thoughts and brainstorming happen in mindmaps with Vym. It's not terminal-based, which is unusual in my writing workflow, but it's quite handy for organizing and planning.

Stay flexible

In all the answers we got about how people write, one common theme kept emerging: a willingness to experiment. Unsurprisingly, it seems our writers are eager to try out new technology and new systems, even if it means having to temporarily slow down personal productivity to learn something new. Sometimes, the net benefits are worth it. And when they're not, the worst thing that happens is that you've learned a new tool.

This is important for writers and for computerists in general—technology changes. Linux and open source do amazingly well to ensure backward compatibility and the ability to opt out of change, but eventually, we all have to grow.

Not only does this ensure that you're up to date on the latest tech developments, but it just may inspire you to write your own article for Opensource.com. Here's how correspondent Kevin Sonney sees it:

Honestly, my workflow is pretty ad-hoc. Something looks interesting? I make a note that I might want to write an article on it some day. When I have time, I do so.

This is just the tip of the iceberg in terms of open source tools people use for writing. What are your favorites? Please share them in the comments.

What to read next

Awesome vim plugins for writers

Vim is one of the most popular text editors among programmers, web developers, and power users of GNU/Linux. This is not surprising, because Vim offers high-speed editing, has…

User profile image.
Opensource.com publishes stories about creating, adopting, and sharing open source solutions. Follow us on Twitter @opensourceway.


I guess that my choice of tool depends on the job in hand, luckily I do not have to do much work with heavily formatted documents, so in general I prefer to write in a text editor most of the time:

It lets me concentrate on the content without the distractions of formatting
Text editors have powerful find and replace functions across multiple files
A tabbed interface is useful if I need to have multiple files open
If I do need to write or edit markdown some syntax highlighting is useful

I mostly agree with Peter. I like to focus on the content first, best done with a text editor, a simple text editor. The next question becomes, where is it that I want to get access to this information? If the reading is very straightforward, then maybe it just stays as plain text. If I want a little formatting, then maybe import the text to LibreOffice and add that. If I'm looking for layout, perhaps adding some images or SVGs, then I might import to Scribus.
In many cases I want easy access with available tools, so I convert to HTML so I can see it in a browser and make a bookmark for it. I like a very manual approach to HTML by doing that in a plain text editor also. If I need to I can add some CSS, but even that I will likely do manually in the editor. And while I'm at it, I'll use xhtml formatting, so that I can import to Sigil to make an ebook, if I want to be able to read it in a tablet. Calibre is nice on the desktop, but I would prefer to just leave the information as xhtml and view in a browser.
I know there are many markdown advocates, but I just can't get up the energy to put up with the learning curve. The multipotential aspect of markdown seems attractive, but there are a number of compromises you have to put up with.

I don't know how many others there are like me who have a website and domain name that is mainly just for me. I'm not trying to generate revenue by having ads on my site, I just want the information there for me. What this gets me is an ability to access certain information from whatever device I have with me, or even some public computer somewhere in the world. This is a distinct advantage for making documents in HTML/xhtml.

For those telling a story, you must check out https://bibisco.com/ it is incredible. And the supporter edition is well worth it for the extra features.

For office documents, LibreOffice.

For everything else, Vim. :-D

My writing tools are Emacs + org-mode + zetteldeft.

Ok. i haven't made zetteldeft work like it should work because of its manuals tricky/difficult to understand, at least to me. On the other hand, the whole Zettelkasten method is also difficult to understand.

For now there is no use of git/magit, but they are my version tools.

I also do academic (scientific writing) and so now use Zotero (having transitioned away from Mendeley) to organize reference materials, JabRef as my primary reference manager (BibTeX), and prepare manuscripts, slide presentations and posters with LaTeX (TeXstudio as editor, formerly Kile).
I simply have no use anymore for LibreOffice or similar MS Word-type applications except to open a document from someone else.

Most of my programming is simple enough to be conducted in a desktop text editor (gedit) or in vim and everything - code and manuscripts - is version controlled with git.

No one uses Lyx any more?

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.