Skip to content

Brush - A Modern Framework for Custom Shopify Apps

A lightweight full-stack starter kit and framework for building scalable, production-ready Shopify Custom Apps.

Brush is a starter kit for building Shopify custom apps. Based on Gadget.dev for the backend and a ViteJS app embedding AlpineJS for the frontend.

Quick app boostrapping

Authentication, API access, data modeling, and localization are already wired together, so you can focus on building features instead of boilerplate.

Fast prototyping

Brush is optimized for fast iteration while preserving long-term architecture. Prototype quickly, validate ideas early, and confidently evolve the codebase into a production-grade Shopify app.

Cost effective

Built on open-source code and Gadget.dev’s free Hobby plan, working with Brush means zero upfront cost. Expenses scale only when business justifies it.

Gadget.dev powered backend

Get valuable enhancements that help build a powerful backend to add custom features to your Shopify shop.

ViteJS + AlpineJS theme

Include a bundled and optimized ViteJS app in your Shopify theme using the lightweight AlpineJS frontend framework for modern development and reactivity.

Seamless communication

Easily make authenticated RESTful API calls from your Shopify theme to your Gadget.dev backend while ensuring proper localization.

A set of must-have features

Full Typescript

Both the frontend and backend apps leverage Typescript for modern and bugless development.

Stateful frontend context

Synchronized cross-browser-tabs stateful context based on AlpineJS stores and persist plugin.

Fetch wrapper

Optimized frontend fetcher to cope with Shopify App Proxy’s authenticated requests and ensuring shop’s market consistency.

i18n

A single source of thuth: Shopify’s theme JSON translation files are converted to i18Next dictionnaries available in the frontend and backend.

Browser cache management

Ensuring up-to-date frontend app thanks to automatic update following Shopify’s assets versioning.

Precognitive forms

A powerful frontend form validator requesting server-side validation using Zod. A single submission process to validate and submit forms.

Quality of life

Handling referrers, custom Shopify post login redirection, price formatting, …

Admin and Storefront APIs

Out-of-the-box Admin and Storefront Shopify GraphQL APIs clients that are ready to use.

RESTful API

Using Gadget.dev’s routes so that the frontend app can make secured requests to the backend.

More-or-less soon to come

Persistent configuration

Storing custom shop-based configurations in Gadget.dev’s DB.

Slugifier

Always useful to be able to convert text to a standardized handle-like format.

Customer API

Adding the Shopify’s Customer GraphQL API to the backend app.

ID ↔ GID converted

A quick tool to easily switch from numbered ID to Shopify resources GIDs. And vice-versa.

Task scheduler

A system that plugs into the Gadget.dev scheduled actions that eases the run of background jobs.

Section updater

A helper that makes AJAX updates of targeted theme sections easy. Based on AJAX section rendering.