Status: Accepted

Context

PolyWall needs a web administration interface, internal APIs, and a player compatible with browser-based screens.

Decision

Use Next.js and TypeScript to combine React pages, Server Actions, API routes, and the display client in one deployable application.

Rationale

  • shared types and components
  • server rendering for administration pages
  • colocated screen and media routes
  • one application to build and deploy
  • React ecosystem support for visual editors and calendars.

Consequences

The monolith simplifies consistency and transactions, but the web process must not run expensive media conversions. Those operations run in a separate worker. An application outage affects administration and screen runtime refresh.