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:
- Speedy local development, with a dev server serving assets
- 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
- Somewhat related to 2, a general content_for(?)/yield Liquid tag set (this would be useful also for including/excluding app assets)
- 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.
- 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.
Cheers!