# Monorepos Resources

## Knowledge

- [Paper: “Why Google Stores Billions of Lines of Code in a Single Repository” — Potvin & Levenberg (CACM / ACM)](https://cacm.acm.org/research/why-google-stores-billions-of-lines-of-code-in-a-single-repository/)
  Canonical primary on monorepo advantages (unified versioning, atomic changes, shared deps, large-scale refactor) and costs (tooling, code health, dependency hygiene). Use for: any “why monorepo” claim at organizational scale.
- [Nx: What is a Monorepo?](https://nx.dev/docs/kb/what-is-a-monorepo)
  Clear definition: one repo, multiple distinct projects, well-defined relationships; monorepo ≠ monolith; collocation without tooling fails. Use for: lesson-1 framing and tool layers (package workspaces vs build/orchestration).
- [monorepo.tools](https://monorepo.tools)
  Landscape overview of monorepo tooling categories. Use for: orientation before tool comparison lessons.
- [moon product overview](https://moonrepo.dev/moon)
  Official description: task runner + monorepo management (project graph, task inheritance, toolchain, caching). Use for: what moon claims to be.
- [moon docs: Concepts](https://moonrepo.dev/docs/concepts)
  Index of workspace, project, task, target, toolchain, inheritance, affected, cache. Use for: vocabulary map and later deep lessons.
- [moon docs: Workspace](https://moonrepo.dev/docs/concepts/workspace)
  Workspace = projects + toolchain + tasks + VCS; root denoted by `.moon`. Designed for monorepos; can serve polyrepos. Use for: architecture intro.
- [moon docs: Install](https://moonrepo.dev/docs/install)
  Binary install paths: proto, shell, npm `@moonrepo/cli`, upgrade. Use for: first-day setup.
- [moon docs: Setup workspace](https://moonrepo.dev/docs/setup-workspace) / [`moon init`](https://moonrepo.dev/docs/commands/init)
  Scaffold `.moon`, workspace config, gitignore, VCS. Use for: init step of the everyday loop.
- [moon docs: Create a project](https://moonrepo.dev/docs/create-project)
  Map projects in `workspace.projects`; optional `moon.*` + inherited tasks. Use for: discovery vs “folder exists.”
- [moon docs: Run a task](https://moonrepo.dev/docs/run-task) / [`moon run`](https://moonrepo.dev/docs/commands/run)
  Action graph, cache, `--affected`, passthrough args. Use for: everyday run loop.
- [moon docs: Task inheritance](https://moonrepo.dev/docs/concepts/task-inheritance)
  Conditional `inheritedBy`, merge strategies (append/prepend/replace/preserve). Use for: standardization without copy-paste.
- [moon docs: `.moon/tasks`](https://moonrepo.dev/docs/config/tasks) / [Create a task](https://moonrepo.dev/docs/create-task)
  Global tasks, implicit deps/inputs, inputs/outputs/file groups. Use for: authoring shared tasks.
- [moon docs: Setup toolchain](https://moonrepo.dev/docs/setup-toolchain) / [Toolchain concept](https://moonrepo.dev/docs/concepts/toolchain) / [`.moon/toolchains`](https://moonrepo.dev/docs/config/toolchain)
  Enable tools, pin `version`, proto-backed installs, force globals, version shapes. Use for: reproducible environments.
- [proto](https://moonrepo.dev/proto)
  Multi-language version manager under `~/.proto`. Use for: how moon materializes tool binaries.
- [moon docs: Feature comparison](https://moonrepo.dev/docs/comparison)
  moon vs Turborepo/Lerna (and tables). Caveat: not exhaustive; may be out of date. Use for: tool-comparison lesson.
- [monorepo.tools](https://monorepo.tools) / [compare](https://monorepo.tools/compare)
  Landscape of monorepo tool capabilities. Use for: decision playbook orientation.
- [moon docs: Project graph](https://moonrepo.dev/docs/how-it-works/project-graph)
  Projects and relationships as a DAG. Use for: graph mental model.
- [moon docs: Task inheritance](https://moonrepo.dev/docs/concepts/task-inheritance)
  Global / scoped tasks instead of copy-paste per project. Use for: standardization patterns.
- [moon docs: `.moon/workspace` config](https://moonrepo.dev/docs/config/workspace)
  Project discovery, globs, constraints / boundaries. Use for: setup and ownership lessons.
- [moon docs: `.moon/toolchains`](https://moonrepo.dev/docs/config/toolchain)
  Deterministic language/tool versions across machines and CI. Use for: toolchain / reproducibility lessons.
- [GitHub: moonrepo/moon](https://github.com/moonrepo/moon)
  Source + feature list. Use for: grounding product claims and release notes.

## Wisdom (Communities)

- [moonrepo Discord / GitHub Discussions](https://github.com/moonrepo/moon) (via project community links)
  Real workspace and CI edge cases. Use for: “does this moon pattern work in the wild?”
- [r/ExperiencedDevs](https://www.reddit.com/r/ExperiencedDevs/) and [r/webdev](https://www.reddit.com/r/webdev/)
  Monorepo vs polyrepo war stories. Use for: second opinions — verify against primaries; treat as anecdotes.

## Gaps

- Dedicated high-trust “moon vs Nx vs Turborepo vs Bazel” primary is scattered; decision-level comparison will synthesize official docs per tool when that lesson lands.
- Learner’s live Trio monorepo is optional practice ground; not yet indexed as a primary source in this folder.
