This is a sample app (with TypeScript) to help developers bootstrap their Shopify app development.
It leverages the Shopify API Library on the backend to create an embedded app, and Polaris and App Bridge React on the frontend.
The original template (with JavaScript) is Shopify/shopify-app-template-node that is used when you create a new Node app with the Shopify CLI.
- If you don’t have one, create a Shopify partner account.
- If you don’t have one, create a Development store where you can install and test your app.
- If you are not using the Shopify CLI, in the Partner dashboard, create a new app. You’ll need this app’s API credentials during the setup process.
- Clone the repo
npx degit kanzitelli/shopify-app-template-typescript shopify-app-ts
- Create Shopify app
- You can do it using Shopify CLI:
shopify app create node
Then copy .env
file to the typescript project and remove the one you just created.
- Or you can do it in the Shopify Partner Dashboard and then filling
.env
file with app's credentials (see.env.example
).
Note: HOST
value will be auto-filled when you run the app.
- Go to your app's directory and install packages
cd shopify-app-ts && yarn
Note: You could see error fatal: not a git repository (or any of the parent directories): .git
that comes from husky install
command. Once you do git init
, it will disappear.
- Run the app
shopify app serve
- Install and start using the app by opening provided URL (from step 4) in your browser: https://some-ngrok-subdomain-xxxx.ngrok.io/login?shop=your-shop-name.myshopify.com
We will probably need to deploy it somewhere in the cloud when we are done with the app.
So Dockerfile
and Docker Compose
with https://
setup will be coming soon...
There are plans to create an advanced shopify-app-starter
that will be powered by React Router, Mobx, a more opinionated structure, release-it, and other useful things.
I started developing a Shopify app some time ago that uses NextJS and Koa, which are deprecated in favour of pure React App and Express. The codebase was primarily written using TS, and it was painful to see that Shopify doesn't provide a new template with TS setup. There is the issue since January 2022 where people ask for TS support but no luck so far. So that's how this repo was born. I tried to keep it as close as possible to the original repo but with TypeScript support.
This repository is available as open source under the terms of the MIT License.