moon
turborepo
Our great sponsors
moon | turborepo | |
---|---|---|
6 | 79 | |
2,584 | 14,873 | |
3.6% | - | |
9.7 | 9.8 | |
7 days ago | over 1 year ago | |
Rust | Rust | |
MIT License | Mozilla Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
moon
-
Launch HN: Moonrepo (YC W23) – Open-source build system
(for context - I'm not interested in first class node support)
This seems pretty cool. I particularly like how 'gradual' it seems to be relative to things like Bazel, i.e. you can take some shell scripts and migrate things over. I did have a play and hit an initial problem around project caching I think, which I raised at [0].
One comment, from the paranoid point of view of someone who has built distributed caching build systems before is that your caching is very pessimistic! I understand why you hash outputs by default (as well as inputs), but I think that will massively reduce hit rate a lot of the time when it may not be necessary? I raised [1].
As an aside, I do wish build systems moved beyond the 'file-based' approach to inputs/outputs to something more abstract/extensible. For example, when creating docker images I'd prefer to define an extension that informs the build system of the docker image hash, rather than create marker files on disk (the same is true of initiating rebuilds on environment variable change, which I see moon has some limited support for). It just feels like language agnostic build systems saw the file-based nature of Make and said 'good enough for us' (honorable mention to Shake, which is an exception [2]).
[0] https://github.com/moonrepo/moon/issues/637
- A build system and repo management tool for the web ecosystem, written in Rust
-
Building a full-stack TypeScript application with Turborepo
There are many tools like Lerna, Nx, Turborepo, Moon, Rush, and Bazel, to name a few. Today, we'll be using Turborepo, as it's lightweight, flexible, and easy to use.
-
Lerna reborn - What's new in v6?
You should give moon a try: https://moonrepo.dev/
- Moon - A build system for the javascript ecosystem, written in rust.
turborepo
-
Learn how to build a monorepo in Next.js
Turborepo: Smart build system for JavaScript/TypeScript monorepos
-
Building a full-stack TypeScript application with Turborepo
We’ve only scratched the surface of what we can do with Turborepo. You can find more examples in the Turborepo examples directory on GitHub. Skill Recordings on GitHub is also another great resource that has been around since Turborepo was first released.
-
10 Trending Github repositories / October, 27 2022
git clone https://github.com/vercel/turborepo.git
-
Component composition
I use https://turborepo.org/ to facilitate my monorepo. Essentially it's a way of structuring your configs, UI; apps etc and you consume each like an internal package. I find benefits for this as the kinds of sites I make will generally have an internal app, an admin panel and a marketing site. I can write UI, config etc in one place and consume them over the three projects to keep everything consistent.
-
How I Monorepo
The latest addition to the Composer Suite monorepo, Turborepo optimizes monorepo workflows by caching build artifacts. This may sound a little abstract and boring, but what this actually means is that when you build something within your monorepo, Turborepo will make sure only the things that it depends on are rebuilt; everything else will be retrieved from a cache that either lives on your local computer, or a remote cache server. Adding Turborepo to the Composer Suite monorepo pretty much halved CI build times, but it was also a way to teach Vercel, which I use for hosting the various example apps in the repo, to only actually deploy the ones that have changed since their last deployment. And that's really cool!
- What is the easiest way to use shared code with multiple Vue3 projects?
-
The different strategies to building a cross-platform app
NB: "Turbo" also has other meanings in a React Native context, so don't confuse Hotwire Turbo Native with Turbo Modules or Turborepo (as used in create-t3-turbo, mentioned later here).
-
Minimal Nextjs-Typescript boilerplate
Personally I just use this: https://github.com/vercel/turborepo/tree/main/examples/with-tailwind
-
Shared packages between React Native and Web project in monorepo.
To set up our monorepo we will use Turborepo which will take care of installing the basic parameters for us.
- Partager son code entre des projets React et React Native sur un monorepo
What are some alternatives?
hash - 🚀 The open-source, self-building database. From @hashintel
nx - Smart Monorepos · Fast CI
orogene - Makes `node_modules/` happen. Fast. No fuss.
lerna - :dragon: Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository.
vite - Next generation frontend tooling. It's fast!
mandelbrot - Microbenchmark testing Python, Numba, Mojo, Dart, C/gcc, Rust, Go, JavaScript, C#, Java, Kotlin, Pascal, Ruby, Haskell performance in Mandelbrot set generation
rushstack - Monorepo for tools developed by the Rush Stack community
napi-rs - A framework for building compiled Node.js add-ons in Rust via Node-API
storybook - Storybook is a frontend workshop for building UI components and pages in isolation. Made for UI development, testing, and documentation.
hackerman - Cargo hack manager
tsdx - Zero-config CLI for TypeScript package development