Skip to content
Resource
DocsTourSlicesBest PracticeAgentsInstall

Command Palette

Search for a command to run...

New
  • Changelog

Changelog

Release notes

Changelog

What changed in each rr release — page 24 of 25. Full prose history in CHANGELOG.md.

MAY192026
FeatureAU-waveMay 19, 2026

Notion Page Clone OS — full website template using notion-blocks

First end-to-end website template built on the notion-blocks bundle. Notion Page Clone OS = block-based notes-app starter with admin CRUD + public landing. Snippets entity (kind: equation/code/text/grid) renders live on the public landing via the four bundled primitives (EquationBlock / CodeBlock / NotifyMePopover / SelectableCell). Pure-localStorage state, zero convex required — drop-in for anyone shipping a writing surface or doc site. Wires the same _shared/{pages,landing,crud,ui} primitives the other 7 templates use so consistency holds across the OS family.

Templates touched

  • notion-page-clone-os — NEW website template (admin + public)

Slices touched

  • notion-blocks — first downstream consumer (template usedBy)

Site

  • /preview/notion-page-clone-os/public — homepage renders snippets via notion-blocks primitives (equations, code, NotifyMe bell)
  • /preview/notion-page-clone-os/admin — dashboard + /snippets CrudListView for managing the public content
  • lib/content/layouts.ts — new SliceEntry for notion-page-clone-os, with pullPaths cascading notion-blocks + 4 peer slices
MAY192026
ImprovementAT-waveMay 19, 2026

Docs catalog sidebar now uses shadcn Sidebar primitives

User principle: rr is an extension of shadcn, not a replacement. The website-template ADMIN sidebars already used shadcn Sidebar primitives (Sidebar / SidebarMenuButton / SidebarMenuSub / SidebarMenuBadge wrapped in SidebarProvider) — but the rr docs CATALOG sidebar (the left nav on /slices /layouts /templates /changelog etc.) was still a hand-rolled <nav> with custom buttons + chevrons. AT refactors it to shadcn primitives so collapse tooltips, mobile drawer, and persistent state inherit from the same canon as the admin shells. We extend shadcn — we don't fight it.

Site

  • components/site/docs-sidebar/nav-parts.tsx: SectionGroup → SidebarGroup + Collapsible + SidebarGroupLabel; BranchItem → SidebarMenuItem + SidebarMenuButton + SidebarMenuSub; leaf links → SidebarMenuButton / SidebarMenuSubButton
  • components/site/docs-sidebar.tsx: wrapped in SidebarProvider so SidebarMenuButton has its useSidebar() context — overrides flex / min-h-svh classes so the provider stays flush inside ThreeColumnLayoutAdvanced's left column
  • Visual hierarchy preserved (3-tier: section / branch / leaf) — chevron rotation, active badge, count pill all carry over via shadcn data-state

Templates touched (no change — already on shadcn)

  • saas-marketing-os — admin sidebar already shadcn-based (AdminShell)
  • personal-brand-os — admin sidebar already shadcn-based
  • agency-studio-os — admin sidebar already shadcn-based
  • konsultan-os — admin sidebar already shadcn-based
  • kreator-studio-os — admin sidebar already shadcn-based
  • riset-kit — admin sidebar already shadcn-based
  • wirausaha-os — admin sidebar already shadcn-based
MAY192026
ImprovementAS-waveMay 19, 2026

Consolidate notion editor primitives into single bundle

Four tiny notion-lifted primitives (equation, code-block, notifications, database-cell-selection) collapsed into one catalog entry: notion-blocks. Each was ~5 files / one component — splitting them four ways cluttered the catalog without giving consumers narrower install ergonomics. notion-blocks is a peer-bundle: re-exports the four slices' public API behind one import path. Per-block narrow imports still work (the peer slices stay registered + lifted). Updated equation + code-block index.ts to also re-export their Props types for ergonomic typing.

Slices touched

  • notion-blocks — NEW peer-bundle. Catalog entry replaces 4 sub-entries
  • equation — added EquationBlockProps to barrel exports
  • code-block — added CodeBlockProps to barrel exports

Site

  • /preview/slices/notion-blocks — single page demos all 4 primitives (KaTeX formulas, TS/Bash code samples, NotifyMe bells, drag-fill table)
  • Removed /preview/slices/{equation,notifications,code-block,database-cell-selection} — bundle is canonical surface
  • Removed 4 individual SliceEntry rows from lib/content/slices.ts
MAY192026
ImprovementAR-waveMay 19, 2026

Skeleton fallbacks + cacheComponents-friendly slice file I/O

After AP killed the client-side reset churn, server-side nav still felt heavy because cacheComponents: true treats async server components as dynamic by default — every navigation re-ran readSliceFiles on the filesystem. AR adds Next 16 `use cache` directives to the file readers and per-route loading.tsx skeletons that stream instantly on click. /slices/[slug] now reports as Partial Prerender with 15m revalidate; nav between detail pages feels app-router-fast.

Site

  • lib/slice-files.ts: "use cache" on readSliceFiles + readPathsFiles — cross-nav cache, not just intra-render dedupe
  • components/site/docs-loading-skeleton.tsx NEW — shared title-strip / tabs / preview-iframe skeleton
  • app/(docs)/loading.tsx — catch-all skeleton for plain docs routes
  • app/(docs)/slices/[slug]/loading.tsx — tab + iframe skeleton
  • app/(docs)/layouts/[slug]/loading.tsx — tab + iframe skeleton
  • RecentlyUpdatedBadge → "use client" so Date.now() runs in the browser (cacheComponents blocked the previous server read)
MAY192026
FeatureAQ-waveMay 19, 2026

Notion editor primitives lifted via new rr-sync pipeline

Four pure-UI primitives lifted from notion-page-clone using a new hash-based, idempotent sync pipeline. The pipeline auto-derives import rewrites from both repos' tsconfigs, follows transitive shared-dep graphs, cross-checks npm packages against rr's package.json, and ships a registry (rr-sync.json) so subsequent updates to the same slice in nosion can re-propagate with one command. Each lifted slice has an interactive preview at /preview/slices/<slug>.

Slices touched

  • equation — KaTeX-rendered LaTeX block, click-pencil to edit
  • notifications — per-page subscription toggle (localStorage-backed NotifyMePopover)
  • code-block — highlight.js syntax block with language picker + copy
  • database-cell-selection — drag-fill + SelectableCell primitives for grid UIs

Site

  • rr-sync pipeline in notion-page-clone: pathMap registry + tsconfig alias auto-derivation + transitive-import follower + sibling-barrel resolver + npm-deps cross-check + skipFiles wildcards + per-file hash drift detection
  • Pre-push hook adds `npm run build` to catch Next-only errors (cacheComponents conflicts, Turbopack loader issues) that tsc misses
  • next.config: transpilePackages: ["rahman-shared"] added — required for slices using rewritten @/shared/lib/utils → rahman-shared/lib/utils imports
MAY192026
FixAP-waveMay 19, 2026

Stop full preview reset on every sidebar/layout nav

Regression from AM-wave: /slices/[slug] started registering a FeatureManifest to share the docs-shell tabs with /layouts/[slug]. Two long-standing rough edges in feature-context surfaced — useFeatureManifest's unmount cleanup flashed null on every nav (firing the provider's effect twice), and the effect reset activeTab / previewView / previewZoom on every manifest object identity change. Result: clicking any sidebar link rebuilt the iframe, dropped the user's tab choice, and felt like a fresh fetch. AP threads a stable manifest.id (slug-based) through buildPreviewManifest, gates the reset on id change via a ref, preserves activeTab across slugs when the id exists in the new tabs, drops the unmount cleanup, and React.cache-wraps readSliceFiles.

Site

  • FeatureManifest gained `id` field; buildPreviewManifest derives from slug
  • feature-context useEffect is now id-gated — same-id re-renders don't reset state
  • useFeatureManifest cleanup dropped — no more null-flash between transitions
  • lib/slice-files: readSliceFiles wrapped with React.cache for intra-render dedupe
  • components/site/feature-context-effect.ts NEW — extracted manifest-effect helper to keep feature-context.tsx under 200 LOC
MAY192026
FeatureAO-waveMay 19, 2026

Notion editor primitives lifted via new rr-sync pipeline

Four pure-UI primitives lifted from notion-page-clone using a new hash-based, idempotent sync pipeline. The pipeline auto-derives import rewrites from both repos' tsconfigs, follows transitive shared-dep graphs, cross-checks npm packages against rr's package.json, and ships a registry (rr-sync.json) so subsequent updates to the same slice in nosion can re-propagate with one command. Each lifted slice has an interactive preview at /preview/slices/<slug>.

Slices touched

  • equation — KaTeX-rendered LaTeX block, click-pencil to edit
  • notifications — per-page subscription toggle (localStorage-backed NotifyMePopover)
  • code-block — highlight.js syntax block with language picker + copy
  • database-cell-selection — drag-fill + SelectableCell primitives for grid UIs

Site

  • rr-sync pipeline in notion-page-clone: pathMap registry + tsconfig alias auto-derivation + transitive-import follower + sibling-barrel resolver + npm-deps cross-check + skipFiles wildcards + per-file hash drift detection
  • Pre-push hook adds `npm run build` to catch Next-only errors (cacheComponents conflicts, Turbopack loader issues) that tsc misses
  • next.config: transpilePackages: ["rahman-shared"] added — required for slices using rewritten @/shared/lib/utils → rahman-shared/lib/utils imports
MAY192026
ImprovementAN-waveMay 19, 2026

Changelog clickable + live-preview SSOT + landing editor polish

AM-wave unified the docs-shell tabs for /slices and /layouts behind a single buildPreviewManifest helper. AL-wave fixed admin landing editor: bgImage scrim, fg image inside Hero with aspect-ratio dropdown, 1-based reorder arrows. AK-E published landing-sections as installable slice. AN-wave: changelog bullets now link back to the slice/template they reference.

Slices touched

  • landing-sections — promoted to distributable slice
  • changelog-feed — bullets now accept { text, slug, kind } for back-links

Templates touched (admin landing editor)

  • saas-marketing-os
  • personal-brand-os
  • agency-studio-os
  • konsultan-os
  • kreator-studio-os
  • riset-kit
  • wirausaha-os

Site

  • VersionWatcher toasts when a redeploy lands (rc-samata-dash pattern)
  • /slices/<slug> + /layouts/<slug> share the same Code/Public/Split/Admin tabs
MAY182026
Feature1.7.0May 18, 2026

Seven canonical UI slices + V-wave three-column

R + S + T waves shipped the missing marketing-page primitives so every template consumes one SSOT per surface. V-wave ported superspace's PanelSection compound. W-wave wired live previews. CLI 1.7.0 + MCP 1.1.0 on npm.

New slices

  • pricing-page · PricingSection with renderTierCta slot
  • feature-grid · cards / minimal / alternating / grouped layouts
  • faq-section · single / two-column / grouped + footer CTA
  • testimonials-grid · cards / quote-stack / masonry
  • blog-section · BlogListSection + BlogPostView (afterContent / extraMeta / related slots)
  • changelog-feed · timeline / cards / list
  • portfolio-section · PortfolioListSection + PortfolioDetailView with sections[]

Layout — V-wave

  • PanelSection compound (Header / Items / Footer)
  • PanelGroup / PanelMenu / PanelSeparator primitives
  • leftFooter / centerFooter / rightFooter slots on ThreeColumnLayoutAdvanced
  • Trigger ≠ Header separation rule
  • Mobile drawer header + footer slot props

Site

  • /preview/slices/<slug> for all 7 new slices
  • /preview/three-column-trio V-wave demo
  • rr site dogfood — FeaturesGrid + /stack + /changelog use canonical slices
MAY102026
Feature1.6.0May 10, 2026

Generic CRUD primitives + 25 entities migrated

<CrudListView> + <CrudFormView> + typed CrudController<T>. Replaced per-template bespoke admin tables. Every website template now has Pages CRUD with audit-templates hard-error gate.

NewerPage 24 / 25Older