{"id":20301554,"url":"https://github.com/zero-one-group/monorepo","last_synced_at":"2025-07-01T07:04:37.785Z","repository":{"id":250133503,"uuid":"833569815","full_name":"zero-one-group/monorepo","owner":"zero-one-group","description":"The Zero One Group approach to Monorepo uses a standardized boilerplate for building new projects, ensuring consistency and scalability.","archived":false,"fork":false,"pushed_at":"2025-07-01T03:24:08.000Z","size":2383,"stargazers_count":57,"open_issues_count":12,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-01T07:02:49.298Z","etag":null,"topics":["astro","biomejs","boilerplate","docker","golang","monorepo","moonrepo","nextjs","nodejs","playwright","react","reactjs","storybook","strapi","tailwdindcss","typescript","vite","vitest"],"latest_commit_sha":null,"homepage":"https://oss.zero-one-group.com","language":"TypeScript","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/zero-one-group.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"zenodo":null}},"created_at":"2024-07-25T10:06:23.000Z","updated_at":"2025-07-01T03:24:05.000Z","dependencies_parsed_at":"2025-05-06T13:33:06.353Z","dependency_job_id":"bcad6727-6510-4340-b7a2-e25078244c5b","html_url":"https://github.com/zero-one-group/monorepo","commit_stats":null,"previous_names":["zero-one-group/monorepo"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/zero-one-group/monorepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zero-one-group%2Fmonorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zero-one-group%2Fmonorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zero-one-group%2Fmonorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zero-one-group%2Fmonorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zero-one-group","download_url":"https://codeload.github.com/zero-one-group/monorepo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zero-one-group%2Fmonorepo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262916574,"owners_count":23383883,"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":["astro","biomejs","boilerplate","docker","golang","monorepo","moonrepo","nextjs","nodejs","playwright","react","reactjs","storybook","strapi","tailwdindcss","typescript","vite","vitest"],"created_at":"2024-11-14T16:26:30.664Z","updated_at":"2025-07-01T07:04:37.777Z","avatar_url":"https://github.com/zero-one-group.png","language":"TypeScript","readme":"# Zero One Group Monorepo\n\n## Table of Contents\n- [Overview](#overview)\n- [Quick Start](#quick-start)\n  - [Golang application](#golang-application)\n  - [Local development server](#local-development-server)\n  - [Creating application from template](#creating-application-from-template)\n  - [Moon commands](#moon-commands)\n- [Monorepo CLI](#monorepo-cli)\n- [E2E Testing](#e2e-testing)\n- [Managing Dependencies](#managing-dependencies)\n  - [Updating dependencies](#updating-dependencies)\n  - [Cleanup projects](#cleanup-projects)\n- [Tasks to Complete](#tasks-to-complete)\n- [Contributions](#contributions)\n\n## Overview\n\nThis repository contains framework projects utilizing [moonrepo][moonrepo] and the technology\nstack commonly used within Zero One Group, with TypeScript and Go as the main languages.\n\nTo get started, several templates for backend and frontend applications are available.\nThe frontend stack includes React with the Vite bundler, as well as Next.js. A shared\nUI Library, shadcn/ui, is also provided.\n\nAdditionally, the following tools and libraries are included:\n\n- **Tailwind CSS** for utility-first CSS framework.\n- **Radix UI** for accessible, unstyled UI components.\n- **Vitest** for fast unit testing.\n- **Playwright** for end-to-end testing.\n- **Biome** for code formatting and linting.\n\n## Quick Start\n\nTo begin, we suggest installing `moon` globally, read the documentation [here][moonrepo].\nThen, follow these steps (_don't forget to replace `moon-project` with your project name_):\n\n1. Clone this repository: `pnpm dlx tiged zero-one-group/monorepo moon-project`\n2. Install the necessary dependencies: `cd moon-project \u0026\u0026 pnpm install`\n3. Create `.env` file or duplicate the `.env.example` file inside the app or package.\n\nFind and replace the `myorg` namespace and `example.com` string with your own organization\nor project-specific namespace. This is necessary to ensure that all configurations,\ndependencies, and references are correctly aligned with your project's unique identifier.\nThis includes updating any configuration files, package names, and other references\nthroughout the codebase where `myorg` is used.\n\n### Golang application\n\nCurrently, Go is not supported as an official moonrepo toolchain. You need to manually\ninstall and configure it for your project. Please read the [Go installation docs][go-docs].\n\nFor a list of supported toolchains, visit [moonrepo documentation][moon-toolchain].\n\n### Local development server\n\nThis repository includes a local development server for testing and development purposes.\nCurrently, it supports PostgreSQL, Valkey (drop-in replacement for Redis), [mailpit][mailpit] (SMTP server),\nand [pgweb][pgweb] (PostgreSQL web interface).\n\nThese commands are used for managing the local development server:\n\n```sh\npnpm compose:up       # Start local development server\npnpm compose:down     # Stop local development server\npnpm compose:cleanup  # Remove all local development server data\n```\n\n### Creating application from template\n\nTo get started, you can use the following command to generate a new application from a template.\n\n```sh\npnpm -s cmd generate:app\n```\n\nFollow the prompts to create a new application.\n\nCurrent available templates are:\n\n| Template Name                                  | Description                                        |\n|------------------------------------------------|----------------------------------------------------|\n| [`template-golang`](./template-golang)         | Basic Go application for backend                   |\n| [`template-react-app`](./template-react-app)   | SPA React Router application with Tailwind CSS     |\n| [`template-react-ssr`](./template-react-ssr)   | SSR React Router application with Tailwind CSS     |\n| [`template-shared-ui`](./template-shared-ui)   | Collections of UI components based on `shadcn/ui`  |\n| [`template-nextjs`](./template-nextjs)         | Next.js application with Tailwind CSS              |\n| [`template-strapi`](./template-strapi)         | Strapi headless CMS with PostgreSQL and Nodemailer |\n| [`template-astro`](./template-astro)           | Astro website with Tailwind CSS                    |\n| [`template-fastapi-ai`](./template-fastapi-ml) | FastAPI template for AI apps                       |\n\n### Moon commands\n\nAfter setting up your project, use the following commands for common tasks:\n\n| Command                    | Description                              |\n|----------------------------|------------------------------------------|\n| `moon :dev`                | Start developing the project             |\n| `moon :build`              | Build all projects                       |\n| `moon :test`               | Run tests in all projects                |\n| `moon :lint`               | Lint code in all projects                |\n| `moon :format`             | Format code in all projects              |\n| `moon \u003cproject_id\u003e:env`    | Print system env and individual project  |\n| `moon \u003cproject_id\u003e:\u003ctask\u003e` | Run specific task by project             |\n| `moon check \u003cproject_id\u003e`  | Run check for individual project         |\n| `moon check --all`         | Run check for all tasks                  |\n| `moon run '#tag:task'`     | Run a task in all projects with a tag    |\n| `moon project-graph`       | Display an interactive graph of projects |\n| `moon :update-deps`        | Update all projects dependencies         |\n\nType `moon help` for more information. Refer to the [moon tasks documentation](https://moonrepo.dev/docs/run-task) for more details.\n\n## Monorepo CLI\n\nThe monorepo CLI is a command-line interface for managing and interacting with the monorepo.\nIt provides a set of commands for common tasks such as creating application secrets, database\nmigrations, seeders, etc.\n\nTo getting started, you can use the following command:\n\n```sh\npnpm -s cmd --help\n```\n\nYou can also register your own commands. To do this, you need to create a file in the\n[`internal/cmd`](./internal/cmd) directory then register the sub-commands in the\n[`cli.ts`](./internal/cli.ts) file.\n\n## E2E Testing\n\nThis monorepo includes E2E tests for testing the application, powered by Playwright.\nTo run E2E tests, you need to install Playwright dependencies. You can do this by\nrunning the following command:\n\n**Install Playwright dependencies for all projects**\n\n```sh\nmoon \u003cproject_id\u003e:e2e-install\n```\n\n**Install Playwright dependencies for a specific project**\n\n```sh\nmoon \u003cproject_id\u003e:e2e-install\n```\n\nRun E2E tests for specific project in headless mode:\n\n```sh\nmoon \u003cproject_id\u003e:e2e\n```\n\nIf you want to use Playwright UI mode, you can use the following command:\n\n```sh\nmoon \u003cproject_id\u003e:e2e-ui\n```\n\nTo run E2E test for specific browser, you can use the following command:\n\n```sh\nmoon \u003cproject_id\u003e:e2e-chrome   # Run E2E test for Chrome browser\nmoon \u003cproject_id\u003e:e2e-firefox  # Run E2E test for Firefox browser\nmoon \u003cproject_id\u003e:e2e-mobile   # Run E2E test for Chrome Mobile browser\nmoon \u003cproject_id\u003e:e2e-safari   # Run E2E test for Safari browser\n```\n\n## Managing Dependencies\n\nTo add a new dependency to a project, you can use the following command:\n\n```sh\npnpm --filter \u003cproject_id\u003e add \u003cdependency\u003e\n```\n\nOr, if you want to add development dependencies, you can use the following command:\n\n```sh\npnpm --filter \u003cproject_id\u003e add -D \u003cdependency\u003e\n```\n\nExample:\n\n```sh\npnpm --filter react-app add -D vitest\n```\n\n### Updating dependencies\n\nTo update workspace dependencies, you can use the following command:\n\n```sh\npnpm run update-deps\n```\n\n### Cleanup projects\n\nSometimes it is necessary to clean up dependencies and build artifacts from the project.\nTo do this, you can use the following command:\n\n```sh\npnpm run cleanup\n```\n\nAfter all, you can reinstall the dependencies and build the project.\n\n## Tasks to Complete\n\nAfter creating a new project from this template repository, ensure you update the documentation, including:\n\n1. **Project Overview:** Briefly describe the project's purpose and features.\n2. **Installation Instructions:** Update steps to reflect any project-specific changes.\n3. **Usage Guide:** Provide instructions on how to use the project, including commands and configurations.\n4. **API Documentation:** If applicable, update API endpoints, request/response formats, and examples.\n5. **Contributing Guidelines:** Reflect any new processes or requirements for contributions.\n6. **License Information:** Ensure the license is accurate for the new project.\n\nKeeping documentation current helps others understand, use, and contribute to the project.\n\n## Contributions\n\nContributions are welcome! Please open a pull requests for your changes and tickets in case you would like to discuss something or have a question.\n\nRead [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed documentation.\n\n\u003c!-- link reference definition --\u003e\n[go-docs]: https://go.dev/doc/install\n[mailpit]: https://mailpit.axllent.org/\n[moon-toolchain]: https://moonrepo.dev/docs/concepts/toolchain\n[moonrepo]: https://moonrepo.dev/docs/install\n[pgweb]: https://sosedoff.github.io/pgweb\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzero-one-group%2Fmonorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzero-one-group%2Fmonorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzero-one-group%2Fmonorepo/lists"}