← Selected work

Shopify App / Compare & Diff

Theme Drift

A 3-way theme diff that separates a merchant's own edits from a theme update, so customizations survive the upgrade.

Role
Solo founder: product, design and engineering
When
Sep 2026, live on the App Store
Platform
Embedded Shopify app
Links
Theme Drift homepage
Product page

The problem

When a customized theme gets a new version from its developer, merchants can't tell their own edits apart from the upstream changes. Updating means either losing customizations or redoing them by hand, file by file.

What I built

Theme Drift compares two or three themes side by side: the original version, the merchant's live copy and the new release. Every file gets a status (only mine changed, only the update changed, both changed the same way, or a real conflict), and conflicts are sorted to the top.

Under the hood

  • Checksum first: file lists are paged through the Admin API and compared on Shopify's own MD5 checksums. File bodies are only fetched when a merchant opens a file, in batches of 50.
  • Two line diffs (base to mine, base to theirs) are merged into one aligned Base / Mine / Theirs grid with word-level highlighting and Liquid syntax highlighting.
  • Images, video, audio and fonts are classified and compared visually instead of as text.
  • It works with a single read_themes scope and never stores theme content: every comparison runs live.

Where it stands

Launched in September 2026 in 10 languages. Two-way comparison is free and the 3-way view is a one-time purchase.

Built with

React Router 7PolarisAdmin GraphQLjsdiffPrismi18nextPrismaPostgreSQL