All Projects β†’ dmccuskey β†’ Shopify Modern

dmccuskey / Shopify Modern

Licence: mit
A modern template for developing Shopify-themes using Vuejs

Projects that are alternatives of or similar to Shopify Modern

Shopify Theme Inspector
A Chrome DevTools plugin that visualizes Shopify Liquid render profiling data so you can triage long-running code and reduce server response times!
Stars: ✭ 102 (-25%)
Mutual labels:  shopify, liquid
Concrete
πŸ— Concrete Shopify Theme Framework
Stars: ✭ 124 (-8.82%)
Mutual labels:  shopify, liquid
dry
Dry is a new template engine and language, and is a superset of Shopify's Liquid, with first-class support for advanced inheritance features, and more. From the creators of Enquirer, Assemble, Remarkable, and Micromatch.
Stars: ✭ 66 (-51.47%)
Mutual labels:  liquid, shopify
vscode-liquid
πŸ’§Liquid language support for VS Code
Stars: ✭ 137 (+0.74%)
Mutual labels:  liquid, shopify
Shopify Lang
Multi-Language Shopify OnlineΒ Shop
Stars: ✭ 26 (-80.88%)
Mutual labels:  shopify, liquid
shopify-wishlist
πŸ’™ A set of files used to implement a simple customer wishlist on a Shopify store
Stars: ✭ 115 (-15.44%)
Mutual labels:  liquid, shopify
liquidpy
A port of liquid template engine for python
Stars: ✭ 49 (-63.97%)
Mutual labels:  liquid, shopify
gulp-shopify-theme
Shopify theme synchronisation during development
Stars: ✭ 26 (-80.88%)
Mutual labels:  liquid, shopify
Craigstarter
An open source crowdfunding tool built on Shopify
Stars: ✭ 484 (+255.88%)
Mutual labels:  shopify, liquid
Shopify Theme Lab
Shopify theme development environment using Liquid, Vue and Tailwind CSS πŸ§ͺ
Stars: ✭ 250 (+83.82%)
Mutual labels:  shopify, liquid
mechanic-tasks
Public task repository for Mechanic (https://mechanic.dev)
Stars: ✭ 42 (-69.12%)
Mutual labels:  liquid, shopify
Jsx Lite
Write components once, run everywhere. Compiles to Vue, React, Solid, Angular, Svelte, and Liquid.
Stars: ✭ 1,015 (+646.32%)
Mutual labels:  shopify, liquid
Moonmail
Email marketing platform for bulk emailing via Amazon SES (Google Cloud Platform and Azure coming soon)
Stars: ✭ 1,766 (+1198.53%)
Mutual labels:  shopify, liquid
bootstrap-shopify-theme
πŸ› A free Shopify Theme built with Bootstrap, BEM, Liquid, Sass, ESNext, Theme Tools, ... and Webpack.
Stars: ✭ 41 (-69.85%)
Mutual labels:  liquid, shopify
vscode-liquid-snippets
Shopify Liquid Template Snippets
Stars: ✭ 22 (-83.82%)
Mutual labels:  liquid, shopify
Language Liquid
Liquid language support for Atom.
Stars: ✭ 28 (-79.41%)
Mutual labels:  shopify, liquid
Slater Theme
Shopify Starter theme based on slate
Stars: ✭ 47 (-65.44%)
Mutual labels:  shopify, liquid
Shopify Birthday Suit
Exceedingly bare bones Shopify theme
Stars: ✭ 93 (-31.62%)
Mutual labels:  liquid
Jekyll
🌐 Jekyll is a blog-aware static site generator in Ruby
Stars: ✭ 43,803 (+32108.09%)
Mutual labels:  liquid
Liquid Rails
Renders liquid templates with layout and partial support
Stars: ✭ 91 (-33.09%)
Mutual labels:  liquid

shopify-modern

This proof-of-concept shows a method of creating an ecommerce experience for Shopify by using modern front-end development tools and techniques, while still leveraging some of the beneficial features of the Shopify system & infrastructure.

Overview

Shopify's Wordpress-like structure is as much fun to work with as Wordpress – "let's develop like it's 1999!" :-) These days we know that it can be done better.

This project shows a working, hybrid Shopify-template which still runs on the Shopify infrastructure. However, because of a very clear separation between Shopify and the front-end, we can develop the web experience using modern tools.

While this project template is NOT full-SPA, it helps by giving a roadmap for those wanting to transform an existing Shopify template into one which is both modern and full-SPA. The project already has features to help with that goal in mind.

Benefits

Here are some of the benefits of this framework / concept:

Framework

  • Modern development with Vuejs
  • Internationalization (i18n)
  • Special tags & filters (like in Shopify Liquid)
  • Clear separation between Shopify Liquid & Vuejs code & markup
  • Rendered page components determined using Vuejs routes paired with Shopify URLs.
  • Avoid any potential issues with Shopify 64k page-limit
  • Search-bot friendly (soon)

Shopify

  • Hosting / Scalability handled by Shopify
  • SEO friendly
  • Server-Side-Augmentation (ie, lightweight Server Side Rendering)
  • Settings / Config files still useful

Future

  • Clear path to full-SPA
  • Ability to do local development !

How it works

One of the main benefits is that the framework can serialize many of the Shopify data-objects. This serialized data can either be embedded in the primary HTML page or loaded later using HTTP requests. The corresponding front-end Vuejs objects can initialize themselves with either method.

Though this doesn't qualify as full server-side rendering, having embedded data speeds up the initial page draw since the information will not need to be loaded by subsequent AJAX requests.

In the future, there will be more control over which data is embedded and which is lazy-loaded after the first page render.

Steps to Template-Freedom

If you want to start integrating the ideas into an existing project, your main goal is to move almost all of the site information out of the Liquid templates. Two important steps for that would be:

  1. insert app anchors into HTML

    Depending on how far along you are with the transition, you can use one or many anchors which will be under control of your framework (eg, Vuejs).

    	<!-- a single anchor for the entire app (like in this project) -->
    	<div id="vueapp"></div>
    
    	<!-- one of many anchors for individual components -->
    	<div id="calendar-widget"></div>
    	<div id="product-picker-widget"></div>
    
  2. integrate a normal build process

    use Webpack or Gulp to generate a typical build file, eg dist/build.js.

    Do NOT include any of your front-end code in the Fluid templates. All of it should be inside of build.js, and that file being sourced from theme.liquid.

Setup

(rough notes!)

  1. Install Shopify Themekit
  2. Rename config-sample.yml to config.yml. Add your password, theme id, store name.
  3. Run webpack to re-pack code upon changes
  4. Run themekit to upload webpack output to Shopify

Libraries

This project uses these libraries:

Inspiration

Inspiration for this project came from the following:

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].