@grove-dev/nextjs
v0.2.16
Published
Roadmap-only Next.js adapter package for Grove. No runnable template or component exports ship in V1.
Downloads
1,659
Maintainers
Readme
@grove-dev/nextjs
Next.js framework adapter for Grove.
A thin layer of React components, layouts, and design tokens, on top of the framework-agnostic @grove-dev/core and @grove-dev/ui. Includes a default templates/default/ directory that grove new --framework nextjs copies into a new project.
pnpm add @grove-dev/nextjsStatus
Roadmap only — not in V1. Grove V1 ships the Astro renderer only.
The V1 CLI refuses --framework nextjs at scaffold time.
The Next.js adapter is reserved for V1.2 once @grove-dev/core
and @grove-dev/ui (V1) are stable. See docs/roadmap.md
for the schedule.
This package currently ships a skeleton only:
src/index.ts— re-exports@grove-dev/ui(V1 primitives:filterRecords,sortRecords,paginateRecords,scoreRecords,format)src/styles.css— placeholder design tokenstemplates/default/package.json— Next.js 15 + React 19 wiring
The component library, app-router pages, and theme are still to be built. The architectural shape is locked: anything framework-specific lives in this package, anything generic stays in @grove-dev/core and @grove-dev/ui.
What it will ship (roadmap, V1.2)
src/
├── components/ # ItemCard (V1 published name), IndexRow, RecordSection,
│ # Pagination, ScoreBars, RefinePanel, Hero, …
│ # (22 V1 surface, ported from @grove-dev/astro)
├── layouts/ # BaseLayout (RSC)
├── styles.css # design tokens
└── index.ts # re-exports @grove-dev/ui
templates/
└── default/ # full Next.js starter: app/, components/, public/,
# data/, .github/, next.config.mjsUsage in a space (planned)
// app/page.tsx
import ItemCard from "@grove-dev/nextjs/components/ItemCard";
import BaseLayout from "@grove-dev/nextjs/layouts/BaseLayout";
import "@grove-dev/nextjs/styles.css";
import records from "@/data/generated/records.json";
export default function Page() {
return (
<BaseLayout title="My Grove space">
{records.map((r) => <ItemCard key={r.slug} record={r} href={`/projects/${r.slug}`} />)}
</BaseLayout>
);
}Components are imported by path. The barrel re-exports @grove-dev/ui so generic helpers (filterRecords, sortRecords, paginateRecords, scoreRecords, format, LENSES, SORT_OPTIONS) are available from the same import.
Layering
@grove-dev/nextjs is the third layer of the Grove stack:
@grove-dev/core— schemas, importers, build pipeline (headless, V1Resourceunion).@grove-dev/ui— framework-agnostic UI primitives (V1: 5 typed modules overIndexRecord).@grove-dev/nextjs← you are here — Next.js components, layouts, template.
Development
pnpm --filter @grove-dev/nextjs build
pnpm --filter @grove-dev/nextjs checkLicense
MIT
