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