Slide 1

Slide 1 text

Miroslav Jonas / @meeroslav / nx.dev / nrwl.io The Easy Choice @AngularVienna / October 2021

Slide 2

Slide 2 text

CHOICES

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

STAY FRESH LONGER

Slide 5

Slide 5 text

CHOOSE WISELY? How do you

Slide 6

Slide 6 text

01 RANDOMIZER 02 ANALYST 03 FOLLOWER

Slide 7

Slide 7 text

ONE EASY CHOICE

Slide 8

Slide 8 text

IN YOUR SHOES

Slide 9

Slide 9 text

I’VE 
 SEEN THE CODE

Slide 10

Slide 10 text

MIROSLAV JONAŠ @meeroslav

Slide 11

Slide 11 text

WHY MONOREPOS?
 WHY NX?


Slide 12

Slide 12 text

WHY MONOREPOS? 01 Atomic Changes 02 Shared Code 03 Single Set of Dependencies

Slide 13

Slide 13 text

ATOMIC CHANGES Homepage App Common UI Admin Portal App Mobile App Utils Helpers

Slide 14

Slide 14 text

ATOMIC CHANGES Homepage App Common UI Admin Portal App Mobile App Utils Helpers

Slide 15

Slide 15 text

ATOMIC CHANGES Homepage App Common UI Admin Portal App Mobile App Utils Helpers

Slide 16

Slide 16 text

SHARED CODE

Slide 17

Slide 17 text

SINGLE SET OF DEPENDENCIES

Slide 18

Slide 18 text

WHY NOT COLLOCATION? 01 Running Unnecessary Steps 02 No Code Boundaries 03 Inconsistent Tooling

Slide 19

Slide 19 text

RUNNING UNNECESSARY STEPS

Slide 20

Slide 20 text

NO CODE BOUNDARIES

Slide 21

Slide 21 text

INCONSISTENT TOOLING

Slide 22

Slide 22 text

COMMON MISCONCEPTIONS 01 I don’t need this 02 Too opinionated 03 A steep learning curve 04 Too Angular-ish 05 I don’t work on FAANG sized project

Slide 23

Slide 23 text

I DON’T NEED THIS

Slide 24

Slide 24 text

TOO OPINIONATED

Slide 25

Slide 25 text

A STEEP LEARNING CURVE 01 Use just the stu ff you know (serve, build, lint…) 02 Progress at your own pace 03 Use Nx Console


Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

TOO ANGULARISH Angular Nest Web Node Next React

Slide 28

Slide 28 text

I DON’T WORK FOR FAANG

Slide 29

Slide 29 text

JUST A POC 01 Powerfull create-nx-workspace 02 Generators 03 Easy to jump to next level

Slide 30

Slide 30 text

nx-create-workspace

Slide 31

Slide 31 text

BATTERIES INCLUDED REPO GENERATORS

Slide 32

Slide 32 text

BATTERIES INCLUDED PROJECT GENERATORS

Slide 33

Slide 33 text

OPEN SOURCE PROJECT 01 Automated version migrations 02 Default executors 03 Publishing/deployment

Slide 34

Slide 34 text

CUSTOM EXECUTORS

Slide 35

Slide 35 text

STARTUP 01 Free 02 Best practices for scaling 03 O ff i cial + community plugins

Slide 36

Slide 36 text

OFFICIAL PLUGINS Angular, React + Native, Gatsby, Web ESLint, Prettier Storybook, Jest, Cypress NestJS, NextJS, Node LESS, SASS, Styled Components, Emotion…

Slide 37

Slide 37 text

COMMUNITY PLUGINS …and many more…

Slide 38

Slide 38 text

BEAM ME UP, SCOTTY! 01 Caching 02 Boundaries 03 Project graph
 04 Open source

Slide 39

Slide 39 text

CACHING Never { build, test, lint… } same code twice { build, test, lint,... } Nx Local cache { build, test, lint,... } Nx Local cache

Slide 40

Slide 40 text

BOUNDARIES store games sales coupons core shared admin type:app type:app type:feature type:feature type:feature type:util type:util scope:
 store scope:
 store scope:
 admin scope:
 admin scope:
 admin scope:
 shared scope:
 core

Slide 41

Slide 41 text

SETTING THE RULES type:app type:feature type:util only depend on only depend on scope:
 store scope:
 store scope:
 shared scope:
 core type:util type:util only depend on only depend on scope:
 admin scope:
 admin scope:
 shared scope:
 core type:util only depend on only depend on type:feature scope:
 core scope:
 shared only depend on scope:
 shared scope:
 shared

Slide 42

Slide 42 text

AFFECTED GRAPH store games sales coupons core shared admin

Slide 43

Slide 43 text

nx affected —target=deploy store core admin

Slide 44

Slide 44 text

OPEN SOURCE

Slide 45

Slide 45 text

NO TRICKS
 JUST TREATS

Slide 46

Slide 46 text

01 MONOREPOS ROCK! 02 NX GIVES SUPERPOWERS! 03 ONE SIZE FITS ALL!
 04 NOT JUST FOR ANGULAR!

Slide 47

Slide 47 text

Miroslav Jonas / @meeroslav / nx.dev / nrwl.io WHY BE A 10X 
 WHEN YOU CAN BE AN NX DEVELOPER? @AngularVienna / October 2021

Slide 48

Slide 48 text

Miroslav Jonas / @meeroslav / nx.dev / nrwl.io The Easy Choice THANK YOU @AngularVienna / October 2021