26
stars
785
commits
TypeScript
primary language
Sep 8, 2026
updated
Shoppy is a demo application that showcases the capabilities of Metabase's React Embedding SDK. It is a simple e-commerce dashboard that allows shop owers to view and analyze sales data.
The demo is available at https://embedded-analytics-sdk-demo.metabase.com.
This demo uses the data from the hosted Metabase Cloud instance and provides a hosted JWT server, therefore you do not need to run the Metabase server and JWT server locally.
Create local environment files.
cp .env.example .envInstall the required dependencies.
yarnRun the React frontend.
yarn devDisable CORS in your browser. You can find how to do it here https://medium.com/@beligh.hamdi/run-chrome-browser-without-cors-872747142c61; also you can use a browser extension.
Visit http://localhost:3004 in your browser.
[!IMPORTANT]
The following sections are for Metabase employees who are working on the embedding SDK. If you are not a Metabase employee, you can skip the following sections.
.env.docker.example to .env.docker and set the proper PREMIUM_EMBEDDING_TOKEN value.yarn docker:up for the production build or WATCH=true yarn docker:up for the development build with the watch support.
http://localhost:4400.yarn docker:down.yarn docker:rm.For a local development the App DB dump of the Shoppy's Metabase Instance must be downloaded.
See the Getting the App DB dump section.
metabase.jar, copy it to the ./local-dist folder as ./local-dist/metabase.jar../local-dist folder as ./local-dist/embedding-sdk.yarn docker:local-dist:up to start containers and use locally built dist from the ./local-dist folder.yarn docker:rm.Place the metabase repository in ../metabase
Open a new terminal and run yarn build-release:cljs && yarn build-embedding-sdk:watch in the metabase repository. This watches for changes and builds the embedding SDK in development mode.
Re-run the following command every time you make changes to the embedding SDK's source. This re-links the built SDK to the demo application.
yarn dev:link && yarn devIf you cannot use the hosted JWT server, you can run the JWT server locally.
Update the API server's environment variables in api/.env. If you are a Metabase employee, refer to the "Shoppy - Environment File" item on the 1Password vault.
Run the API server.
cd api && yarn && yarn devRun the React frontend.
yarn dev:link && yarn devTo run e2e tests locally, the App DB dump of the Shoppy's Metabase Instance must be downloaded.
See the Getting the App DB dump section.
Then run yarn docker:e2e:up to start all required containers.
After containers are up, run cd e2e && yarn cypress:open to run Cypress.
To stop containers run yarn docker:rm.
For a local development or for running e2e locally an App DB dump of the Shoppy's Metabase Instance must be placed to the ./metabase/metabase_dump.sql
You can get it by:
Tailscale and logging in using your work email address.pg_dump "postgres://{{ username }}:{{ password }}@{{ host }}:{{ port }}/{{ database }}" > ./metabase/metabase_dump.sql command.
Shoppy Coredev Appdb record in 1password for credentials.TypeScript
71.8%
CSS
14.4%
JavaScript
9.4%
Shell
2.2%
HTML
1.1%
Dockerfile
1.1%
26
stars
785
commits
TypeScript
primary language
Sep 8, 2026
updated
Shoppy is a demo application that showcases the capabilities of Metabase's React Embedding SDK. It is a simple e-commerce dashboard that allows shop owers to view and analyze sales data.
The demo is available at https://embedded-analytics-sdk-demo.metabase.com.
This demo uses the data from the hosted Metabase Cloud instance and provides a hosted JWT server, therefore you do not need to run the Metabase server and JWT server locally.
Create local environment files.
cp .env.example .envInstall the required dependencies.
yarnRun the React frontend.
yarn devDisable CORS in your browser. You can find how to do it here https://medium.com/@beligh.hamdi/run-chrome-browser-without-cors-872747142c61; also you can use a browser extension.
Visit http://localhost:3004 in your browser.
[!IMPORTANT]
The following sections are for Metabase employees who are working on the embedding SDK. If you are not a Metabase employee, you can skip the following sections.
.env.docker.example to .env.docker and set the proper PREMIUM_EMBEDDING_TOKEN value.yarn docker:up for the production build or WATCH=true yarn docker:up for the development build with the watch support.
http://localhost:4400.yarn docker:down.yarn docker:rm.For a local development the App DB dump of the Shoppy's Metabase Instance must be downloaded.
See the Getting the App DB dump section.
metabase.jar, copy it to the ./local-dist folder as ./local-dist/metabase.jar../local-dist folder as ./local-dist/embedding-sdk.yarn docker:local-dist:up to start containers and use locally built dist from the ./local-dist folder.yarn docker:rm.Place the metabase repository in ../metabase
Open a new terminal and run yarn build-release:cljs && yarn build-embedding-sdk:watch in the metabase repository. This watches for changes and builds the embedding SDK in development mode.
Re-run the following command every time you make changes to the embedding SDK's source. This re-links the built SDK to the demo application.
yarn dev:link && yarn devIf you cannot use the hosted JWT server, you can run the JWT server locally.
Update the API server's environment variables in api/.env. If you are a Metabase employee, refer to the "Shoppy - Environment File" item on the 1Password vault.
Run the API server.
cd api && yarn && yarn devRun the React frontend.
yarn dev:link && yarn devTo run e2e tests locally, the App DB dump of the Shoppy's Metabase Instance must be downloaded.
See the Getting the App DB dump section.
Then run yarn docker:e2e:up to start all required containers.
After containers are up, run cd e2e && yarn cypress:open to run Cypress.
To stop containers run yarn docker:rm.
For a local development or for running e2e locally an App DB dump of the Shoppy's Metabase Instance must be placed to the ./metabase/metabase_dump.sql
You can get it by:
Tailscale and logging in using your work email address.pg_dump "postgres://{{ username }}:{{ password }}@{{ host }}:{{ port }}/{{ database }}" > ./metabase/metabase_dump.sql command.
Shoppy Coredev Appdb record in 1password for credentials.TypeScript
71.8%
CSS
14.4%
JavaScript
9.4%
Shell
2.2%
HTML
1.1%
Dockerfile
1.1%