{"id":28957777,"url":"https://github.com/stefbowerman/cadaver-2.0","last_synced_at":"2025-06-23T22:04:18.333Z","repository":{"id":189828002,"uuid":"680959439","full_name":"stefbowerman/cadaver-2.0","owner":"stefbowerman","description":"Cadaver is a starter Shopify Online 2.0 Theme","archived":false,"fork":false,"pushed_at":"2025-06-22T15:22:34.000Z","size":3951,"stargazers_count":21,"open_issues_count":37,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-22T15:38:45.729Z","etag":null,"topics":["shopify","shopify-theme"],"latest_commit_sha":null,"homepage":"","language":"Liquid","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stefbowerman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-21T00:21:19.000Z","updated_at":"2025-06-22T15:22:38.000Z","dependencies_parsed_at":"2023-08-22T00:21:49.154Z","dependency_job_id":"7877ad80-f0b4-41e7-9a16-7a7d33d145a4","html_url":"https://github.com/stefbowerman/cadaver-2.0","commit_stats":null,"previous_names":["stefbowerman/cadaver-2.0"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/stefbowerman/cadaver-2.0","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefbowerman%2Fcadaver-2.0","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefbowerman%2Fcadaver-2.0/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefbowerman%2Fcadaver-2.0/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefbowerman%2Fcadaver-2.0/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefbowerman","download_url":"https://codeload.github.com/stefbowerman/cadaver-2.0/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefbowerman%2Fcadaver-2.0/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261565320,"owners_count":23177749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["shopify","shopify-theme"],"created_at":"2025-06-23T22:02:05.183Z","updated_at":"2025-06-23T22:04:18.327Z","avatar_url":"https://github.com/stefbowerman.png","language":"Liquid","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cadaver 2.0\n\nCadaver is a custom architected, Shopify Online 2.0 theme boilerplate.\n\n__In Action__ - Used as the starter theme for the official [GitHub Shop](https://thegithubshop.com/).\n\n__Features:__\n- Minimal JS framework for working with Shopify sections and DOM components.\n- [Taxi.js](https://taxi.js.org/) with link pre-fetching built-in for fast, SPA like browsing experience\n- [Tailwind](https://v3.tailwindcss.com/) for styling\n- Webpack configuration for bundling SCSS and JS files\n- 95+ scoring on all lighthouse speed tests.\n- Lazy image loading\n- GSAP powered animations and page transitions\n- A11y best practices\n\n__JavaScript Architecture:__\nThe frontend application was architecture with three big things in mind:\n1. SPA-like browsing experience via Taxi.js.\n2. First-class section elements via [BaseSection](_scripts/sections/base.js) class combined with a [SectionManager](_scripts/core/sectionManager.js) class to handle all Shopify [theme editor events](https://shopify.dev/docs/storefronts/themes/best-practices/editor/integrate-sections-and-blocks) along with initialization and clean up during the Taxi.js [renderer lifecycle](https://taxi.js.org/renderers/).\n3. Nestable components with auto-cleanup via [BaseComponent]((_scripts/components/base.js)) class.\n\n\u003e Note: This is a working theme that I use as a boilerplate for all production Shopify projects.  I continutally update it so that I can leverage all of the core e-commerce solutions that I have developed on previous projects.  It is not built as a production-ready theme, but rather a battle-tested foundation for quickly creating new themes.  It contains minimal styling on purpose.\n\n\u003e I do not \"version\" this theme as it is a constant work in progress.  Please note it is liable to change at any time.\n\n## Project Structure\n\n```\n├── _js\n│   └── Working javascript files.  Bundled as `app.bundle.js`.\n├── _styles\n│   └── Working scss files.  Bundled as `app.bundle.css`.\n├── assets\n│   └── Javascript, CSS, Font Files, Images, SVGs, etc..\n├── config\n│   └── settings_data.json\n│   └── settings_schema.json\n├── layout\n│   ├── theme.liquid\n│   └── Alternate layouts (optional)\n├── sections\n│   ├── shopify sections\n├── snippets\n│   └── optional custom code snippets\n├── templates\n│   ├── customers/\n│   ├── 404.json\n│   ├── article.json\n│   ├── blog.json\n│   ├── cart.json.liquid\n│   ├── cart.liquid\n│   ├── collection.json\n│   ├── index.json\n│   ├── list-collections.json\n│   ├── page.json\n│   ├── password.json\n│   ├── product.json\n│   └── search.json\n```\n\n## NPM Scripts\n\n- Start webpack watcher -\u003e `npm run dev`\n- Compile for production -\u003e `npm run build`\n\n## Development\n\n- Node version - `v22.XX`\n\n```\n# Start the webpack watcher\n$ npm run dev\n\n# Start the theme watcher in another terminal\n$ shopify theme dev --store={store_id}\n```\n\n## Manual Deployment\n\u003e __Note__: this process is only necessary for themes that do _not_ use the GitHub integration.  This is an entirely manual process that I use to push a single codebase to multiple stores.\n\nDeploying updates to the site is a multi-step process as we need to push code changes while preserving the template settings on the live theme.\n\nFirst, duplicate the live theme.  Name is appropriately (e.g. Cadaver - [Deploy])\n\nSecond, when pulling down changes, we *only* want to pull json template files as these contain all of the settings for the live site.  To do this, make sure that the `.shopifyignore` file contains the following:\n\n```\n# .shopifyignore\n\nsections/\nsnippets/\nassets/\nlayout/\ntemplates/cart.json.liquid\nconfig/settings_schema.json\n```\n\nNext:\n```\n# Checkout a separate branch for safety\n$ git checkout -b deploy origin/main\n\n# Pull down remote theme files\n$ shopify theme pull\n\n# Select the duplicated theme from earlier\n$ \u003e Cadaver - [Deploy] [unpublished]\n\n# Verify that the previous command only affected json template files\n$ git status\n```\nNote: `shopify theme pull` overrides files, it does not merge them.\n\nBecause of this, any code changes made to `.json` templates will be overwritten.  If the changes you are deploying added additional sections to any of these, they will need to be reconciled manually.  If not, you will likely see an error when pushing (e.g. `section does not exist`).\n\nAt this stage, we've pulled the settings from the (duplicated) live theme onto our local copy which contains the latest `main` branch code.  Since the `main` branch is ahead of the live theme, we now need to reverse the process and push our local changes.\n\nFirst, update the `.shopifyignore` file to remove the lines added earlier.  It should be empty:\n\n```\n# .shopifyignore\n\n```\n\nNext:\n```\n# Compile assets for production deploy\n$ npm run build\n\n# Push the files up to the store\n$ shopify theme push\n\n# Select the duplicated theme from earlier\n$ \u003e Cadaver - [Deploy] [unpublished]\n```\n\nView the theme and verify that the update code is running and that no site settings have been lost.  Publish the duplicated theme through the Shopify Theme Admin.  Rename it to reflect the changes:\n\n```\nCadaver - [Deploy] -\u003e Cadaver - Live [hash] # Include git hash\n```\n\n🎉 Deployment Complete 🎉\n\nLastly, cleanup your git state by removing the local changes and deleting the deployment branch\n```\n$ git reset HEAD --hard\n$ git checkout main\n$ git branch -D deploy\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefbowerman%2Fcadaver-2.0","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefbowerman%2Fcadaver-2.0","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefbowerman%2Fcadaver-2.0/lists"}