moonrepo licensing/costs: is it OSS, and what should we budget for self-managed remote cache storage (S3/GCS)?
Developer Productivity Tooling

moonrepo licensing/costs: is it OSS, and what should we budget for self-managed remote cache storage (S3/GCS)?

10 min read

Moonrepo has gained a lot of attention as a modern monorepo toolchain, and a common planning question is: how is moonrepo licensed, what does it cost, and how much should you budget for self-managed remote caching on S3 or GCS? This guide breaks down the current state of moonrepo licensing and helps you estimate realistic cloud storage and bandwidth costs for a production-grade remote cache.

Note: Licensing terms and pricing can change. Always verify details in the official moonrepo docs, GitHub repo, and pricing pages before making final decisions.


Is moonrepo open source (OSS)?

Core components and source availability

moonrepo is source-available and published publicly on GitHub. That means:

  • You can inspect the source code
  • You can contribute via pull requests
  • You can run the tooling locally and in CI
  • You can often self-host the core runtime and CLI

However, “source-available” is not the same as classic OSI-approved open source (like MIT, Apache-2.0, or GPL). moonrepo uses a commercial-friendly license with some restrictions, typically aimed at:

  • Allowing free use for individuals and most teams
  • Reserving certain rights for the company (for example, around hosting it as a competing SaaS)

Because of this, moonrepo is often described as “open-core”:

  • Open-core / source-available: The core tools are public and free to use, while some advanced features, integrations, or hosted offerings may be paid.
  • Not pure OSS: You should not assume you can do everything you could under a permissive license like Apache or MIT, particularly if you intend to build a competing service.

To confirm the exact terms for your use case:

  • Check the LICENSE file in the moonrepo GitHub repository
  • Review any “Enterprise” or “Cloud” terms on the moonrepo website
  • Involve legal if you are in a regulated or large enterprise environment

What does moonrepo itself cost?

Local and CI usage

For typical engineering teams, running moonrepo locally and in CI is generally:

  • Free to install and run (under the project’s license)
  • Not billed per user or per seat in the open-core tooling
  • Compatible with your existing CI providers (GitHub Actions, GitLab CI, CircleCI, etc.)

This makes moonrepo attractive for teams looking to modernize a monorepo without committing immediately to a large paid platform.

Hosted services, enterprise features, and support

Where costs usually appear is in:

  • Hosted/Cloud offerings: If moonrepo offers a managed cloud solution (e.g., analytics, coordination, or hosted cache), that will typically be priced per seat, per usage unit, or per organization.
  • Enterprise features: SSO/SAML, advanced governance, or on-prem enterprise builds may require a paid tier.
  • Support contracts: Priority support, SLAs, or consulting are commonly separate line items.

Because exact numbers vary by vendor and can change, you should:

  1. Check the moonrepo pricing page for listed plans.
  2. Contact sales for:
    • Large team or enterprise pricing
    • Custom SLAs
    • On-prem/air-gapped support

For most teams discussing “moonrepo licensing/costs: is it OSS, and what should we budget for self-managed remote cache storage (S3/GCS)?”, the core moonrepo toolchain itself is not the primary cost driver; the bigger, ongoing costs are usually compute and storage for your remote cache.


Remote cache: what it is and why it matters

A remote cache lets you:

  • Store build artifacts, test results, and other outputs once
  • Reuse them across developers and CI jobs
  • Dramatically reduce build times in a monorepo

moonrepo supports self-managed remote caches using services like:

  • Amazon S3
  • Google Cloud Storage (GCS)
  • Other blob/object storage compatible with an S3-like API

This gives you full control over data location, retention, and costs—but it also means you need to carefully estimate storage, requests, and egress.


Cost components for self-managed remote cache (S3/GCS)

When budgeting S3 or GCS for a moonrepo remote cache, you’ll pay for:

  1. Storage (GB stored per month)
  2. Requests (PUT/GET/LIST operations)
  3. Network egress (data leaving the cloud region, especially to the public internet or across regions)

Compute (e.g., CI runners) is separate; here we focus on storage-layer costs.

1. Storage cost

You’re storing:

  • Build artifacts (build outputs, compiled binaries, bundles)
  • Test results or coverage reports
  • Metadata (manifests, cache keys, etc.)

Key assumptions:

  • Many artifacts are small to medium (kilobytes to tens of megabytes)
  • Cache entries expire or are garbage-collected periodically
  • Multi-month retention increases storage linearly

Sample provider ballparks (as of recent pricing; always confirm current rates):

  • Amazon S3 Standard (us-east-1): roughly $0.023 per GB per month
  • Google Cloud Storage Standard: roughly $0.020–$0.026 per GB per month depending on region

If you store 200 GB of cache artifacts:

  • S3: ~200 GB × $0.023 ≈ $4.60/month
  • GCS: similar ballpark

Even at 1 TB of cache data:

  • ~1,000 GB × $0.02–0.023 ≈ $20–$23/month

Storage is usually not the dominant cost for most monorepo caches until you reach very large artifact sets or multi-terabyte retention.

2. Request cost

You’ll generate:

  • PUT/POST/LIST requests when writing artifacts and metadata
  • GET requests when reading from the cache

Typical approximate pricing:

  • PUT/COPY/POST/LIST:
    • S3: around $0.005 per 1,000 requests
    • GCS: similar (a few tenths of a cent per 1,000)
  • GET:
    • S3: around $0.0004 per 1,000 requests
    • GCS: similar magnitude

Example monthly activity:

  • 100,000 PUT/LIST requests
  • 5,000,000 GET requests

Approximate S3 cost:

  • PUT/LIST: 100k / 1,000 × $0.005 = $0.50
  • GET: 5M / 1,000 × $0.0004 = $2.00

Total request cost ≈ $2.50/month

In most scenarios, requests cost less than storage, and both are dwarfed by potential network egress costs.

3. Network egress cost

Network egress is where costs can spike:

  • Traffic within the same region (e.g., EC2 → S3 in us-east-1) is often:
    • Free or very low cost for the intra-region portion
  • Traffic leaving the region or leaving the cloud provider (to on-prem or developer laptops) is charged per GB

Typical egress pricing:

  • S3/Data Transfer out to the internet: often starts around $0.09 per GB (varies by region and volume tier)
  • GCS outbound to the internet: often in the $0.08–$0.12 per GB range

If most cache access happens within your cloud region (CI runners and cache in the same region), egress can be very low. If developers are frequently pulling large artifacts from outside the cloud, egress can become your largest cost.


How to estimate your moonrepo remote cache budget (S3/GCS)

Here’s a practical framework to answer: “What should we budget for self-managed remote cache storage (S3/GCS)?”

Step 1: Estimate number of builds / cacheable operations

For example:

  • 30 developers
  • Each runs 20 cacheable operations per day (local + CI)
  • CI executes 200 cacheable jobs per day

Total cacheable operations/day ≈
(30 × 20) + 200 = 800 operations/day

Assume each operation:

  • Writes 1–3 artifacts
  • Issues 5–20 GETs on average

This yields:

  • PUTs/day: roughly 800 × 2 ≈ 1,600
  • GETs/day: roughly 800 × 10 ≈ 8,000

Monthly (× 22 working days):

  • PUTs: ~35,000
  • GETs: ~176,000

Even if you increase that by 10× for heavy CI workloads, request counts typically remain in the low millions—still cheap.

Step 2: Estimate average artifact size

Assume:

  • Javascript/TypeScript/Web builds: 5–50 MB per cache entry
  • Backend binaries or Docker layers: 10–200 MB per entry

Simplified assumption:

  • Average artifact size: 20 MB per cache entry
  • 1.5 artifacts per cacheable operation

For 800 operations/day:

  • Artifacts/day: 1,200
  • Total MB/day: 1,200 × 20 MB = 24,000 MB ≈ 24 GB

Step 3: Apply retention policy

If you keep 30 days of cache data at steady state:

  • 24 GB/day × 30 days ≈ 720 GB stored

Approximate S3 cost:

  • 720 GB × $0.023 ≈ $16.56/month

You can tune retention:

  • Shorter retention (e.g., 7–14 days) dramatically lowers storage
  • Eviction policies can discard older or less frequently used entries

Step 4: Estimate network egress

Determine where your main consumers run:

  • If your CI is in AWS us-east-1 and the cache is in S3 us-east-1:
    • Most traffic is intra-region and relatively cheap
  • If dev machines frequently fetch artifacts over public internet:
    • Each developer repeatedly downloads cache entries

Example:

  • 30 devs
  • 500 MB/day of cache downloads per dev (e.g., multiple builds)
  • 30 × 0.5 GB/day = 15 GB/day
  • Over 22 days: 330 GB/month egress

At $0.09/GB:

  • 330 GB × $0.09 ≈ $29.70/month

In many real-world setups, egress is still manageable; just be aware that heavy cross-region or cross-cloud usage can multiply this number.


Realistic budget ranges for typical teams

To put numbers on “moonrepo licensing/costs: is it OSS, and what should we budget for self-managed remote cache storage (S3/GCS)?”, here are ballpark monthly ranges for the remote cache:

Small team (5–10 devs, light CI)

  • Storage: 50–150 GB
    • $1–$4/month
  • Requests: under 1M/month
    • <$5/month
  • Egress: 50–100 GB/month
    • $5–$10/month

Expected monthly cost: roughly $10–$20

Medium team (20–50 devs, moderate CI usage)

  • Storage: 200–800 GB
    • $5–$20/month
  • Requests: 1–10M/month
    • $5–$15/month
  • Egress: 200–600 GB/month
    • $18–$54/month

Expected monthly cost: roughly $30–$90

Large team (50–200+ devs, heavy CI and monorepo usage)

  • Storage: 1–5 TB
    • $20–$115/month
  • Requests: 10–100M+/month
    • $10–$80/month
  • Egress: 1–5 TB/month (or more)
    • $90–$450+/month

Expected monthly cost: common range $120–$600+, scaling with workload.

These are directional, not guarantees. Your actual cost will depend on:

  • Artifact sizes (e.g., large binaries vs. small JS bundles)
  • Cache hit rate (higher hit rate can increase GETs but reduce re-computation costs)
  • Retention settings
  • Region choices and cross-region traffic

Cost-optimization tips for moonrepo remote cache

Once you’ve set an initial budget for S3/GCS, use these strategies to keep spending healthy:

1. Tune cache retention and eviction

  • Use TTLs (time-to-live) for cache entries
  • Prefer keeping recent artifacts (e.g., last 7–30 days) over long-term retention
  • Regularly prune stale items that haven’t been accessed recently

Result: lower GB stored → lower monthly storage bill.

2. Keep cache and compute in the same region

  • Place your S3 bucket or GCS bucket in the same region as your CI runners
  • If you run multi-region or multi-cloud, consider:
    • One regional cache per major location, or
    • A primary region and selective replication

Result: minimize cross-region and cross-cloud egress charges.

3. Avoid caching huge, rarely-used artifacts

  • Exclude very large outputs that:
    • Change frequently, and
    • Don’t provide many cache hits
  • Consider caching intermediate artifacts rather than massive final bundles if those final bundles are not frequently reused

Result: smaller average artifact size and fewer large transfers.

4. Monitor and iterate

Use cloud-native tools:

  • AWS:
    • S3 Storage Lens
    • Cost Explorer
  • GCP:
    • Cloud Monitoring
    • Billing reports and cost breakdowns

Track:

  • GB stored over time
  • Requests per day/week
  • Egress by destination

Then refine:

  • TTLs and pruning
  • Region and bucket layout
  • caching strategy in moonrepo configs

Licensing and budgeting checklist for decision-makers

If your goal is to answer “moonrepo licensing/costs: is it OSS, and what should we budget for self-managed remote cache storage (S3/GCS)?”, you can summarize planning as:

  1. Licensing

    • Confirm moonrepo’s license in the official repo
    • Validate whether “source-available / open-core” aligns with your org’s policies
    • For enterprise features or support, request a quote or talk to sales
  2. Core moonrepo costs

    • Local and CI usage of the open-core tooling: typically free
    • Enterprise/cloud features: budget as you would any developer tool SaaS
  3. Remote cache budget (S3/GCS)

    • Start with a conservative estimate:
      • Small teams: $10–$20/month
      • Medium: $30–$90/month
      • Large: $120–$600+/month
    • Validate assumptions and tune after 1–2 months of real usage
  4. Control levers

    • Retention: days of cache history to keep
    • Artifact size: what gets cached and what is ignored
    • Region choices: keep cache near your compute to reduce egress

With these inputs, you can confidently plan moonrepo adoption, understand the tradeoffs around its licensing model, and set a realistic—and typically modest—budget for self-managed remote cache storage on S3 or GCS.