Asset Compilation, Slate Replacement, and General Developer Experience

New Member
1 0 0

I am fairly new to Shopify Theme development, but a fairly old hat developer in general. I understand Slate wasn't in line with the direction Shopify is moving towards in regards to themes, but (unless something is being worked on in a private repository) I haven't seen anything else providing a comparable workflow. I feel like a solution is sorely missing, and I don't think I'm alone in this?

I am currently using hayes0724/shopify-packer for my current client's theme, which is not too bad, and have played around with uicrooks/shopify-theme-lab which also seems okay. However, I think it it would sense for Shopify to provide something 1st party, that is a little more feature-full than Themekit, but general enough that developers can use whatever tools they are most comfortable with.

I would like to see, personally:

  1. Speedy local development, with a dev server serving assets
  2. Layout, template, and section scoped assets, that are only sourced/linked when needed
    • Optionally if feasible: I would love to be able to write code inside the {% javascript %} and {% stylesheet %} tags and have the contents compiled and imports loaded appropriately
  3. Somewhat related to 2, a general content_for(?)/yield Liquid tag set (this would be useful also for including/excluding app assets)
  4. Allow usage of common front end scripting and styling libraries without too much pain, e.g. Vue, Svelte, Lit, Tailwind/Windi
    • Should ideally package these so any imports are split and chunks loaded only when needed.
  5. Test runner for both Shopify supported Liquid, and JavaScript

In the front end world these days (though this will be out of date in a few hours), there are some fairly nice tools that could be leveraged to make these goals achievable. The ones I have come across that align best with the above goals seem to be Vite and Snowpack.

Vite Ruby is a good example for Vite, which has plugins that use a Rails backend for loading pages, so a plugin could be written/adapted to use the Shopify Theme preview as a backend, and Snowpack can be used as Node server middleware, and other options which could be used in a Themekit dev server of some sort. One (or both) of these would be a great addition to the tools provided.

Happy to hear people's thoughts on all this.