> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackra.figentra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 0165 — The web client stack restated: the @stackra/ui contract, form adapters, no Next.js

> Accepted, amended by 0268 · 2026-10-20

> [!NOTE]
>
> Supersedes [0056](/adr/0056-heroui-v3-pro-on-web-share-everything-but-components). Amends
> [0055](/adr/0055-forms-react-hook-form-zod-heroui-adapters). Next.js is rejected in
> [0011](/adr/0011-rejected-and-deferred-technologies) and in the not-built-yet rule.

> [!NOTE]
>
> Amended by [0268](/adr/0268-register-answers-thin-items-r1-to-r18): R11: there is no server
> rendering of L2 pages in v1.

## Context

[0056](/adr/0056-heroui-v3-pro-on-web-share-everything-but-components) and [0055](/adr/0055-forms-react-hook-form-zod-heroui-adapters) 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

1. **Component contract (B30).** The component contract is shared. The implementation is per runtime ([0112](/adr/0112-experience-packages-and-renderer-kit), X9).
2. **Form adapters (B31).** HeroUI field adapters move into `@stackra/ui` and the renderer packages. They do not live in the apps.
3. **Next.js is rejected (B16).** Its catalog entry, its scaffold template and the `app-next` app kind are removed. The web stack is Vite with
   React Router 7. Server rendering uses React Router 7 framework mode.
4. **Revival.** Never. Next.js changes status only by a new ADR (owner answer, 2026-10-20).
5. **Free packages (L579).** Free packages never depend on Pro components.
6. **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-next` changes 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 gains `next`, 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](/adr/0056-heroui-v3-pro-on-web-share-everything-but-components). Amends: [0055](/adr/0055-forms-react-hook-form-zod-heroui-adapters).
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).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.