A production-grade Shopify theme built on Dawn, powered by a modern Webpack + Tailwind + SASS build pipeline and shipped automatically with GitHub Actions.
This repository is a customizable Shopify storefront theme built on top of Dawn (Shopify's reference theme) and re-tooled with a real front-end engineering workflow. Instead of editing theme files directly in the Shopify admin, the theme is written in a clean src/ source tree, compiled with Webpack, styled with Tailwind CSS + SASS, and auto-deployed to Shopify through a GitHub Actions pipeline on every push to main.
It doubles as a portfolio of custom Liquid sections β hero layouts, an API-driven product comparison tool, a vendor filter, a reusable design system page, and more.
π‘ Why it's interesting: most Shopify themes are edited live in the admin. This project treats a Shopify theme like a proper software project β versioned source, a build step, and continuous deployment.
- π§± Modular Liquid architecture β 69 sections, 66 snippets, and full template coverage (product, collection, cart, blog, customer accounts, search, 404, password).
- β‘ Modern build pipeline β Webpack 5 bundles JS with Babel and compiles SCSS into a Shopify-ready
theme.css.liquid. - π¨ Tailwind CSS + SASS β utility-first styling layered on top of Dawn's component CSS with PostCSS + Autoprefixer.
- π API-driven sections β a product comparison feature that fetches live product data (title, price, description, SKU) via the Shopify Admin/REST API using
async/await. - π¦Έ Custom sections β bespoke hero, image-with-text, dynamic homepage, product vendor filter, and a design-system showcase page.
- π Continuous deployment β GitHub Actions builds the theme and pushes it live with the Shopify CLI on every merge to
main. - π₯ Live theme development β
shopify theme devhot-reloads the compileddist/output against your store.
| Layer | Tools |
|---|---|
| Templating | Shopify Liquid |
| Styling | Tailwind CSS 3, SASS/SCSS, PostCSS, Autoprefixer |
| Bundling | Webpack 5, Babel (@babel/preset-env), mini-css-extract-plugin |
| Tooling | Shopify CLI, npm-run-all, copy-webpack-plugin |
| CI/CD | GitHub Actions |
.
βββ .github/workflows/
β βββ deploy-theme.yml # CI/CD: build + deploy to Shopify on push to main
βββ src/ # Source of truth (edit here)
β βββ assets/ # JS + component CSS
β βββ config/ # Theme settings schema
β βββ layout/ # theme.liquid
β βββ locales/ # Translations
β βββ sections/ # Liquid sections (hero, comparison, filtersβ¦)
β βββ snippets/ # Reusable Liquid partials
β βββ templates/ # JSON/Liquid page templates
β βββ styles/theme.scss # SCSS entry point
βββ dist/ # Compiled theme (served/deployed by Shopify CLI)
βββ webpack.config.js # Build configuration
βββ tailwind.config.js # Tailwind configuration
βββ postcss.config.js # PostCSS configuration
Build flow: you edit src/ β Webpack compiles JS/SCSS and copies Liquid into dist/ β the Shopify CLI serves or deploys dist/.
- Node.js (LTS)
- Shopify CLI β
npm install -g @shopify/cli - A Shopify store (or development store)
# 1. Clone the repository
git clone https://github.com/topshopifydev/Shopify-App.git
cd Shopify-App
# 2. Install dependencies
npm install
# 3. Start local development (builds + live theme preview)
npm start| Command | Description |
|---|---|
npm start |
Runs Webpack in watch mode and shopify theme dev in parallel |
npm run dev |
One-off development build |
npm run build |
Production build into dist/ |
npm run watch |
Rebuild on file changes |
npm run theme:dev |
Serve the compiled dist/ theme with the Shopify CLI |
| Section | What it does |
|---|---|
| New Hero | Responsive hero with adaptive image srcset, review stars, and an "as seen in" logo strip. |
| Product Comparison (v1βv4) | Lets shoppers pick products and compare them side by side, loading product data live from the Shopify API with fetch + async/await. |
| Vendor Filter | Filters the product grid dynamically by vendor. |
| Design System Page | A living style guide showcasing the theme's typography, colors, and components. |
| Dynamic Homepage Section | Merchant-configurable content blocks driven by section settings. |
Every push to main triggers deploy-theme.yml, which:
- Checks out the repository
- Installs Node dependencies
- Runs the production build (
npm run build) - Installs the Shopify CLI
- Deploys the compiled theme to the connected Shopify store
Store credentials are provided via GitHub Actions secrets β no sensitive data lives in the repo.
Contributions, issues, and feature requests are welcome! Feel free to open an issue or submit a pull request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-section) - Commit your changes (
git commit -m 'Add an amazing section') - Push to the branch (
git push origin feature/amazing-section) - Open a Pull Request
This project is licensed under the ISC License.
βοΈ If this project helped or inspired you, consider giving it a star! βοΈ
Built with Liquid, Webpack, and a lot of β