diff --git a/README.md b/README.md index fba69c2..f0d6fc8 100644 --- a/README.md +++ b/README.md @@ -11,17 +11,19 @@
🏠 Website - 📚 Docs + 📚 Docs 📰 Blog 🐦 Twitter
-
-
- Build an app ▶️ + 🆕 Apps Quickstart + + 🗓️ Roadmap + + ✍️ Propose an app
## Overview @@ -32,9 +34,51 @@ This repository serves as a starting point in the exploration of Saleor apps. > > [docs.saleor.io](https://docs.saleor.io/docs/3.x/developer/extending/apps/key-concepts) -From here, you can visit: +### Apps list -- [🔍 Apps documentation](https://docs.saleor.io/docs/3.x/developer/extending/apps/key-concepts) - to learn more about how you can use apps to extend the capabilities of Saleor. -- [🆕 Quickstart Tutorial](https://docs.saleor.io/docs/3.x/developer/extending/apps/quickstart/getting-started) - to build your first app using [Saleor CLI](https://docs.saleor.io/docs/3.x/cli). -- [🗓️ Roadmap](https://github.com/orgs/saleor/projects/22/views/1) - to see the current progress on the development of official Saleor apps. -- [✍️ GitHub issues](https://github.com/saleor/apps/discussions/categories/integrations-features) - to submit a proposal for creating a new integration or an app. +In the `apps` folder, you will find the following applications: + +- [data-importer](./apps/data-importer) - import data from CSV to Saleor. +- [invoices](./apps/invoices) - generate invoice PDF for each order. +- [klaviyo](./apps/klaviyo) - send Saleor events to Klaviyo, where you can notify the customers. +- [search](./apps/search) - connect Saleor with search engines. +- [slack](./apps/slack) - get notifications on Slack channel from Saleor events. + +## Development + +### Setup + +Make sure you have installed `pnpm`: +```bash +npm install -g pnpm +``` + +Install all dependencies: +```bash +pnpm install +``` + +Start the apps` dev servers: +```bash +pnpm dev +``` + +> The apps' ports will be displayed in the terminal output. +> +> You can find the required env vars for each app in `apps/NAME/.env.example` file. + +To start an individual app, run: +```bash +pnpm dev --filter=saleor-app-X +``` + +where X is the app's name (matching saleor/X). + +### Build +To build all apps, run: +```bash +pnpm build +``` + +### Documentation +- [Forking](/docs/forking.md) diff --git a/docs/forking.md b/docs/forking.md new file mode 100644 index 0000000..cf5b200 --- /dev/null +++ b/docs/forking.md @@ -0,0 +1,30 @@ +# Forking + +Saleor apps come out of the box in Saleor Cloud plans, but all apps are open source and can be used +under the [BSD-3 license](../LICENSE). + +When forking, you are most likely interested in an individual app. This monorepo, however, contains all of the Saleor apps. + +Luckily, you can still fork and be able to track and merge the original source code with two strategies: + +## 1. Delete unused apps + +The repository contains apps and packages which are imported by apps. Apps never import other apps, +so you can safely delete them. + +When you remove all the apps except the one you need, Turborepo will continue to work the same way. + +Additionally, you can run scripts per individual apps with `turbo run SCRIPT --filter=saleor-app-NAME`. + +We recommend not removing anything else to avoid unnecessary conflicts. + +If you want to update the repository, you can still merge or rebase it with the original source code. +You may face conflicts for apps you don't have anymore, but you can safely delete them again during conflict resolution. + +## 2. Keep everything + +To avoid conflicts to a minimum, you can leave other apps and just ignore them. These tips can help you with a single app experience: +- Mark other app folders as "excluded" in your IDE to avoid indexing these files. +- Run your scripts with Turborepo filters, e.g. `turbo run SCRIPT --filter=saleor-app-NAME`. +- Use `pnpm` to avoid duplicated packages. `pnpm` installs packages once and links them, which causes minimal performance overhead of node_modules. +