{"id":18710724,"url":"https://github.com/apify/actor-monorepo-example","last_synced_at":"2025-11-03T16:28:30.206Z","repository":{"id":175246666,"uuid":"623458337","full_name":"apify/actor-monorepo-example","owner":"apify","description":"An example repository with multiple Apify Actors sharing code between each other.","archived":false,"fork":false,"pushed_at":"2024-09-06T09:51:25.000Z","size":51,"stargazers_count":1,"open_issues_count":2,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-24T22:36:34.170Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apify.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-04T12:15:13.000Z","updated_at":"2024-09-06T09:51:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"bbd652e4-f395-41ae-99c1-65f81a322448","html_url":"https://github.com/apify/actor-monorepo-example","commit_stats":null,"previous_names":["apify/actor-monorepo-example"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Factor-monorepo-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Factor-monorepo-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Factor-monorepo-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Factor-monorepo-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apify","download_url":"https://codeload.github.com/apify/actor-monorepo-example/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231600658,"owners_count":18398550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-07T12:35:27.023Z","updated_at":"2025-10-14T23:34:10.298Z","avatar_url":"https://github.com/apify.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apify Actor monorepo example\n\nThis repository shows how to structure a monorepo containing multiple Apify Actors,\nalong with shared packages used in multiple packages.\n\n## Structure\n\nThe project is structured as a NPM workspace,\nwith the Actors being in the `@actors` scope and packages in the `@packages` scope.\n\nThe TypeScript Actors and packages are structured in one TypeScript project,\nwith project references ensuring that they are built in the correct topological order\nbased on their interdependencies.\n\nTo enable testing the TypeScript Actors locally\nwithout having to rebuild them or the TypeScript packages after every code change,\n`ts-node` along with the [`tsconfig-paths`](https://github.com/dividab/tsconfig-paths) loader is used.\nSince `tsconfig-paths` does not play well with ESM packages,\na custom wrapper for the loader is used, defined in `module_loader.js`.\n\nThe `actors` folder contains the code of the Actors in this project.\nThere is one JavaScript actor and one TypeScript actor,\nwith their respective Dockerfiles showing how to build them on the Apify Platform correctly,\nincluding the shared packages, but excluding the code of other actors.\n\nThe `packages` folder contains simplistic packages that are used in multiple Actors.\nThere is one JavaScript and one TypeScript package,\nand both are written as ES modules.\n\nThe `shared` folder contains an input schema for both of the Actors,\nwhich is referenced from the respective Actor's `.actor/actor.json` file.\n\n## Building monorepo Actors on the Apify platform\n\nTo build Actors from a monorepo,\nyou have to specify the path to the correct Actor in the Git URL of the Actor on the Apify Platform.\n\nFor example, to build the TypeScript Actor from this monorepo,\nyou would specify this in the Actor's setup:\n\n- Git URL: `https://github.com/apify/actor-monorepo-example`\n- Branch: `main`\n- Folder: `actors/typescript-actor`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapify%2Factor-monorepo-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapify%2Factor-monorepo-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapify%2Factor-monorepo-example/lists"}