Skip to Content
DevelopersDecision records0001 Separate repositories

0001: Separate repositories

Status: accepted

Context

v1 was a single Next.js project containing the UI, server actions, API routes, cron scripts and the database schema. Every concern changed together and nothing could be deployed or owned separately.

Decision

Three repositories: pennyplan-web, pennyplan-api, pennyplan-docs. They share no code. The API publishes an OpenAPI spec and the web app generates its client from it.

Consequences

  • A UI problem is fixed in the web repo; an API or data problem in the API repo.
  • Each deploys on its own pipeline.
  • The phrase parser must exist in two places. We accept that and make drift a CI failure (see Repositories and contracts).
  • Changes that span both need ordering: API first.
Last updated on