This page contains resources for people interested in contributing to this repository or developing a plugin](./plugins.md).
The Shopify CLI is a tool for merchants, partners, and developers to interact with the platform from their terminals. Its technical design allows adding features horizontally through plugins that build on cli-kit. @shopify/theme, @shopify/app, @shopify/cli-hydrogen are examples of plugins to develop themes, apps, and hydrogen storefronts, respectively.
The list below contains valuable resources for people interested in contributing to the CLI project in this repository.
- Get started
- Architecture
- Conventions
- Performance
- Debugging
- ESLint rules
- Testing strategy
- Cross-OS compatibility
- Troubleshooting
- FAQ
The @shopify/cli-kit
NPM package provides utilities to abstract away interactions with the Shopify platform (e.g., authentication, API requests) and ensures experiences are consistent across the board. If you are creating a new plugin or contributing to an existing one, we recommend checking out the following resources:
The following pages document the rationale behind some decisions that we made:
- December 2022 - Dynamically importing Lodash using CommonJS
- August 2022 - Automating via Nx
- May 2022 - IDs' persistence
- March 2022 - Lazy downloading a fixed version of the extension binary
- March 2022 - Configuration source of truth
- February 2022 - Incremental builds with Nx
- February 2022 - ESM, Rollup, and Vitest
- January 2022 - Unified dependency graph
- January 2022 - TypeScript rewrite