Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Age of monorepos

The Age of monorepos

The history of the web can be divided into evolutionary development leaps. The age of inline scripts, the age of jQuery, the age of SPAs, the age of JAMStack...

We are now entering the next stage that has been carefully prepared in the past few years. Let me invite you to the world of modern monorepo solutions and share with you the benefits you will reap by using them in every project size and setup. It's time you automate those boilerplate tasks and reduce the bottlenecks so you can focus on what truly matters.

Get ready for the next leap! Welcome to the age of monorepos!

B5a5aa65ece7b78c2b73afca48c48885?s=128

Miroslav Jonaš

February 10, 2022
Tweet

More Decks by Miroslav Jonaš

Other Decks in Programming

Transcript

  1. The Age of Monorepos Miroslav Jonas / @meeroslav agent.sh /

    monorepo.tools / nx.dev / nrwl.io
  2. Miroslav Jonas engineer at @meeroslav

  3. Mono- what?

  4. None
  5. Static Web (pre JS era)

  6. None
  7. None
  8. successfully confusing recruiters since 1995

  9. Age of Scripting

  10. None
  11. Age of jQuery

  12. Age of SPAs

  13. Age of JAMStack

  14. None
  15. Age of Monorepos

  16. Homepage App (framework X) Backend Every application* UI Components /

    Design system Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Admin Portal App Mobile App Utility
  17. Main library Website / Docs Every open source* Demo 1

    Example 2 Showcase 3
  18. Homepage App (framework X) Backend Collocate UI Components / Design

    system Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Admin Portal App Mobile App Utility
  19. Code sharing

  20. Just collocation NOT

  21. Speed matters

  22. Rule 2: Find affected graph store games sales coupons core

    shared admin
  23. Workspace analysis

  24. Task orchestration Test Build Lint Build Lint Test Build Lint

    Test
  25. *A tool for managing JavaScript projects with multiple packages.

  26. Modern monorepo tools

  27. None
  28. Caching Never { build, test, lint… } same code twice

    { build, test, lint,... } Nx Local cache { build, test, lint,... } Nx Local cache
  29. Distributed task execution 10 tasks 110 tasks 100 tasks 150

    tasks 10 tasks 105 tasks 5 tasks 60 tasks 35 tasks Agent 1 Agent 2 Agent 3 Agent 4 Agent 5
  30. Code constraints

  31. Code constraints store games sales coupons core shared admin

  32. But I have only one project…

  33. Consistent tooling

  34. Powerful generators

  35. Monorepos bring clarity - workspace analysis - graph visualization

  36. - local & remote caching - task orchestration - detecting

    affected nodes - distributed task execution - remote execution Monorepos bring speed
  37. - code sharing - code collocation - powerful generators -

    consistent tooling - code constraints Monorepos make it easy
  38. None
  39. nx.dev / nrwl.io Use

  40. Thank you! Miroslav Jonas / @meeroslav agent.sh / monorepo.tools /

    nx.dev / nrwl.io