Een workspace is één op zichzelf staand project dat samen met andere in één repository leeft, ook wel een monorepo genoemd. Elke workspace, bijvoorbeeld een website, een mobiele app en een gedeelde designbibliotheek, heeft eigen code en een eigen lijst met dependencies, terwijl ze samen dezelfde buildtools en één historie delen. Van buitenaf ziet het eruit als een gewoon project. Van binnen weet het dat het buren heeft.
Stel je een kantoorgebouw voor waar elk team een eigen verdieping heeft, maar de lobby, de liften en de receptie deelt. De teams blijven zelfstandig en houden hun eigen overleggen, maar een wijziging aan de gedeelde receptie raakt iedereen meteen. Dat is wat workspaces je geven: losse projecten die toch uit gemeenschappelijke, gedeelde code putten. Ze worden meestal opgezet binnen een monorepo en aan elkaar geknoopt door een package manager zoals npm of pnpm, die weet hoe de stukken samenhangen en alles in één keer installeert.
De grote winst is consistentie. Als meerdere apps van dezelfde interne bibliotheek afhangen, kun je die met een workspace één keer bijwerken en zien alle apps direct de nieuwe versie. Geen bestanden tussen mappen kopiëren, geen versies die uit elkaar lopen waarbij de ene app een oude build draait en de andere de nieuwe. En als een developer erbij komt, kloont diegene één repository en heeft meteen het hele plaatje, niet vijf verspreide projecten die zelf aan elkaar geknoopt moeten worden.
Bij TopDevs grijpen we naar workspaces als een klant meerdere apps heeft die logica delen, zodat één fix overal landt in plaats van herhaald te worden over losse codebases.