Forced Proximity: The Monorepo
You didn’t choose to share this space. But now the walls are close and neither of you can leave.
Forced proximity is the dark romance trope where two people who should not be together are trapped in the same space — a cabin in a storm, a safehouse, a single hotel room with one bed. The tension is architectural. The walls create the intimacy. The inability to escape creates the honesty.
A monorepo is forced proximity for code.
One Roof, Many Secrets
In a monorepo, your frontend and your backend live in the same house. They share a package.json. They see each other’s types. They know things about each other that microservices would never reveal — the shape of your data before it’s sanitized, the real structure of your API before it’s documented.
There is nowhere to hide. Every change in one room echoes through every other room. Your database migration affects the frontend types. Your component refactor shifts the API contract. The walls are thin. The coupling is intimate.
This is not an accident. This is the architecture of closeness.
The One-Bed Problem
The one-bed trope works because it forces the characters to make a choice: maintain distance in an impossible situation, or surrender to the proximity and see what happens.
Monorepos pose the same question. You can maintain strict boundaries — separate build configs, isolated test suites, rigid import rules that keep the modules from touching. Or you can lean into the closeness. Shared types. Shared utilities. A validation schema that both the frontend and backend trust because it lives in the space between them.
The developers who fight the monorepo end up building walls inside a shared house. The developers who embrace it build something that moves as one body.
The Tension That Builds
Every monorepo has a moment where the proximity becomes electric. The moment you realize the shared type you wrote at midnight is being used by three different services and they all just work. The moment a single commit fixes a bug on both sides of the stack because the code is close enough to heal in one gesture.
That feeling — the friction becoming flow — is why people stay in monorepos long after the complexity should have driven them out.
What Stays
Forced proximity stories end one of two ways: the characters build something real from the closeness, or they destroy each other trying to maintain distance in a space too small for pretense.
Your monorepo is the same. Stop fighting the proximity. Let the code be close. Let the types know each other. Let the intimacy of a shared space become the strongest thing in your architecture.
The walls are not the enemy. The walls are the reason you finally learned to build together.
— JP, from the void.