{"id":13469515,"url":"https://github.com/saleor/apps","last_synced_at":"2026-06-15T09:01:34.383Z","repository":{"id":65565344,"uuid":"577308074","full_name":"saleor/apps","owner":"saleor","description":"A central space for Saleor Apps, integrations, and the App Store 🚀","archived":false,"fork":false,"pushed_at":"2026-06-10T11:42:08.000Z","size":32218,"stargazers_count":155,"open_issues_count":93,"forks_count":403,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-06-10T12:23:44.051Z","etag":null,"topics":["apps","commerce","ecommerce","nextjs","saleor","saleor-app","saleor-avatax","saleor-cms","saleor-klaviyo","saleor-search","saleor-smtp"],"latest_commit_sha":null,"homepage":"https://apps.saleor.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saleor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-12-12T13:01:18.000Z","updated_at":"2026-06-10T11:30:17.000Z","dependencies_parsed_at":"2023-09-23T12:48:49.778Z","dependency_job_id":"f5e75752-e249-4bf8-9d58-a42568467e25","html_url":"https://github.com/saleor/apps","commit_stats":null,"previous_names":[],"tags_count":1227,"template":true,"template_full_name":null,"purl":"pkg:github/saleor/apps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleor%2Fapps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleor%2Fapps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleor%2Fapps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleor%2Fapps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saleor","download_url":"https://codeload.github.com/saleor/apps/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saleor%2Fapps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34355156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apps","commerce","ecommerce","nextjs","saleor","saleor-app","saleor-avatax","saleor-cms","saleor-klaviyo","saleor-search","saleor-smtp"],"created_at":"2024-07-31T15:01:43.144Z","updated_at":"2026-06-15T09:01:34.031Z","avatar_url":"https://github.com/saleor.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"![Saleor Apps](https://user-images.githubusercontent.com/44495184/208925145-78c5022c-1a6c-4f2c-8f4f-7500e7afcaf0.png)\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eSaleor Apps\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eThe central space for Saleor Apps, Integrations and Marketplace.\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://saleor.io/\"\u003e🏠 Website\u003c/a\u003e\n  \u003cspan\u003e • \u003c/span\u003e\n  \u003ca href=\"https://docs.saleor.io/\"\u003e📚 Docs\u003c/a\u003e\n  \u003cspan\u003e • \u003c/span\u003e\n  \u003ca href=\"https://saleor.io/blog/\"\u003e📰 Blog\u003c/a\u003e\n  \u003cspan\u003e • \u003c/span\u003e\n  \u003ca href=\"https://twitter.com/getsaleor\"\u003e🐦 Twitter\u003c/a\u003e\n  \u003cspan\u003e • \u003c/span\u003e\n  \u003ca href=\"https://saleor.io/discord\"\u003e💬 Discord\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://docs.saleor.io/developer/extending/apps/quickstart\"\u003e🆕 Apps Quickstart\u003c/a\u003e\n  \u003cspan\u003e • \u003c/span\u003e\n  \u003ca href=\"https://github.com/saleor/apps/discussions/categories/integrations-features\"\u003e✍️ Propose an app\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n## Overview\n\nThis repository serves as a starting point in the exploration of Saleor apps.\n\n\u003e _Saleor apps are separate applications that use GraphQL to talk to the Saleor server and receive webhooks with event notifications from Saleor._\n\u003e\n\u003e [docs.saleor.io](https://docs.saleor.io/developer/extending/apps/overview)\n\n### Apps list\n\nIn the `apps` folder, you will find the following applications:\n\n- [AvaTax](./apps/avatax) - calculates dynamic taxes via AvaTax API.\n- [CMS](./apps/cms) - exports products from Saleor to CMS.\n- [Klaviyo](./apps/klaviyo) - send Saleor events to Klaviyo, where you can notify customers.\n- [Products feed](./apps/products-feed) - generates product feed XML.\n- [Search](./apps/search) - connects Saleor with search engines.\n- [Segment](./apps/segment/) - connects Saleor with Twilio Segment.\n- [SMTP](./apps/smtp) - enables email communication with customers.\n- [Stripe](./apps/stripe/) - connects Saleor with Stripe.\n- [NP Atobarai](./apps/np-atobarai/) - connects Saleor with NP Atobarai (Japanese: NP 後払い).\n\n#### Example apps\n\n- [Slack integration app example](https://github.com/saleor/examples/tree/main/example-app-slack)\n- [Taxjar integration app example](https://github.com/saleor/examples/tree/main/example-app-taxjar)\n- [Invoices app example](https://github.com/saleor/examples/tree/main/example-app-invoices)\n- [CRM app example](https://github.com/saleor/examples/tree/main/example-app-crm)\n- [Sendgrid integration app example](https://github.com/saleor/examples/tree/main/example-app-sendgrid)\n\n## Development\n\nYou can find the documentation for saleor/apps on [docs.saleor.io](https://docs.saleor.io/developer/extending/apps/local-app-development).\n\n### PNPM and corepack\n\nDue to an issue with [outdated signatures in Corepack](https://github.com/nodejs/corepack/issues/612), Corepack should be updated to its latest version first:\n\n```shell\nnpm install --global corepack@latest\n```\n\nAfter that, run this command to install pnpm with the proper version:\n\n```shell\ncorepack enable pnpm\n```\n\n### Turborepo\n\nThis repository uses [Turborepo](https://turbo.build/) remote caching. If you are a Saleor employee, you can leverage it by running the following commands in the root of this repository:\n\n```shell\npnpm dlx turbo login\npnpm dlx turbo link\n```\n\n### Installing new packages\n\nThis has following requirements for improved supply chain security:\n\n- Packages must be older than 21 days\n- Added packages must use exact version (no `^` or `~`)\n- Packages versions cannot have a downgraded provenance security\n- All installs are using froze lockfile to prevent unintended changes in transitive dependencies, to update packages anyway, you must use: `pnpm install --no-frozen-lockfile`\n\n## ADR\n\nThis repository uses [architecture decision records](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions) to document architectural decisions. You can find them in the `adr` directory.\n\nTo add a new ADR, follow [the guide](https://github.com/npryce/adr-tools).\n\n## Contributing\n\nWe love your contributions and do our best to provide you with mentorship and support. However, please keep in mind that the `saleor/apps` monorepo is used by Saleor to host apps in Saleor infrastructure. While the code remains open source, the decisions in this repository are made to enable Saleor to maintain features needed by its business goals.\n\nIf you are looking for an issue to tackle, take a look at issues labeled [`Good first issue`](https://github.com/saleor/apps/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+) and [`Help wanted`](https://github.com/saleor/apps/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22).\n\nIf nothing grabs your attention, check [our roadmap](https://saleor.io/roadmap) or [start a Discord discussion](https://saleor.io/discord) about a feature you'd like to see. Make sure to read our [Contribution Guidelines](http://docs.saleor.io/developer/community/contributing) before opening a PR or issue.\n\n## Forking \n\nYou can fork this repository to modify and self-host one of the apps. Keep in mind that this is a monorepo, which adds two additional steps to the process:\n- When forking, all the apps are forked, even if you need only one.\n- There are shared dependencies between apps, stored in the `packages/` folder. Even if you need only one app, you still need at least some packages.\n\nYou can try two techniques to fork the repository:\n1. You can fork everything and keep everything. When you back-merge changes, unused apps will be updated without any issues. You need to ensure you run scripts from the context of the app you are interested in, e.g., `cd apps/avatax \u0026\u0026 pnpm dev`. Your tooling should be configured to ignore other apps for better performance.\n2. You can fork everything and remove the apps you don't need. It will reduce the number of files in your fork, but you may need to modify some scripts to ensure they work properly (e.g., if some root scripts expect multiple apps, they may fail).\n\n\n## Deployment\n\nApps are written in Next.js and are hosted on Vercel by Saleor. Everyone should be able to host an app on Vercel if the app is configured properly. Apps share common code, but some of the functionalities are app-specific. For example, AvaTax and Segment apps require DynamoDB to run. Check each app's \"env\" files to verify what must be provided to deploy.\n\n### Docker\n\nThe repository contains [Devcontainers](https://containers.dev/) setup which includes Dockerfiles. They are meant for development. At the moment, Saleor doesn't provide official production Dockerfiles. Feel free to write your own, based on the development ones.\n\n### APLs\n\nApps follow the BYOA (bring your own APL) approach. A minimal set of APLs are implemented in the source code, to avoid maintaining unused dependencies and increasing bundle size. You may want to use another APL client, like Redis. In such a case, please ensure your fork does the job. Usually apps contain a single file that imports APL from `@saleor/app-sdk`. Your fork can ensure this file contains your own APL setup.\n\n### MCP\n\nTo help AI agents properly interact with Saleor, you can use the [Model Context Protocol](https://modelcontextprotocol.io/introduction), which can interact with Saleor by understanding the GraphQL schema.\n\nStart by populating the `.env` file under the `mcp` folder with:\n\n```\nMCP_GRAPHQL_ENDPOINT= # Saleor API endpoint (ends with /graphql/)\nMCP_GRAPHQL_TOKEN= # local app token (see https://docs.saleor.io/api-usage/authentication#app-authentication for more details)\n```\n\nMake sure that you don't use quotes in env variables (as they will be loaded by the bash script).\n\nThen follow your editor's docs to get started with MCP:\n\n- [VS Code](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)\n- [Cursor](https://docs.cursor.com/context/model-context-protocol#configuration-locations)\n- [JetBrains IDE](https://www.jetbrains.com/help/ai-assistant/configure-an-mcp-server.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaleor%2Fapps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaleor%2Fapps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaleor%2Fapps/lists"}