The State and Future of Shopify Frontend/Theme Development

ThemeKit

Slate

Slate Issues

  • MacOS support only — The first of these issues is that for all of its life, Slate has never officially supported Windows. I (Mark) am a Mac user, but our development team has a mix of Windows and Mac users so this poses an immediate problem. I ended up having to set up a MacOS build server for our developers on Windows to be able to update Slate themes.
  • Agency Transition — When a Shopify merchant changes agencies, unless the prior agency freely gives their Slate build files, the new agency can’t really edit/maintain the old theme because all the Javascript and CSS files are compiled on the server and basically unreadable/uneditable.
  • Admin Them Editor — Because the JS and CSS files are stored on the server compiled this also means that it’s not really possible to edit these files from the Admin. Some agencies might view that as a bonus because they don’t want pesky clients editing their theme, but I view it as a net negative because you don’t even have the option and merchants are kind of taken aback when they find out they no longer have the control with Shopify that they thought they did.
  • Beta — Despite Shopify pushing Slate as their theme development platform for the future, it has never gotten out of beta. Even v1.0 is considered beta and there have been many breaking changes along the way. So if you were working on building a theme on one version of Slate, the next month you might have to rewrite significant parts of your theme in order to stay compatible with the latest version.
  • Low Maintenance — And finally Shopify announced earlier this year that they put the project on “low maintenance”. And what they explained that means is they will only fix bugs if “Shopify developers own work is blocked”. This seems kind of like a gut punch to all the agencies that invested time and resources into building clients’ sites in Slate and now they’re kind of on their own if they find bugs unless an internal Shopify developer is facing the same issue.

The Future

  • Multi-platform support — From the start, the tool should both support MacOS and Windows. I say this as Mac user, but the reality is that we live in a multiplatform world and if there isn’t Windows support from the start, you’re excluding a very big part of your userbase.
  • git Version Control/Deployments — Shopify does have its own form of version control in the Admin theme editor, but it would be great if themes were built with git version control in mind since that’s what most developers use to control the source and you would also be able to control deployments with git (i.e. push to a repository and it updates the live theme). We do use git already for Shopify, but we have to do a bit of a funky workflow to make it work.
  • Local development asset server/Auto Browser Refresh — I think one of the most valuable aspects of Slate is that rather than having to wait for a change to be uploaded to Shopify by ThemeKit and then having to manually refresh the page, Slate creates a local proxy server to serve the static assets from and has an auto browser refresh that is almost instantaneous. When building a theme or making big modifications to an existing theme, the seconds saved by not having to wait a few seconds for every change to show up really adds up over time.
  • Local/Server Build System — I think things like ES6+ support and compilation are great in Slate, but I think it should never come at the expense of Admin theme editing capabilities. Any true “building” should be done on the server side so if you edit a file in the Admin theme editor, it auto builds it. This build tool should also be available locally as part of the local development asset server so if you don’t want to wait for the file to be uploaded and compiled, you don’t have to. But ultimately you should always have to upload the raw build source so that a merchant doesn’t ever get into a situation where they’re locked into their old agency for theme maintenance because they have the build files and won’t release them.
  • Auto-Optimization — This one can be tied to the build system, but I think at a minimum, you should have the option to auto-minify CSS, JS, and HTML files like Cloudflare does, without having to use any sort of build system. Other features like Rocket Loader to reduce blocking JS and Mirage to optimize images would be amazing as well. Shopify even currently uses Cloudflare in some regions so this shouldn’t be out of the realm of possibility.

What Else?

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Mark William Lewis

Mark William Lewis

236 Followers

eCommerce Web Developer (Magento/Shopify). Remote Worker (currently working from Miami Beach). Business Owner (netalico.com). Cat Lover (Cookie/Fender).