@geenius/docs
v0.17.0
Published
Geenius Docs — Provider-based documentation primitives and Storybook review apps for React, SolidJS, and Convex.
Maintainers
Readme
@geenius/docs
In-app documentation engine for Geenius products: docs index, MDX page rendering, search, table of contents, breadcrumbs, version selector, admin page shells, and content-source providers.
This support pass validates the scoped launch run: react, react-css, solidjs, solidjs-css, react-native, and the four DB providers convex, neon, cloudflareKV, and memory. Deferred web library variants are intentionally absent from the package export map until their launch pass.
Commercial software. See LICENSE. PRD:
.docs/PRDS/packages/PACKAGE_DOCS_PRD.md· Package docs:.docs/DOCS/PACKAGES/DOCS.md
Install
pnpm add @geenius/docsAdd the framework peers you actually consume:
pnpm add react react-dom # for /react and /react-css
pnpm add solid-js # for /solidjs and /solidjs-css
pnpm add convex # for /convex
pnpm add @neondatabase/serverless # for /neonImport surface (V2)
The root @geenius/docs is the only entry for shared types, errors, and utilities. Framework subpaths expose runtime code only.
// Shared (framework-agnostic)
import {
configureDocs,
extractToc,
searchDocs,
buildBreadcrumbs,
DocsProviderError,
AstroDocsProvider,
InternalDocsProvider,
} from '@geenius/docs'
import type { DocPage, DocSection, SearchResult, TocItem } from '@geenius/docs'
// React (Tailwind + Geenius UI)
import { DocsProvider, DocsLayout, DocPage, useDocs, useDocSearch } from '@geenius/docs/react'
// React with vanilla CSS
import '@geenius/docs/react-css/styles.css'
import { DocsProvider as DocsProviderCss, DocsLayout as DocsLayoutCss } from '@geenius/docs/react-css'
// SolidJS
import { DocsProvider as SolidDocs, createDocs } from '@geenius/docs/solidjs'
import '@geenius/docs/solidjs-css/styles.css'
// React Native
import { DocsProvider as NativeDocsProvider, DocsLayout as NativeDocsLayout } from '@geenius/docs/react-native'
// DB providers
import { docsTables, listSections, getFullTree, createConvexDocsProvider } from '@geenius/docs/convex'
import { createNeonDocsRepository } from '@geenius/docs/neon'
import { createCloudflareKVDocsProvider } from '@geenius/docs/cloudflareKV'
import { createMemoryDocsProvider } from '@geenius/docs/memory'No
./sharedor./shared/providerspublic subpaths are exported. Provider adapters live on the root@geenius/docsexport.
Quickstart
import { useCallback } from 'react'
import { buildDocsIndex, searchDocs } from '@geenius/docs'
import { DocsProvider, DocsLayout, DocPage, useDocs, useDocSearch } from '@geenius/docs/react'
import type { DocPage as DocPageT, DocSection, SearchResult } from '@geenius/docs'
const tree: (DocSection & { pages: DocPageT[]; pageCount: number })[] = [
{
id: 'getting-started',
title: 'Getting Started',
slug: 'getting-started',
order: 0,
access: 'public',
children: [],
pageCount: 1,
pages: [
{
id: 'intro',
title: 'Introduction',
slug: 'introduction',
content: '# Introduction\n\nWelcome to Geenius Docs.',
sectionId: 'getting-started',
order: 0,
author: { name: 'Mehdi Nabhani' },
access: 'public',
tags: ['overview'],
status: 'published',
createdAt: '2026-04-12T09:00:00.000Z',
updatedAt: '2026-04-12T09:00:00.000Z',
wordCount: 120,
readingTime: 1,
viewCount: 42,
},
],
},
]
export function DocsExample(): React.JSX.Element {
const docs = useDocs(tree, { siteName: 'Geenius Docs' })
const searchDocsForQuery = useCallback(
(query: string): SearchResult[] => {
const index = buildDocsIndex(docs.flatPages, docs.sections)
return searchDocs(query, index)
},
[docs.flatPages, docs.sections],
)
const search = useDocSearch(searchDocsForQuery)
return (
<DocsProvider docs={docs} search={search}>
<DocsLayout
sections={docs.sections}
currentPageId={docs.currentPage?.id}
onNavigate={(page) => docs.setPage(page)}
>
{docs.currentPage ? <DocPage page={docs.currentPage} /> : null}
</DocsLayout>
</DocsProvider>
)
}Variant matrix
| Axis | Members | Current run status |
| ---- | ------- | ------------------ |
| Validated UI variants | react, react-css, solidjs, solidjs-css, react-native | In scope for build, type-check, Storybook, and tests |
| Deferred UI variants | react-shadcn, react-mui, react-ant, react-chakra, react-mantine, react-heroui, react-daisyui, solidjs-kobalte, solidjs-ark, solidjs-solidui | Not exported until their launch pass builds and verifies distributable artifacts |
| DB providers | convex, neon, cloudflareKV, memory | In scope for build, type-check, and tests |
| Post-launch providers | supabase, mongodb | Do not scaffold in this run |
Storybook review apps
The in-scope stock Storybook v10 apps live under apps/storybook-react/, apps/storybook-react-css/, apps/storybook-solidjs/, apps/storybook-solidjs-css/, and apps/storybook-react-native/. Run any app with:
pnpm --filter @geenius/docs-storybook-react dev
pnpm --filter @geenius/docs-storybook-react-css dev
pnpm --filter @geenius/docs-storybook-solidjs dev
pnpm --filter @geenius/docs-storybook-solidjs-css dev
pnpm --filter @geenius/docs-storybook-react-native devDeferred web library Storybook apps remain out of the current build and test matrix.
Quality gates
variants.json is the source of truth for variants. @geenius/release-toolkit filters deferred variants by default; set OMEGA_INCLUDE_OUT_OF_SCOPE=1 for a planned re-inclusion.
pnpm lint
pnpm lint:apps
pnpm lint:pub
pnpm type-check
pnpm test
pnpm test:db:conformance
pnpm test:db:migrations
pnpm test:storybook:build
pnpm test:storybook
pnpm test:e2e
pnpm test:a11y
pnpm test:visual
pnpm test:perf
pnpm test:coverage
pnpm test:diff-coverage
pnpm size
pnpm audit:supply-chain
pnpm test:license
pnpm test:gauntlet
pnpm test:allMutation testing (slower scheduled gate):
pnpm test:mutationLicense
Commercial software. See LICENSE.
