All right, so I'm super excited to be here today and be able to talk to you about Schedule React development specifically with NX. So, before starting, let me first introduce myself. My name is Jurijs Tromfloner. I'm a Google Developer Expert in web technologies. I'm also an instructor at AgCat and Cypress Ambassador.
So right now, I work at Nowll as a JavaScript architect and engineering manager, and we at Nowll kind of try to help teams out there learn, grow, and be successful. And we do that by helping planning their roadmaps, identify technical constraints. We also provide trainings at workshops, for instance at conferences, or talks at conferences, such as I do right now. We also, however, want, or what I prefer to work at, is as an embedded part of your team, where we can identify things as they come up.
So, how do we scale development, especially with large teams, and specifically from a technical perspective, purely? And so I identify basically those three pillars, basically drive and automate good architecture, then also have modern tools at hand, and it's like an improved developer experience will make our developers more productive. And finally, speed in general. And I would like to talk to you mostly about Annex today, which is our open source dev tool, designed for Monorepos, but it also works without Monorepos, actually, pretty well.
So, this is basically the structure which you usually get when you generate a new project, right? So, what I call this is like, kind of, monolithic structure, so you have that application, you have the different types of folders, where each of those folders kind of represent a functionality and a feature boundary, usually. Now, with Annex it's a bit different, so there we have the building blocks of apps and libraries. Now, the application, as you can see here, sits at the very top, and then there are the single libraries down there. And the reason for that is it leads to a better architecture in general, because like, libraries represent a much stronger boundary than just folders. With folders, it's very difficult to actually control what can be exported and also signal what can be exported by other developers. And so in Annex, what you have usually is a very thin application at the very top, and then you have like a lot of those well-defined like workspace libraries, where the actual logic sits. And those workspace libraries don't really need to be published anywhere, they can, but they can just like live within the workspace and the application just links it. And so in the end, the application, if you want, is really just like the deployable. And then the logic is actually down in those libraries. And what often happens out of that situation, is that people start creating multiple of those applications and just like pick the libraries they actually need. And this, for instance, allows you to deploy the same kind of infrastructure multiple times and even scale it in different ways. Like we might want to scale the public phasing part much more than maybe that administrative part, which is just like used by copy users. But really today, I would like to go more hands-on and actually show you what it is like to work with Annex. And so to get started, of course, like you just installed Annex workspace and this is done by create Annex workspace, you give it a name, let's say react-summit. And I also pass here a package manager, which in this case is Yarn, but it could also be pnpm or npm. And so this now installs the Annex workspace basically set up and there we get a couple of questions asked. So we can just start with an empty workspace, but we can also use one of those presets which are pretty handy as they are already pre-configured. And so we choose react and we can give it a name demo app, for instance.
Comments