I'm glad you're here. :) I'm Isaac, and I built Mechanic. My intent is to make Shopify better for everyone. We do this, here, in two parts: (1) by making it as easy as possible for developers to solve merchant problems, and (2) by making it as easy as possible to use (and re-use) those solutions. Mechanic is very, very good at both.
Mechanic is a powerful platform, and I made it to empower everyone who uses it. You are invited. :)
Mechanic is an automation and development platform, for Shopify. :) Mechanic is a replacement for custom apps, allowing developers to solve a similar set of problems without having to host the infrastructure, or think about scaffolding. Developers can get more projects completed faster and more sustainably, by leveraging Mechanic's toolkit.
Mechanic is accompanied by an open-source library, with 280+ automation tasks ready to pull off the shelf, offering an accessible starting point for developers of all skill levels.
A developer writes tasks – Mechanic's term for a piece of automation. These tasks can respond to many different events, like a Shopify webhook, a manual trigger, a regular interval (e.g. hourly, daily), or an incoming email.
When a task responds to an incoming event, it can choose to generate an action – an operation that has an effect.
The Shopify action makes changes to a Shopify store, like tagging, publishing, creating or deleting resources. It provides direct and complete access to Shopify's admin API, with support for both REST and GraphQL.
The Email action is for sending email. It supports custom templates, and attachments.
The FTP action is for uploading files to an FTP or SFTP server. These files may be generated by the task, or can be fetched from external locations.
The HTTP action performs any request, to any HTTP endpoint. This facilitates integration with third-party APIs.
The Files action generates a variety of file formats, including PDF, CSV, ZIP, and anything retrieved from a public URL. Files generated this way receive a temporary URL of their own, and can be fed into other tasks for further processing.
Mechanic makes heavy use of Liquid – a template language created by Shopify. Its primary use is in task code. In the same way that a Liquid theme receives browser requests and renders HTML, a Mechanic task receives events, and renders actions (by defining them with JSON).
In Mechanic, our Liquid implementation includes additional support for constructing arrays and hashes, and includes many useful filters, making data processing more efficient.
Mechanic performs work using queues of runs, with no limit on how large each queue can become. If there is a sudden surge of incoming events for a Shopify store, the store's dedicated Mechanic queue could become delayed. This is an important difference between Mechanic and many other systems: in a high-traffic period, Mechanic will never refuse incoming events for a store; instead, it will process each one as soon as possible, by putting them into a run queue. The rate at which Mechanic processes work varies, depending on concurrency and the Shopify API rate limit.