Back to work
Corelance / 2025

A monorepo that lets two teams ship without breaking each other.

A two-sided freelance marketplace platform built as a Turborepo monorepo — a structured codebase that lets the api and web teams ship independently without breaking each other.

Role
Full-Stack Developer (api + web workspaces)
Stack
TurborepoTypeScriptNode 20+npm 10 workspaces
Tags
MarketplaceMonorepoTwo-sided platformPlatform engineering
§ 01 / Context

Context

Corelance is building a marketplace where independent developers and clients connect on real production projects. As soon as the team had two surfaces (REST API + Next.js web client) they hit the classic monorepo-or-polyrepo decision point. Polyrepo would have meant version drift on shared types. A flat repo would have meant slow CI and cross-talk between unrelated changes.

§ 02 / Approach

Approach

Structured the entire platform as a Turborepo monorepo with apps/api and apps/web as workspaces, plus shared packages/* for type definitions and utilities so the API contract is checked at compile time on both sides. CI runs build/lint/test across the workspace boundaries so API breakage surfaces in PR review, not in production. npm 10 with workspace dependencies and explicit version-pinning where it matters (express types, etc.) prevents drift. Node 20 minimum for top-level await and stable native test support.

§ 03 / Outcome

Outcome

The team can ship API and web changes independently, but a breaking change to a shared type fails CI immediately. Onboarding a new contributor takes minutes — clone, npm install, run npm run dev from any workspace. The monorepo pays for itself the first time someone tries to rename a shared interface.

§ 04 / Metrics

What it does

  • 01Single-repo, two-app architecture (api + web) with shared type packages enforced via Turborepo workspace boundaries
  • 02CI runs turbo build/lint/test with per-workspace caching — only affected workspaces re-run
  • 03Onboarding from clone to running dev server in minutes; shared-type renames fail loudly at CI, not at runtime
§ / Building something similar?

Tell us what you’re working on.

We’re happy to talk through what we learned on this project and whether we’re the right partner for yours.