Skip to content

Migrating from Finicky 3

John Sterling edited this page Jun 1, 2025 · 8 revisions

Finicky 4

image

Finicky 4 is a complete rewrite of Finicky. The plan has been to have Finicky work like always, making the upgrade unnoticeable. That being said, some things have changed.

  1. Finicky now runs on demand. Finicky 3 was always running in the background, taking up some resources. Finicky will now start, parse and evaluate the configuration and then close down shortly after. This also means the menu bar Finicky previously displayed is no longer available. Most workflows are supported in the new configuration window, but some aren't, for example evaluating urls for testing.

  2. Finicky now supports ECMAScript modules. If you aren't familiar with them, it's mostly a change from using module.exports = {...} (CommonJS modules) to export default {...} in the Finicky 3 configuration. Finicky 4 still supports CommonJS modules, but will print a deprecation warning.

  3. Finicky now has built typing support. If you have a compatible editor, it can display validation help when writing configuration. See this wiki page to learn how to enable this.

  4. Finicky now uses URL interfaces instead of custom URL objects. Again, Finicky is backwards compatible and supports the old url and urlString parameters, but the ideal way to use Finicky 4 is using URL objects.

Why rewrite Finicky?

I decided to rewrite Finicky because of a couple of reasons:

  • to not have to maintain a project that required XCode
  • to fix a couple of mistakes that were made in the API design
  • to make Finicky not run in the background constantly
  • to enable the possibility of a multiplatform app (nothing planned though)

Clone this wiki locally