monorepo

From IndieWeb


monorepo is when a software maintainer bundles multiple projects into a single working repository.

Why

Keeping multiple similar projects in a single repository (a monorepo) makes it easy for one to leverage code across those projects without relying on other repositories. Also, monorepos reduce burdens associated with dependency updates if multiple projects use similar or the same dependencies.

IndieWeb Use Discussion

A discussion in the IndieWeb Chat posed a question about whether IndieWeb projects could be bundled into a monorepo. There are two separate ways to think about this:

  • Bundling microservices for a personal website into a single repository.
  • Bundling standards implementations (i.e. Webmention receiver, Micropub server) into a single repository.

Using a monorepo may make sense for a personal website, especially if the site is not open sourced, so that all code that relates to the day-to-day working of the site is in one place. This would make less sense if code was written in multiple languages (i.e. a webmention receiver written in Python and a Micropub server written in Ruby).

Using a monorepo may also be a good approach for implementing standards to create a single project one can deploy. This may provide a better experience for a developer who wants to get into the IndieWeb ecosystem by hosting open source software than is available by storing projects across many repositories.