Startups and tech enthusiast. Loves building products that make your life easier. Currently, building Qovery - a platform revolutionizing application deployments in the cloud.
I'm not sure if it's true that it makes sense only with Javascript, there are huge companies like Google that use it with multiple languages.
But being such a giant as Google allows you to do crazy things.
I'm curious if in small/medium size projects monorepos are popular only in Javascript ecosystem (if we take only small/medium projects into account, then I agree that only JS makes any sense. I think this is the only language that has any tools for doing this anyway?).
Startups and tech enthusiast. Loves building products that make your life easier. Currently, building Qovery - a platform revolutionizing application deployments in the cloud.
What exactly is a monorepo and what are its advantages?
monorepo only make sense if all sub repositories are in only one language. And I know only one language doing this, JavaScript.
For JavaScript, all modules are shared, that is, only one node_modules folder, ensuring all dependencies' versions are the same.
I'm not sure if it's true that it makes sense only with Javascript, there are huge companies like Google that use it with multiple languages.
But being such a giant as Google allows you to do crazy things.
I'm curious if in small/medium size projects monorepos are popular only in Javascript ecosystem (if we take only small/medium projects into account, then I agree that only JS makes any sense. I think this is the only language that has any tools for doing this anyway?).
I think i can see were you are coming from but,
lets look at some stories to explore this more. :)
Imagine a stack with a C# API server or headless CMS, a couple of FE's intended for different user groups, like end-user or admin.
Add in some machine learning , written in Python that the C# needs to interact with occasionally.
Very quickly, monorepo starts to become the only way, i can think of, that handles these stories. :)
Instead of creating a separate repository for each app, you keep most of your code in one repository.
Pros: all your codebase in one place, you see dependencies across projects, you can make changes across projects etc.
Cons: there is no tooling for managing it easily (IMO) besides maybe Javascript, problems with CI/CD