Monorepos - How the Pros Scale Huge Software Projects // Turborepo vs Nx

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 31. 05. 2024
  • Big companies, like Google & Facebook, store all their code in a single monolithic repository or monorepo... but why? Learn how to use tools like NPM or Yarn workspaces, Learna, Nx, and Turborepo to scale your codebase fireship.io/pro
    #software #js #compsci
    🔗 Resources
    Turborepo turborepo.org/
    Nx nx.dev/
    Lerna lerna.js.org/
    Google's Monorepo cacm.acm.org/magazines/2016/7...
    📚 Chapters
    00:00 The World’s Largest Codebase
    00:49 Benefits of Monorepos
    01:50 The Problem with Monorepos
    02:18 Yarn & NPM Workspaces
    02:48 Lerna
    03:30 PNPM
    03:48 Nx vs Turborepo
    06:10 Turborepo Tutorial
    đŸ”„ Get More Content - Upgrade to PRO
    Upgrade to Fireship PRO at fireship.io/pro
    Use code lORhwXd2 for 25% off your first payment.
    🎹 My Editor Settings
    - Atom One Dark
    - vscode-icons
    - Fira Code Font
    🔖 Topics Covered
    - Monorepo Pros and Cons
    - What is a monorepo?
    - Who uses Monorepos?
    - Should I use a monorepo?
    - Nx compared to Turborepo
    - How Google's Monorepo works.
  • Věda a technologie

Komentáƙe • 563

  • @AzureFlash
    @AzureFlash Pƙed 2 lety +1858

    Finally, I can have a giga-scalable monorepo and build tools for my 100-line Discord bot written in Python

    • @gh05tparkourfreerunning31
      @gh05tparkourfreerunning31 Pƙed 2 lety +21

      I was actually thinking of using this for my Discord bot lol. It has a REST API to manage a roster of members in a DB and I wanted to make a website to interact with the database directly as well. Except in this case, the Discord bot would be a tool for the entire application

    • @donquixoteupinhere
      @donquixoteupinhere Pƙed 2 lety +7

      Hahaha. Yeah context is VERY important as to whether this is the recommended route someone chooses, for highly practical reasons.

    • @Mkrabs
      @Mkrabs Pƙed 2 lety +46

      ***written in a single Python file

    • @andrey2001v
      @andrey2001v Pƙed 2 lety +31

      And 40 of those lines are imports.
      This is literally most of my uni coding experience

    • @arctic.wizard
      @arctic.wizard Pƙed 2 lety +4

      This is the way

  • @brennanfife
    @brennanfife Pƙed 2 lety +1561

    Software teams then: ‘This codebase is too coupled together
 let’s break it up’
    Software teams now: ‘This codebase is too broken up
 let’s couple it together’

    • @overloader7900
      @overloader7900 Pƙed 2 lety +43

      When the moores law died (as in single core SISD performance, cuz its too hard to make parallel code), code performance became important again

    • @ronanharris8216
      @ronanharris8216 Pƙed 2 lety +95

      That one guy on the team : "... this goes against everything that I know to be right and true ..."

    • @muizzy
      @muizzy Pƙed 2 lety +159

      At the risk of sounding like I don't get the joke; a little context for the uninitiated:
      We're still decoupling as much as possible, we're just doing it in a smarter way which allows us to make simpler use of a single source of truth. (1 monorepo, but still many micro-services)

    • @MiniKodjo
      @MiniKodjo Pƙed 2 lety +10

      do then undo is work

    • @dorktales254
      @dorktales254 Pƙed 2 lety +3

      Google's codebase: moaaaaai

  • @patrik5123
    @patrik5123 Pƙed 2 lety +141

    This is by far the best channel to get enough knowledge in order to to make it sound like you know what you're talking about.

    • @patrik5123
      @patrik5123 Pƙed 2 lety +4

      @@mikkelens Yea I've spent enough time in front of online courses during the various lockdowns to know how demanding it is. I've spent countless hours on React and I still feel like I don't _actually_ 'get it'.

    • @reed6514
      @reed6514 Pƙed 2 lety +1

      I like these, more for entertainment than learning. My preferred learning style mainly involves diving in, writing code, and looking at documentation.

    • @noskillzdad5504
      @noskillzdad5504 Pƙed 2 lety +1

      Fake it till you make it!

    • @reed6514
      @reed6514 Pƙed 2 lety

      @@noskillzdad5504 i do this when I'm manic lol. Sometimes it's good. Sometimes not

    • @heroe1486
      @heroe1486 Pƙed rokem

      @@reed6514 It's good to discover things and know if you want to dive deep into them, like if a video showcases a new framework which has some particularities you can't live with, if you were able to spot them in the video it may save you hours of reading the docs.
      Same for this one, most people probably went to the conclusion that Monorepos weren't yet a fit for their projects.
      These videos are handy in a field with so much (sometimes useless) novelties

  • @oussamasethoum1665
    @oussamasethoum1665 Pƙed 2 lety +453

    You explained TurboRepo better than the creator himself, huge respect to Fireship đŸŽ©

    • @andresramos7965
      @andresramos7965 Pƙed 2 lety +77

      At this point, all software should feature a Fireship video in their mainpage

    • @oussamasethoum1665
      @oussamasethoum1665 Pƙed 2 lety +11

      @@andresramos7965 I couldn't agree more, they should pay this guy to make more understandable explanations.

    • @hydra4370
      @hydra4370 Pƙed 2 lety +8

      @@oussamasethoum1665 I already pay him to explain stuff to me 😭

    • @magnusmarkling
      @magnusmarkling Pƙed 2 lety +2

      @@oussamasethoum1665 Maybe you mean WE should pay him

    • @forrestmorrisey
      @forrestmorrisey Pƙed 2 lety +8

      You're comparing apples to oranges here. Engineers are nutoriously bad at explaining their own work. Fireship is a seasoned technology communicator.

  • @KeithGraves
    @KeithGraves Pƙed 2 lety +158

    What people call best practices in software engineering amuse me.
    Backend: Everything is a microservice
    Frontend: Use micro frontends
    Git: Put everything in a giant monorepo

    • @matheusvictor9629
      @matheusvictor9629 Pƙed 2 lety +8

      The thing is about performance and not everything going down at once, where you store the codebase doesn't matter

    • @TheBillionDollarSaaS
      @TheBillionDollarSaaS Pƙed 2 lety +23

      Infrastructure and code have different requirements

    • @webentwicklungmitrobinspan6935
      @webentwicklungmitrobinspan6935 Pƙed rokem +1

      no! its all about decoupling. microservices to enforce a api and maybe consider an integration layer.
      and you split your frontend because you dont want to compile for minutes at a time and have a 100gb node module installed for fixing a a hardcoded link in a selfservice tool which no one seems to use anymore but people manage to complain about somehow

    • @dadudeme
      @dadudeme Pƙed 2 měsĂ­ci

      ​@@matheusvictor9629as linus torvalds said:
      Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it

  • @krishgarg2806
    @krishgarg2806 Pƙed 2 lety +103

    Thank you for covering this. Recently vercel acquired turbo repo and I was confused what was it as I use vercel a lot.

  • @ultimatum97
    @ultimatum97 Pƙed 2 lety +139

    As somone who works at a certain large software company with proprietary source code manager, repository and build tool I can tell you it is no fun at all. It is a nightmare dealing with dependencies when you don't have Maven or Gradle.

    • @JChen7
      @JChen7 Pƙed 2 lety +4

      Sounds like someone has a case of the NIH blues.

    • @bobobo1673
      @bobobo1673 Pƙed 2 lety +18

      "Maven or Gradle" Look with Gradle I can't comment but with Maven? are you serious? Do you know how complicated it is to simply add a project and the problems it gives looking for its dependencies? Sometimes you have to solve the problems yourself by hand (looking at the dependency tree, and that I don't even talk about projects with Wildfly is a horror) and it makes me lose time from work when all I wanted was to install a library

    • @not_nerp
      @not_nerp Pƙed 2 lety +5

      would this proprietary build tool happen to share a name with a certain south american country

    • @ultimatum97
      @ultimatum97 Pƙed 2 lety +6

      @@bobobo1673 Be thankful that atleast it downloads the versions you mention in pom. The build system I work with needs a kind of dummy project just to deal with dependencies. It then does some black magic, pulls the wrong jars in a secret location and then shoves it into the cryptic buildpath directly during environment level global build đŸ€ŁđŸ€Ł

    • @ultimatum97
      @ultimatum97 Pƙed 2 lety

      @@not_nerp Maybe....not

  • @bakedbeings
    @bakedbeings Pƙed 2 lety +214

    Another fantastic video, just one nit pick: it wasn't super clear (to me) early on that this was about repositories for web tech specifically. When you started out with 2 billion lines of Google code I had their C++, Go etc code in mind - a major driver of Go's toolchain design was long C/C++ build times on huge code bases - but Turborepo is js/ts only.

    • @omarkarim9298
      @omarkarim9298 Pƙed 2 lety +6

      Using build tools like maven/gradle and scripting I found is the best way to go for multiple projects of different programming languages

    • @tmthyrd
      @tmthyrd Pƙed 2 lety +8

      Thanks for pointing this out, I completely missed this point. It's somewhat ironic that a tool written in Go to manage repos doesn't actually support Go. Does NX or Lerna support a larger set of languages?

    • @IxMeTutorials
      @IxMeTutorials Pƙed 2 lety +2

      @@tmthyrd Lerna is based on npm, so probably not.

    • @nathanhedglin931
      @nathanhedglin931 Pƙed 2 lety +2

      There is only JavaScript 😂

    • @Zokiio
      @Zokiio Pƙed 2 lety +5

      But Bazel that google use does actually handle multiple codebases like Java, C++, Go, Android, iOS

  • @akillersquirrel5880
    @akillersquirrel5880 Pƙed 2 lety +83

    Having recently left a company that was built around a monorepo, here's my takes:
    Pros:
    * Visibility - it's easy to see where things are used and discover stuff.
    * Uniformity - no need to manage versions between things used internally.
    Cons:
    * Upgradability - you can only upgrade something once *all* of its users are upgraded.
    * Maintenance - if you don't invest enough talent into setting up and maintaining your monorepo tools, it's easy to get to a point where they are no longer usably fast.
    * Speed - if a simple `git status` command takes multiple seconds to complete, nothing in your project will feel snappy.

  • @Flackon
    @Flackon Pƙed 2 lety +16

    I've actually started using monorepos for a couple of solo projects, due to the ease of packaging and dependency sharing

  • @VarunGupta3009
    @VarunGupta3009 Pƙed rokem +19

    I scouted the entire internet a few months ago to get the exact same monorepo build setup as I'm used to at Google, but here you are, who explained it all so beautifully in a video under 10 minutes. Bless you.

  • @vinaymama
    @vinaymama Pƙed 2 lety +3

    Just few days back , i saw the Fireship comment in the TURBOREPO launch video. Now we have a complete tutorial on it...
    Thank You dude

  • @a.c.vermillion
    @a.c.vermillion Pƙed 2 lety

    I was waiting for so long to finally see this uploaded. Thank you!

  • @ShawnCZek
    @ShawnCZek Pƙed 2 lety +150

    Another issue with monorepos is the access management. Especially with the public available tools, you cannot easily define what directories one should have access to.

    • @devnol
      @devnol Pƙed 2 lety +7

      Doesn't github's codeowners do that?

    • @qwerty-or1yg
      @qwerty-or1yg Pƙed 2 lety +23

      @@devnol I know that they can limit access to specific repos, but not directories inside a repo. Don't think they can limit your access to specific directories inside a repo (unless I missed and not aware of something)

    • @mudscuffer
      @mudscuffer Pƙed 2 lety +13

      @@devnol Codeowners can limit write / merge / PR rights. But not read access.

    • @muizzy
      @muizzy Pƙed 2 lety +4

      Aside from fringe cases (like fraud rules), why would you want to manage read access?

    • @mudscuffer
      @mudscuffer Pƙed 2 lety +35

      @@muizzy For example if you use freelancers or outsourced development for the frontend or for integrations, but don't want them to see your proprietary backend algorithms.

  • @KerimWillem
    @KerimWillem Pƙed rokem

    You have no idea how helpful this video is and how much time it saved me. THANK YOU.

  • @clementbowe7594
    @clementbowe7594 Pƙed 2 lety +1

    I'm probably really late on this but congratulations on reaching 1m subs!! I watch daily and always learn a new thing or two. I hope that you keep making amazing content!

  • @isaac4386
    @isaac4386 Pƙed 2 lety

    I feel like your tracking my Google search wow. Been researching monorepo since the weekend and now you post this đŸ€Ł . Love it

  • @badreddine8727
    @badreddine8727 Pƙed 2 lety

    Thank you for the video I was confused when vercel acquired turbo repo and what it was, this cleared up a lot of things

  • @yodkwtf
    @yodkwtf Pƙed 2 lety +1

    So much information in one video. Huge respect. ❀

  • @0xedb
    @0xedb Pƙed 2 lety +132

    turborepo is great. I just want a demo where everything is done from scratch instead of the boilerplate to better explain it.

    • @AndersonSousa33
      @AndersonSousa33 Pƙed 2 lety +2

      me too

    • @kevyyar
      @kevyyar Pƙed 2 lety +4

      That is my only problem with Fireship. Everything else is great.

    • @floffah264
      @floffah264 Pƙed 2 lety +3

      their docs have a good step by step process of this and their examples help a lot

  • @dmitrii_zolotuhin
    @dmitrii_zolotuhin Pƙed 2 lety +2

    Man your channel is pure gold.

  • @osagiee9553
    @osagiee9553 Pƙed 2 lety

    ive been feeling the need for a monorepo for quite some time. this is helpful.

  • @devbyemil5201
    @devbyemil5201 Pƙed 2 lety +15

    You are really doing some great explanations! How about a video about how to plan software and what tools to use? Would love to see it👍

  • @akashkumar121213
    @akashkumar121213 Pƙed 2 lety +16

    I have been setting up a typescript monorepo for one of my personal projects ... And lets just say there are some pains you are gonna feel that you wont forget.

  • @sakthisanthosh0103
    @sakthisanthosh0103 Pƙed 2 lety

    You're videos are great. Congratulations for your 1M subscriber mark. 🎉🎉🎉

  • @cornheadahh
    @cornheadahh Pƙed 2 lety +1

    I'm loving the frequent uploads

  • @williamchamberlain2263
    @williamchamberlain2263 Pƙed 8 měsĂ­ci +1

    0:30 I like that the codebase is elvoving blindfolded _and_ being pulled side to side by different teams _and_ will irrevocably topple over with crushing force after just one pull too hard or in the wrong direction. Great metaphor.

  • @erkinkurt6799
    @erkinkurt6799 Pƙed 2 lety

    I was searching for this to decide if I should use this approach or not. OMG either you can hear me or you have amazing skills to access my search history

  • @PatricioHondagneuRoig
    @PatricioHondagneuRoig Pƙed 2 lety

    Your videos are my non-guilty pleasure, I always leave having learned cool stuff and enjoying it, it's like having celery for dessert.

  • @IsaacAlcocer
    @IsaacAlcocer Pƙed 2 lety

    You just give me an idea for a personal project, kudos... this is a nice video to watch.

  • @yurayurec6071
    @yurayurec6071 Pƙed 2 lety +1

    Top quality as always 👌 waiting for your video on webpack module federation, another hyped tool on the market

  • @alexIVMKD
    @alexIVMKD Pƙed 2 lety +2

    Your videos are spectacular, congratulations in advance for 1M

  • @code_react
    @code_react Pƙed 2 lety

    you saved my life by explaining how monorepos works. Thank you so much.

  • @thepianist6425
    @thepianist6425 Pƙed 2 lety +48

    Would love to see a video covering Micro Frontends. Having said that, always a big fan of the quality of videos. 10/10 college degree material right here. I should start adding fireship io under the education section of my resume now.

    • @DominicanRepublicInvestment
      @DominicanRepublicInvestment Pƙed 2 lety

      Second this!

    • @muizzy
      @muizzy Pƙed 2 lety +2

      I work with a micro frontend every day (though admittedly on the backend). Do you have any specific questions? I may be able to answer them.

    • @ThiagoVieira91
      @ThiagoVieira91 Pƙed 2 lety +2

      @@muizzy Do you think micro frontends improved your development experience in you project? How did micro frontends improved your team workflow? Can you talk about some trade offs in comparison to currently traditional frontend architectures?

    • @JChen7
      @JChen7 Pƙed 2 lety +3

      Watched "Java in 100 seconds".
      - Proficient in Java

    • @essayemyoung4009
      @essayemyoung4009 Pƙed 2 lety

      Would check out Jack Herrington’s videos on this (e.g., czcams.com/video/lKKsjpH09dU/video.html where he goes through a React example in detail)

  • @Balance-8
    @Balance-8 Pƙed 2 lety

    you literally read my mind on the video I wanted to see. Incredible!

  • @kettenbach
    @kettenbach Pƙed 2 lety +1

    Frikin love you man! It's been 84 years. That was frikin hilarious bro. đŸ’Șâ€ïžđŸ‘

  • @wheytomuchforher
    @wheytomuchforher Pƙed 2 lety +35

    Serious question. Why would I use this instead of NX's built in CLI tooling to run the "affected" aspects of my code base. I use NX for both of my side projects

    • @syamjulio3685
      @syamjulio3685 Pƙed 2 lety +1

      I'm interested in this as well.

    • @middlefloor
      @middlefloor Pƙed 2 lety +7

      Turbo would probably be used instead of Nx, not alongside it. If you're already using Nx, turbo won't do anything for you that Nx doesn't do.

  • @abh1yan
    @abh1yan Pƙed 2 lety +2

    Great video Jeff, really wanted to see this.

  • @DiegoBM
    @DiegoBM Pƙed 2 lety +4

    So two questions mainly. How do those tools help solve the massive git stack of changes and vscode to keep up with them, and do nx and turborepo override lerna? Or is lerna supposed to work in tandem with any of those? From what I can read in turborepo's site it seems like it can do all that lerna does?

  • @GagandeepSingh1984
    @GagandeepSingh1984 Pƙed rokem

    So much to understand in this build flows .. thanks for sharing it..

  • @conororeilly5492
    @conororeilly5492 Pƙed 2 lety +2

    I've got 3 apps, possibly a 4th coming if i finish the current project soon all along the same theme, i might try creating a monorepo for them to share some of the common functionality. It's most likely overkill at this stage but each app was to learn something, so i may as well do it and see what i learn

  • @nathanbrown19
    @nathanbrown19 Pƙed 2 lety +2

    Worked in both mono and traditional repos. Monorepo removes so many dependency and versioning headaches.

    • @archmad
      @archmad Pƙed 2 lety

      It can go to an opposite way. 1 app only supported old version while the other uses the new

  • @jonasbroms
    @jonasbroms Pƙed 2 lety

    THANKS! Great video! I have to test this now on my monorepos. :D

  • @abhinavrobinson2310
    @abhinavrobinson2310 Pƙed 2 lety +1

    Amazing,

  • @AlexEscalante
    @AlexEscalante Pƙed 2 lety

    I think I am trying Turborepo soon! Thanks for your videos!

  • @andyhall7032
    @andyhall7032 Pƙed rokem

    I like how the narrator sounds like text-to-speech software...it's one of the many appealing aspects of this channel.

  • @OptrixTV
    @OptrixTV Pƙed 2 lety +1

    i knew this was coming when i saw you put "nice" on Vercel's stream on Turborepo :D

  • @sessionswithtemitope
    @sessionswithtemitope Pƙed 2 lety

    Thank you for this. It's what's I need right now

  • @Viviko
    @Viviko Pƙed 2 lety +20

    I usually only use Monorepo on things like Microservice based systems. I kind of feel like having one repository for ALL your products kinda is overkill. But I guess not, after watching this.

    • @AhmedKachkach
      @AhmedKachkach Pƙed 2 lety +10

      What's overkill is going through the effort of maintaining different repos for a small project.
      If your web app, your mobile app and your data processing jobs all use the same data representation, why not store everything in the same repo and keep everything in sync?

  • @nmanikiran
    @nmanikiran Pƙed 2 lety +1

    Please build a course around it (mono repo) with all the tools you have mentioned.
    take 1 big project and architect the same in all tools like nx, turborepo, lerna, yarn, blaze, webpack module federation etc

  • @krishgarg2806
    @krishgarg2806 Pƙed 2 lety +6

    Time to use turbo repo for my todo app.

  • @mustafamirza6807
    @mustafamirza6807 Pƙed 2 lety

    Amazing & concise explanation.

  • @toilet_man_G
    @toilet_man_G Pƙed 2 lety

    Just need this Thanks so much for the explanation

  • @Ultimacho
    @Ultimacho Pƙed 2 lety +1

    I wonder what are the main advantages of using Turborepo against the standard yarn workspaces? We are using the latter, but we will move to a new tool if we see obvious benefits.
    We only run one app at a time during development, so the process doesn't seem to differ much from the one described in the video.

  • @saurabhjainwal4604
    @saurabhjainwal4604 Pƙed 2 lety +13

    We use nx at our firm, it’s really cool and definitely helps maintain our mono repo. 😀

    • @middlefloor
      @middlefloor Pƙed 2 lety +7

      🙌

    • @skyhappy
      @skyhappy Pƙed 2 lety

      @@middlefloor Why are you raising your hands? Are you catching a basketball?

    • @middlefloor
      @middlefloor Pƙed 2 lety +6

      @@skyhappy yes!

    • @skyhappy
      @skyhappy Pƙed 2 lety

      @@middlefloor well this is a tech channel not a basketball one

    • @johngc2010
      @johngc2010 Pƙed 2 lety +5

      @@skyhappy Jeffrey Cross is one of the maintainers of Nx...

  • @FilledStacks
    @FilledStacks Pƙed 2 lety +6

    Awesome vid. Good idea to build something like this for flutter as well

    • @chinmaykabi
      @chinmaykabi Pƙed 2 lety

      Melos?

    • @FilledStacks
      @FilledStacks Pƙed 2 lety

      @@chinmaykabi We use melos but it's not a build tool, it's more accurately defined as a "script coordinator". You're bundling commands for multiple packages under a single command. No caching, no smart rebuilds, etc. It will always execute all commands that you defined.

  • @albert21994
    @albert21994 Pƙed 2 lety +1

    Get the Linux DX with remote containers ;) you can even clone the repository to the docker instance to get the speeds

  • @Filaxsan
    @Filaxsan Pƙed 2 lety +5

    Our man Jeff becoming funnier and funnier (and informative!) every video. Way to go Jeff, love you

  • @KevinVandyTech
    @KevinVandyTech Pƙed 2 lety +17

    I just converted most of my company's front end code to Nx. It's been a game changer

  • @JonathanAdami
    @JonathanAdami Pƙed 2 lety +7

    "You might know him with packages like Formik" Telling me that after 3 weeks of trying to solve issues with fomik and eventually having to refactor my entire code base to use react-hook-forms (which is MUUUUCH better) makes me wanna ditch Turborepo even if I know nothing about it hahaha Cheers for the video!

    • @jztsaurabh8111
      @jztsaurabh8111 Pƙed 2 lety +2

      Formik has its own issue but it created the whole form library ecosytem

    • @codevev
      @codevev Pƙed 2 lety +3

      That's literally what we've been doing in the last couple weeks haha

  • @nanotichorizon9644
    @nanotichorizon9644 Pƙed 2 lety

    Thank you so much for this content!

  • @anubhavbansal8922
    @anubhavbansal8922 Pƙed 2 měsĂ­ci

    too much of information in just 10mins that's why I love you

  • @theatypicaldeveloper
    @theatypicaldeveloper Pƙed 2 lety +31

    you should always think big and leave an extra space in your app (if possible) so it's growth-friendly
    great vid, as always!

    • @andreb.1352
      @andreb.1352 Pƙed 2 lety +6

      you should always think small, and iterate it to the better.. otherwise you end up in perfection and you need a lot of time instead of just shipping a lot of small parts

    • @zyriab5797
      @zyriab5797 Pƙed 8 měsĂ­ci

      Keep it lean and modular

  • @lixou
    @lixou Pƙed 2 lety +5

    Me finishing after 3 days my MonoRepo setup. 2 hours later, this video got uploaded
.

  • @officialismailshah
    @officialismailshah Pƙed 2 lety

    Sir you are just awesome pro pro level knowledge.....

  • @MikePatterson8831
    @MikePatterson8831 Pƙed 2 lety

    The weirdestthing for me is seeing big companies modify distributed version control systems so that they operate more like centralized version control systems. All the problems with git scaling is from git's own setup. Really glad I no longer work at one of the big companies mentioned here. Central version control systems manage monorepos so much better in terms of speed and out of the box access management.
    And this particular company's proprietary build tool had such poor documentation that it was almost tribal knowledge when you needed someone to setup the build pipeline or fix a bug.
    Great video!

  • @wie5493
    @wie5493 Pƙed 2 lety

    You’re amazing! How can you put out such high quality videos so quickly?

    • @skyhappy
      @skyhappy Pƙed 2 lety

      His amazing intelligence and work ethic

    • @andresramos7965
      @andresramos7965 Pƙed 2 lety

      My man fireship has a brain so dense, that rumors says in the center there is a blackhole

  • @junzhengca
    @junzhengca Pƙed 4 měsĂ­ci

    Monorepo coupled with almost perfect IaC is a god send, it gives amazing visibility to everything. Yes it is complex, and the on-boarding learning curve will be steep, but once you are familiar with it, you don’t even need to leave your IDE to find anything.

  • @dlysele
    @dlysele Pƙed 2 lety +2

    Quality video that everyone should watch

  • @ThaChillz
    @ThaChillz Pƙed 2 lety +2

    Thanks Jeff, this video was very cache

  • @AnimusAgent
    @AnimusAgent Pƙed 2 lety

    One thing I felt it went missed on this video was about the easy integration with microfrontends and testing tools with Nx.

  • @davidzavala9414
    @davidzavala9414 Pƙed 8 měsĂ­ci +1

    Hi, great content!!!
    Do you have any video where you explain the differences between monorepo and microfrontend? and if it is possible to use both?

  • @bruceaxelrod8291
    @bruceaxelrod8291 Pƙed 2 lety +3

    Monorepos are great but how to control visibility of the code & access to the code if everything is in one repository.
    Like some departments are not allowed to see specific directories/code & things like that

  • @AlbertCloete
    @AlbertCloete Pƙed 2 lety

    Is there anything similar for when you have to mix languages? E.g. if your back-end isn't written in JavaScript.

  • @vikrantshah1633
    @vikrantshah1633 Pƙed 2 lety

    Thanks for fulfilling the request

  • @falxie_
    @falxie_ Pƙed 2 lety

    Had my eye on Turhorepo, didn't know they went open source!

  • @wxrld1
    @wxrld1 Pƙed 2 lety

    perfect, now I just need to start a big project. maybe next weekend. yeah.

  • @tylersustare
    @tylersustare Pƙed 2 lety

    I was so stoked on this but when I tried adding a “ui” package to the default starter I wasn’t able to get it to work. Only the default “Button” component worked across projects. Which was a bummer. I wasn’t able to find any docs on how to add one. For turborepo

  • @agentsamumu
    @agentsamumu Pƙed 2 lety

    You talked about microservices in that, can you do a video on it? That sounds really interesting

  • @NezzyLawd
    @NezzyLawd Pƙed 2 lety

    Been watching for ages, but not subscribed. I don't know how!

  • @mavvdeus
    @mavvdeus Pƙed 2 lety

    Can one use turbo with other languages (Java, PHP, Python, ...) as well, or is it just for JS projects?

  • @mylifegamer1
    @mylifegamer1 Pƙed 2 lety

    Hey, I used that in creating a blockchain 😃 Thanks

  • @nitroflap
    @nitroflap Pƙed 2 lety

    Funniest thing is that today I was thinking exactly about monorepos & multi repos. Fireship reads our minds.

  • @shanujha7245
    @shanujha7245 Pƙed 2 lety

    @Fireship, How do I add a new project in this monorepo? Does it have to be configured manually? What if I want to migrate my existing repos here in this pattern, what are the steps I must follow?

  • @uwuLegacy
    @uwuLegacy Pƙed 2 lety

    YES finally monorepos are getting more coverage

  • @MrMeszaros
    @MrMeszaros Pƙed 8 měsĂ­ci

    Cool - like Gradle!
    Except that build caching sharing - that sounds like fun

  • @rayanez
    @rayanez Pƙed 2 lety +8

    Awesome video, thanks for the info. Do you know if there's a similar tool for Java codebases? or, I don't know if it makes sense, heterogeneous code bases?

    • @middlefloor
      @middlefloor Pƙed 2 lety

      Gradle's probably the closest Java-first tool. Most of the tools in the video can be used for multi-language codebases, but Bazel and Nx have plugins that make it easier to work with different technologies/languages.

  • @reed6514
    @reed6514 Pƙed 2 lety +2

    i'm a php dev with about 10 foss packages, many depending on eachother, and composer (php's dependency manager) works great for me. & I think gitlab has a built-in feature for mono-repos, though idk how feature rich it is.

    • @reed6514
      @reed6514 Pƙed 2 lety

      Okay, i have quite a few more foss packages than 10 ... but i estimate only about 10 of them are useful ... i just open source most stuff i write.

  • @daalah6074
    @daalah6074 Pƙed 2 lety

    what do you use to highlight your cursor?

  • @felixoghina553
    @felixoghina553 Pƙed rokem

    Setting up a monorepo for all my unfinished projects

  • @besm_a
    @besm_a Pƙed 11 měsĂ­ci

    Thank you for the video :)

  • @racecarjonny8460
    @racecarjonny8460 Pƙed 2 lety +1

    I have worked with monorepos built with lerna. OMG are they difficult to maintain!

  • @midas6659
    @midas6659 Pƙed 2 lety

    Best tech CZcamsr on the planet yo

  • @lambrohan
    @lambrohan Pƙed 2 lety

    I knew it coming, since you starred the repo 2 days ago!

  • @BlackdestinyXX
    @BlackdestinyXX Pƙed 2 lety +1

    Really interesting, thanks

  • @quachhengtony7651
    @quachhengtony7651 Pƙed 2 lety

    Nice explanation.

  • @codeaperture
    @codeaperture Pƙed 2 lety +3

    Let's get fireship to the moon 🚀

  • @davidvillarreal796
    @davidvillarreal796 Pƙed 2 lety

    would these problems that monorepos have just be solved by creating different repos and some dockerfiles? instead of having to use all these different tools?

  • @jellyfish1772
    @jellyfish1772 Pƙed 4 měsĂ­ci

    thank you so much

  • @agusgarcia9509
    @agusgarcia9509 Pƙed 2 lety

    Excellent video!