Skip to main content

4 posts tagged with "announcements"

View All Tags

Taking Vale Server to the web

Vale Server now works with Gmail, GitHub, Medium,, WordPress, Confluence, … and more!

When I launched Vale Server last year, supporting browsers and other web-based applications was one of the primary goals. The initial release included support for Chrome, but there were still a lot of details that needed to be figured out.

The extension has since been completely re-written to better support the features and ideals of Vale Server — specifically, the extension:

  • Respects your data. It only requests the most basic of permissions and is entirely warning-free according to Chrome (a very rare distinction among writing-related extensions).

  • Is unintrusive by design. It doesn’t interfere with the structure (DOM) of websites you visit or any other installed extensions, including those that also need to access your text content.

  • Supports both textarea and contenteditable elements. This allows the extension to work out-of-the-box on a wide range of websites and web-based applications: it now supports Gmail, GitHub, Medium,, Twitter, Confluence, … and many more!

These points not only represent a significant step forward for Vale Server’s usability on the web, but they also make it unique among the growing landscape of writing-related extensions.

Warning-free privacy#

The new Vale Server extension requires no special permissions, and is entirely-warning free according the Chrome.

Chrome extensions are built around a system of permissions: each extension must specifically request access to individual APIs, which it can then use to implement its functionality. These are roughly split into two categories — those that require a warning and those that do not.

Most writing-related extensions depend heavily on warning-level permissions, often requiring the most invasive access level available: “Can read and change all your data on the websites you visit.”

This is a lot of power to give an extension and, as Chrome states, can present a significant security risk: “… if the extension is ever compromised, the attacker gets access to everything the extension had.”

Vale Server, in contrast, takes a completely different approach:

  • The extension communicates with a local instance of Vale Server—meaning your content is never sent to a remote server, stored, or otherwise inspected; and

  • requires zero warning-level permissions; it only has access to content that you specifically give it access to (by clicking on its toolbar icon).

This means that you can safely use the extension without having to worry about what content the extension (or a third-party) has access to.

Compatible with other extensions and services#

The new Vale Server browser extension’s user-interface (UI) is completely standalone; it doesn’t alter the DOM or inject any code (JavaScript/HTML/CSS) into the page itself.

Vale Server running alongside Gmail’s built-in spelling and grammar checker.

This makes it easy to run alongside other extensions or site-specific functionality that needs to either access the same content or to inject their own UI elements into the current page. In other words, it doesn’t make you choose between using it or something else — you can use it with your other favorite services.

Works where (and how) you want#

With the new Vale Server extension, you can leverage Vale’s markup syntax and configuration options to the fullest extent.

Your style—on the web!#

All of your projects and custom styles are supported in the browser, allowing you to use Vale Server just as you would in a local text editor like VS Code.

Vale Server using a custom style (“MyCompany”) in Confluence Cloud editor.

This allows you to keep your writing style consistent and on-brand even when writing remotely on the web.

Support for both textarea and contenteditable#

The new extension supports both plain textarea (shown below on GitHub) and contenteditable (shown above using Confluence) elements.

Vale Server checking Markdown content on GitHub (under “Dark Mode” on macOS).

textarea elements are checked as plain text by default, but you can also specify a certain markup format on a per-site basis (such as Markdown on GitHub or Reddit). contenteditable elements are checked as HTML.

Both options have full support for Vale Server’s scoping capabilities.

The next step: WebExtensions for cross-browser support#

The extension is available now for Chrome and will soon be rolling out to both Firefox and Opera. Microsoft Edge and Safari are also on the roadmap.

To learn about the extension, check its updated documentation. If you run into any issues, please visit the GitHub project page to share a bug report.

Vale Server v1.4

Vale Server’s new Studio page

I’m pleased to announce v1.4 of Vale Server today, the fourth major release of Vale’s desktop application. Development for v1.4 was almost entirely focused on improving the Dashboard, including the new Studio page.

Vale Studio [beta]#

One of Vale’s most popular features is its support for YAML-based rules, which allow for a high degree of customization and extensibility without requiring any programming experience. The new Studio dashboard page leverages the machine-readable nature of these YAML files to offer a suite of validation and debugging tools.


At the most basic level, Vale Studio will warn about “malformed” rules — such as those with YAML formatting errors or missing keys.

Vale Studio warning about a rule missing an 'extends' keys.

For each of the supported extension points (currently, existence, substitution, occurrence, and repetition), Vale Studio will check that all required keys are defined and have valid values (where applicable).


Assuming a rule passes the validation suite, its results will be shown in the right-hand editor panel:

Vale Studio displaying a rule’s in-text alerts.

This allows for rule creation and testing without needing to first configure the required components (StylesPath, .vale.ini, etc). And while only Markdown is currently supported, future releases will introduce support for all of Vale’s supported markup formats.

regex101 Integration#

Many of Vale’s extension points are designed to provide a layer of abstraction over raw regular expressions, allowing for less boilerplate and more maintainable patterns. For example, consider the following substitution rule:

extends: substitution
message: "Consider using '%s' instead of '%s'"
level: warning
ignorecase: false
# swap maps tokens in form of bad: good
abundance: plenty
accelerate: speed up
accompany: go with
address: discuss
allocate: divide

Under the hood, Vale converts this YAML file into the following regular expression:


Where the capture groups are used to associate a token (e.g., accompany) with its replacement (go with).

In general, this significantly improves the readability and maintainability of Vale’s rules. However, it can also make debugging a misbehaving rule more difficult since the actual pattern is a “hidden” implementation detail. Vale Studio attempts to address this issue by providing built-in integration with regex101, an online service for testing regular expression (which, importantly, supports Go’s flavor):

A demonstration of Vale Studio’s regex101 integration.

Clicking the “regex101” button while developing a rule will open a new session with the correct settings and values (from Vale Studio).

Going Forward#

Vale Server’s new Studio page* *represents a significant improvement to Vale’s development workflow, but there’s still quite a bit of work to be done—future releases of Vale Server will include the following additions:

  • Support for spelling rules, including regex101 integration for filters and auto-generated ignore files.

  • Support for multi-pattern and exception-based rules (conditional, consistency, and capitalization).

  • Support for importing, exporting, and saving Studio sessions.

Check out the Vale Server website to start your free trial today!

Vale Server v1.3

A demo of Vale Server’s VS Code extension

The past few months have been quite busy in terms of Vale and Vale Server development, I’ve released Vale v2.0.0-beta, Vale Server v1.2, and new versions of the Atom, Sublime Text, and Visual Studio Code clients.

Today I’m here to announce yet another new release, Vale Server 1.3, which builds off of a bunch of work that’s been done with Vale v2.0.0 and the new text editor clients.

LanguageTool Integration#

While Vale Server is primarily concerned with enforcing certain *writing styles*, the ability to provide grammar-related suggestions has been a popular feature request. v1.3 addresses this request by integrating with LanguageTool, an open-source grammar checker with over 2,000 rules for English.

The integration is seamless and all of your favorite Vale Server features will still work out-of-the-box: After installing LanguageTool through the dashboard, you’ll have access to a new LanguageTool style that can be used like any other.

A Vale Server project using the new `LanguageTool` style.

This will allow you to receive grammar suggestions across all of Vale Server’s editor clients, while still making use of Vale Server’s sophisticated understanding of markup (which LanguageTool doesn’t support on its own).

Here’s an example document showcasing some of the new rules:

Rule Actions#

The second major new feature in v1.3 is the ability to fix style violations from within your favorite text editor (currently, VS Code, Atom, and Sublime Text are supported):

Style support for Rule Actions is still a work in progress, but LanguageTool, Microsoft, Vale, and Google have all been updated to make use of the new feature.

See the Vale Server website for more information. (Note: the latest features in v1.3 aren’t currently available in free trial builds.)

Vale Comes to the Desktop

Introducing Vale Server, a native desktop app for Vale

Vale Server running on macOS

8 months ago, I released the first stable version of Vale. Since then, I’ve shifted my focus to bringing Vale’s command-line functionality to a native desktop application. This post will discuss some of the enhancements and refinements that have been implemented along the way.


Vale Server maintains Vale’s high standards for performance and privacy. It consists of three components:

  • A cross-platform GUI layer written in C++, allowing the app to appear as native as possible without having to maintain multiple codebases;

  • a platform-specific OS interaction layer that makes use of native APIs (e.g., Cocoa on macOS); and

  • an embedded HTTP server for interacting with a custom build of Vale. This server runs locally, meaning that you never have to send your content to a remote destination.


Project configuration using Vale Server

The biggest core change is the introduction of projects, which address the long-standing issue of style inheritance. To illustrate the purpose of projects, consider the following scenario:

You’re working for an organization that adheres to the Microsoft Writing Style Guide, so you’ve installed the style and added it to your configuration file. Over time, you add your own organization’s terminology to various rules and exception lists (e.g., Acronyms.yml and Headings.yml). A few weeks later, a new version of the style is released with various bug fixes and enhancements. What do you do now? You either have to overwrite your changes altogether or slowly migrate each customized rule individually.

Projects make this process much easier. Each project is a single folder (stored at <StylesPath>/Vocab/<Project name>/) that consists of two text files—accept.txt and reject.txt—that contain one word or phrase per line (similar to how ignore files currently work).

All entries in accept.txt are automatically added to a case-insensitive substitution rule (Vocab.Terms), ensuring that any occurrences of these words or phrases exactly match their corresponding entry in accept.txt. Additionally, each term is automatically added to every exception list in all inherited styles — meaning that you now only need to update your project’s vocabulary to customize third-party styles.

Entries in reject.txt are automatically added to an existence rule (Vocab.Avoid) that will flag all occurrences as errors.

You can associate a project with a particular .vale.ini file via the new Project key, as shown in the screenshot above.

Vale Dashboard#

An example of using the new Vale DashboardAn example of using the new Vale Dashboard

The Vale Dashboard represents the future of Vale asset management. It currently allows you to create, delete, and sort vocabulary terms for each of your projects.

In future releases of Vale Server, you can expect to be able to manage all of your Vale-related assets—ignore files, rules, and even entire styles—right from your browser-based dashboard.

Style Management#

Vale Server’s style management page

The introduction of projects opens the door to a lot of style-related improvements. Since you can now customize styles without having to actually edit their source files, future releases of Vale Server will have the ability to install, remove, and update styles from within the application itself.


Vale Server running on a GitHub text box

One of the most important features of Vale Server is its ability to interact with sandboxed (or otherwise restrictive) applications such as web browsers and email clients. There are two ways to use Vale Server with other applications:

  • By installing one of its official plugins for Google Docs, Microsoft Word, Sublime Text, Atom, or Visual Studio Code (Note: some of these are still in development, but they will all be available by the end of the testing period discussed below); or

  • by using its native clipboard API, allowing you to use it with applications that don’t have an official plugin (as shown in the above screenshot).

Going Forward#

Vale Server is currently in a pre-release testing phase.

Once this phase is complete, it will be available as a one-time purchase for macOS, Windows, and Linux. One license key will give you access on multiple platforms and devices.

Stay tuned for updates!