Launch HN: Moonrepo (YC W23) – Open-source build system

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • moon

    A build system and monorepo management tool for the web ecosystem, written in Rust.

  • Hey HN, Miles and James here from Moonrepo (https://moonrepo.dev). Are you struggling with large codebases? Well look no further! We built Moonrepo to simplify repository management, project ownership, task running, and everyday developer and productivity workflows.

    If you’ve used Bazel (or another “enterprise” build system) in the past, you’re probably aware of how complex they can be to setup, configure, and use. Let alone the cognitive overhead required by developers on a day to day basis. After more than a decade in the industry, with many of those years working on infrastructure and developer tooling related products, we set out to build Moon, a language agnostic build system.

    Existing systems focused solely on runtime logistics (faster builds, concurrency), while we want to also focus on the developer experience. We do this by automating workflows as much as possible, in an effort to reduce manual work. We constantly sync and verify configuration, so that the repository stays in a healthy state. We also infer/detect as much as we can from the environment/repository/codebase, so pieces "just work".

    We wanted our system to be enjoyable to use and easy to understand, but also solve the same problems as existing systems. For example, configuration is in YAML, not a proprietary syntax. Tasks are defined and run as if you were running them in the terminal; no more abstractions like BUILD files. Unlike Bazel, we don’t hide or heavily rewrite terminal output, so the feedback loop is what you expect. We manage a toolchain, ensuring the correct version of languages is used (no more “works on my machine”). And lastly, our foundation is built on Rust and Tokio, so performance is first-class, the runtime is reliable, and memory safety is guaranteed.

    We follow the open core model. Moon is open source, but we’re also working on a few subscription-based services for monitoring and improving your continuous integration pipelines, a registry of project and code ownership, a continuous deployment/delivery board, auxiliary application systems, and more. We haven't finalized the subscription model yet, so there's no pricing information on the website. However, we do have a starter/free tier that everyone can use by registering on https://moonrepo.app. In the future, we will offer on-prem as well.

    Although Moonrepo is relatively new, we’re already feature-packed, stable, and used in production. We’re big fans of honest feedback, and look forward to your comments!

  • examples

    An example monorepo using moon and popular JS tooling. (by moonrepo)

  • Thank you! We have an example monorepo (https://github.com/moonrepo/examples) but at this time it's only JavaScript. We're working on adding Go to this repo, but we personally don't have enough Python experience to add Python. Always open to contributions!

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • skaffold

    Easy and Repeatable Kubernetes Development

  • I wonder if it has some overlap with https://skaffold.dev/.

  • buildbuddy

    BuildBuddy is an open source Bazel build event viewer, result store, remote cache, and remote build execution platform.

  • NUKE

    🏗 The AKEless Build System for C#/.NET (by nuke-build)

  • We started using https://nuke.build/. Early days so can’t comment too much but it seems good so far.

  • just

    🤖 Just a command runner

  • Gonna plug our setup which is Justfiles[1] and turborepo.

    Just is a much simpler build runner that calls our turborepo tasks.

    We define all of our tasks in one justfile (things like repo setup, syncing env vars, and compiling dependencies) and then link them to turbo processes which cache the result.

    Massively reduced our cognitive load working with our monorepo, and is lightning fast.

    If we ever want to change it will be simple to remove both, so we're not tied to the ecosystem.

    [1]https://github.com/casey/just

  • starlark-rust

    A Rust implementation of the Starlark language

  • There is also a Rust implementation of Starlark as a starting point https://github.com/facebookexperimental/starlark-rust

    To add to everyone else, please don't use YAML. Starlark is great _precisely_ because it is a readable, well known (nearly Python) language that is limited at the same time (no unbounded for loops, no way to do non-deterministic things like get the current time or `random()`).

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • roadmap

    Welcome to the Public Roadmap for All Things Docker! We welcome your ideas. (by docker)

  • [2] https://github.com/docker/roadmap/issues/7

  • turbo

    Incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust – including Turbopack and Turborepo.

  • Kind of. Poster asked if you can prune only deps and exclude dev deps. That's currently unsupported: https://github.com/vercel/turbo/issues/1100

  • starlark

    Starlark Language

  • one of the benefits of starlark (unlike python): "Starlark is suitable for use in highly parallel applications. An application may invoke the Starlark interpreter concurrently from many threads, without the possibility of a data race, because shared data structures become immutable due to freezing." from https://github.com/bazelbuild/starlark/blob/master/spec.md - it's not python, you can't do recursion (!) and it's more limited (you can't read a file in bazel, and parse it, you have to make this operation into the graph somehow)

  • moonscript

    :crescent_moon: A language that compiles to Lua

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Supermemory - ChatGPT for your bookmarks

    2 projects | dev.to | 14 Apr 2024
  • Next.js Shopify eCommerce Starter with Perfect Web Vitals 🚀

    2 projects | dev.to | 12 Apr 2024
  • dev.to wrapped 2023 🎁

    2 projects | dev.to | 7 Dec 2023
  • Setting up a project for Server and Client inside VS Code?

    3 projects | /r/webdev | 25 Jun 2023
  • Fhtagn – a tiny CLI programs tester written in Awk

    3 projects | news.ycombinator.com | 19 Jun 2023