Wrangling Python in a Typescript Monorepo: Weighing the Pros and Cons
Sep 19 2023
Introduction
In the realm of TypeScript-based web applications, I've had the privilege of working on a few distinct projects with diferent teams, both for work and for personal projects. Interestingly, three of these endeavors organically evolved into eventually needing a Python microservice component, primarily due to user requirements and evolving tech landscapes.
In all of these projects, each of the teams I worked with made a conscious decision to incorporate these Python services within a monorepo as opposed to keeping the Python package in a separate repository. This has been a decision that has since proven to be exceptionally beneficial across the projects, but not without its own challenges.
In this series of blogs, I'll be documenting my process and thoughts as I experiment with the use of different monorepo tools to integrate Python in my TypeScript-based monorepository, in hopes that it'll help other developers who are exploring a similar use case as well!
A Three-part Series
This blog is broken down into three parts:
- Wrangling Python in a Typescript Monorepo: Weighing the Pros and Cons
- Wrangling Python in a Typescript Monorepo: Nx with Python Tutorial
- Wrangling Python in a Typescript Monorepo: Turbo with Python Tutorial
The first part, 'Weighing the Pros and Cons', will provide an overview with my own personal anecdotes of the pros and cons of investing effort to integrate a Python package into a TypeScript-based monorepo. I will also talk about the two monorepo tools I have used, Nx and Turbo, and talk about my recommendations on which to use for various contexts.
The second part, 'Nx with Python Tutorial', will be a detailed tutorial on how to use the monorepo tool, Nx, to integrate Python in a TypeScript-based monorepo.
The third part, 'Turbo with Python Tutorial', will be a detailed tutorial on how to use the monorepo tool, Turbo, to integrate Python in a TypeScript-based monorepo.
TO BE CONTINUED