Tools for Better Writing

As I mentioned in a previous essay I write a lot. Not just essays, but also notes, poetry, books, technical documentation, discussions, and proposals at work. And because English is not my native language, I use plenty of tools to write better text. In the last two weeks, I reviewed all my essays and fixed hundreds of spelling mistakes, bad wording, shortened long or complicated sentences, or deleted redundant sentences.

I plan to improve the internal documentation of my company’s Design System. I investigated a multitude of tools to find a toolkit of useful applications for me.

Writing good text consists of two components, correct translation, and error-free, understandable writing.


Translation

If you’re a native speaker, you might want to skip this section.

Google Translate

I used Google Translate for a long time as my primary translation tool. I use the website and the browser extension, the iOS app, and the Raycast Google Translation application.

Google Translate has the largest number of languages, with 135.

DeepL

And although DeepL supports fewer languages (26) than Google Translate, the translation is much better as I see it. I use the website, the macOS application, iOS application, and the Chrome Extension that allows direct translation on websites.

Full-page translations and full document translations are exclusive to the DeepL Pro subscription, but I’m considering getting it.

I’m using the DeepL API (500,000 characters are free per month) to directly translate in Raycast with the Deepcast application.


Dictionaries & Thesaurus

Dictionary.com & Thesaurus.com

Dictionary.com is a fantastic platform with useful tools. It has besides the regular dictionary an Emoji dictionary, one for Slang, Acronyms, Pop Culture, Memes, and more.

The platform has good resources for learning English with games, lists, flashcards, and even a free Grammar Coach.

Thesaurus.com is the associated site of Dictionary.com. It allows searching for synonyms and antonyms. It’s possible to seamlessly jump between both sites.

Linguee

Linguee is the Dictionary of DeepL. It has over 1,000,000,000 translations. Searching for a word shows a dictionary entry, a Wikipedia excerpt, and external sources using the word in full sentences. It’s possible to activate the dictionary in DeepL by clicking on any word. A mobile app is available for iOS and Android.

Forvo

Forvo is a useful dictionary with a gigantic database of pronunciations spoken by native speakers.

Urban Dictionary

Urban Dictionary is the best resource for niche definitions and special terms.

Acronymfinder

Acronymfinder is my favorite dictionary to look up acronyms. The acronyms are grouped for better understanding in categories such as “Information Technology”, “Military & Government”, “Science & Medicine” and others.

dict.cc

dict.cc is a useful dictionary I use for years. It even has a Latin dictionary.

German Dictionaries

  • OpenThesaurus is a synonym dictionary for the German language.
  • MundMische is a dictionary for German slang and proverbs.
  • Sprachnudel is a German dictionary with synonyms and rhymes.

Japanese Dictionaries

  • Jisho is a minimalistic Japanese dictionary, including animations and stroke order for Kanji.
  • Tangorin is a website with a dictionary and vocabulary lists of widely used learning systems like JLPT or Jōyō.

Copywriting

LanguageTool

LanguageTool is a powerful Open Source proofreading software, linter, and grammar checker for more than 25 languages.

It has the most integrations I’ve seen in any tool yet. Besides the free translation on their website that supports the translation of Word documents, there is the LanguageTool Editor. With an account, you can write directly in the browser and keep a personal dictionary.

LanguageTool has browser extensions for Chrome, Edge, Firefox, Safari, and Opera.

It has an iOS, macOS, and Windows app. Add-ons for E-mail (Gmail, Thunderbird, Apple Mail) and Office (Google Docs, Microsoft Word, OpenOffice, and LibreOffice).

LanguageTool for macOS Desktop is under development (Beta). It allows using the service directly in Apple Mail, Apple Notes, and Apple Messages. Soon, it will support all macOS apps.

LanguageTool has a plugin available for my note-taking application Obsidian that allows checking the text directly in Obsidian.

Plugins allow using LanguageTool in Vim and Neovim and Visual Studio Code.

I subscribed to LanguageTool Premium because it has extra features. Enhanced grammar, punctuation, and style checking features, suggestions to improve style and tone, 100,000 characters limit per text field, detection of incorrect names, titles, and numbers, add-ins for Microsoft Word and Google Docs, and a style guide. I like to support the project.

Grammarly

Grammarly is another powerful proofreading software. The basic plan includes checking for grammar, spelling, punctuation, conciseness, and tone. Premium adds more features including checks for clarity, engagement, delivery, and the detection of plagiarism. Grammarly supports the English language. You can edit texts in the online editor, the macOS application, iOS, Android, and with the Chrome extension in the browser. The desktop app supports checking in every app.

iA Writer

iA Writer is my favorite app to write text. I write nearly everything with iA Writer. I have in my Apps, for example in Neovim, Visual Studio Code, and Obsidian a shortcut, to open the current document in iA Writer, make changes, save it and go back to the other application.

With iA Writer, the writing is bliss. Focus mode allows writing distraction-free while highlighting the active sentence or paragraph. It supports powerful syntax highlights to spot weak verbs, repetition, and clutter. And a useful Style Check to remove fillers, clichés, and redundancies.

The last update in iA Writer brought support for the WikiLink syntax that allows me to navigate and write notes on my Obsidian vault.

Hemingway App

The Hemingway App is a free online editor to check text for Readability, passive voice, complicated phrases, hard sentences, and other unpleasant things.

Linters and Text Checkers

The community around linters and text checkers is big, and a wide variety of tools written in different languages can help out writing good text.

  • Alex is a Node.js package to catch insensitive, inconsiderate writing.
  • Write Good is a linter for English prose written in Node.js.
  • Proselint is another linter for prose written in Python.
  • Joblint is a tool written in Node.js to test job posts for issues with sexism, culture, expectations, and other recruiter fails.
  • Codespell is a tool to find common misspellings in text files written in Python.

Vale

Vale is one of the coolest projects. It’s an Open Source command-line tool that allows for creating a custom editorial style guide.

The good thing is that Vale supports all (except Codespell) of the packages I mentioned above, plus style guides of major companies such as Red Hat, Microsoft, and Google and Readability.

Readability is a collection of popular readability metrics. It includes the Flesch Kincaid Reading Ease, Flesch Kincaid Grade Level, Gunning Fog Score, SMOG Index, Coleman Liau Index, and Automated Readability Index. All those are mathematical formulas that calculate the complexity and level of a text. I’ll leave it up to you to research the different metrics.

It’s possible to configure Vale to use packages in parallel. If you work on a personal project, two or three of the packages should be more than enough. If you write text for a company, you might start with a writing style guide, for example, Microsoft’s style guide. But you can create a custom company style guide, that knows about all the special terms and acronyms and words not to use. You can include the style guide in any project and automatically check every written text.

Vale has nine integrations, for example, Visual Studio Code, Vim, Emacs, or Obsidian.

Installation

To install Vale on macOS, you can use Homebrew:

brew install vale

I recommend creating a global configuration file in your home directory that will work even when Vale is not configured to work with a specific project.

cd ~
touch .vale.ini # This creates the configuration file

You open this .vale.ini file in a text editor to add your configuration. Vale has a config generator that can help create the configuration. You pick the style guides you want to use, and the generator creates it for you.

This is my configuration file. You can maintain custom vocabulary files, I use one: Base. Inside the projects is a Vocab folder that includes a Base folder with an accept.txt and a reject.txt. You add one word per line to each file.

I use no base style and three supplementary style guides. My configuration limits the checking for Markdown and Text files, but it’s possible to check any file type. I turned off two rules that annoyed me.

StylesPath = .vale

MinAlertLevel = suggestion
Vocab = Base

Packages = Readability, proselint, write-good

[*.{md,mdx,txt}]
BasedOnStyles = Vale, Readability, proselint, write-good

# Turn off rules
Vale.Terms = NO
write-good.E-Prime = NO

[formats]
njk = html

To install all selected packages, you’ll need to run this command in your home directory (or in a projects’ directory, in case you installed it for a project):

vale sync

Now you’re good to go, everything should work and Vale is running. The next time you open a supported editor with the installed Vale plugin, everything should be underlined in white, yellow, or red (depending on the warning level). You’ll be surprised how much your text sucks. 😂