Amended by 0268: R11: there is no server
rendering of L2 pages in v1.
Context
0056 and 0055 set the web component stack. The owner’s answers B30, B31 and B16 (mem L582, 2026-10-20) and the rule on free packages (L579) restate it. The owner then decided that Next.js is rejected, with no revival trigger.Decision
- Component contract (B30). The component contract is shared. The implementation is per runtime (0112, X9).
- Form adapters (B31). HeroUI field adapters move into
@stackra/uiand the renderer packages. They do not live in the apps. - Next.js is rejected (B16). Its catalog entry, its scaffold template and the
app-nextapp kind are removed. The web stack is Vite with React Router 7. Server rendering uses React Router 7 framework mode. - Revival. Never. Next.js changes status only by a new ADR (owner answer, 2026-10-20).
- Free packages (L579). Free packages never depend on Pro components.
- HeroUI Pro. It is used only in Stackra’s own apps (ADR 0197, wave 3).
Consequences
- An app that wants Next.js needs a new ADR, and the owner has said that ADR is not expected.
- Removing
app-nextchanges the scaffold kinds and the members list; those edits are docs and code work that follows this ADR.
Enforcement
planned — the validator’s forbidden list gainsnext, and the scaffold no longer offers app-next. The next catalog entry is removed from
pnpm-workspace.yaml in the code change that follows this ADR.
Alternatives
- Keep Next.js beside Vite: rejected by B16.
Supersedes and sources
Supersedes: 0056. Amends: 0055. Sources: owner answers B30, B31 and B16 (stackra-decisions-2026-10-19.md L582, 2026-10-20), free-package rule (L579), and the owner’s
Next.js decision with no revival trigger (2026-10-20).