To get started with Checkout UI extensions, Shopify Functions, Post-purchase extensions, or Web pixel app extensions, you can use Shopify CLI, which generates starter code for building your extension and automates common development tasks. The following is a lightweight guide for getting started to build. You can alternatively learn how to use the GraphQL Admin API to [style checkout for a brand](/docs/apps/build/checkout/styling), such as changing the colors and corner radius settings on checkout form fields. ## Requirements - You've created a [Partner account](https://www.shopify.com/partners). - You've created a new [development store](/docs/api/development-stores). Depending on the extension type that you're generating, you might also need to enable the [Checkout and Customer Accounts Extensibility developer preview](/docs/api/developer-previews#checkout-and-customer-accounts-extensibility-developer-preview). - You're using the latest version of [Shopify CLI](/docs/api/shopify-cli). - You're using the latest version of [Chrome](https://www.google.com/chrome/) or [Firefox](https://www.mozilla.org/). ### Language-specific requirements for writing Shopify Functions in Rust - You've installed [Rust](https://www.rust-lang.org/tools/install). On Windows, Rust requires the [Microsoft C++ Build Tools](https://docs.microsoft.com/en-us/windows/dev-environment/rust/setup). Make sure to select the **Desktop development with C++** workload when installing the tools. - You've installed the [`wasm32-wasip1`](https://doc.rust-lang.org/rustc/platform-support/wasm32-wasip1.html) build target.

## Get started 1. Scaffold an app: ```bash shopify app init ``` 1. Navigate to your app directory: ```bash cd ``` 1. Run the following command to create a new extension: ```bash shopify app generate extension --name my-extension ``` 1. Choose from one of the following extension types: - **Checkout UI** - **Function** (any of the sub-types) - **Post-purchase UI** - **Web Pixel** 1. Select a language for your extension. For this quickstart, if you chose a `Function` extension type, then select either **Rust** or **JavaScript**. 1. Complete one of the following steps: - If you chose a `Checkout UI`, `Post-purchase UI` or `Web Pixel` extension type, then start your development server to build and preview your app: ```bash shopify app dev ``` Press `p` to open the developer console. In the developer console page, click on the preview link for your extension. - If you chose a `Function` extension type, then navigate to `extensions/my-extension` and build the function's Wasm module: ```bash cd extensions/my-extension cargo build --target=wasm32-wasip1 --release ``` To test your function, you need to make it available to your development store. [Learn more](/docs/apps/build/functions/test-debug-functions#testing-on-your-development-store). ## Next steps - Learn how to use checkout UI and post-purchase extensions by following [one of our use case tutorials](/docs/api/checkout-extensions#getting-started).