v0.3.0 — Initial public release
Grove is an open-source framework for growing useful community knowledge. Collect, structure, maintain, and improve the projects, tools, resources, and knowledge a community depends on — over years, not weeks. Every artifact is a file. Every space is forkable, diffable, and PR-friendly.
This is the first version of Grove that is ready to be picked up by a community. A real production space — Open Apps — already runs on it.
Try it in 60 seconds
pnpm dlx @grove-dev/cli@latest new my-space
cd my-space
pnpm install
pnpm exec grove import https://github.com/avelino/awesome-go
pnpm exec grove sync github
pnpm exec grove validate
pnpm exec grove generate
pnpm exec grove sitemap
pnpm exec grove llms
pnpm buildDrop the dist/ directory on Vercel, Netlify, Cloudflare Pages, or GitHub Pages.
What's in v0.3.0
Three V1 blueprints
Grove v0.3.0 ships a discriminated Resource union covering three fixed blueprints. The kind field on every record is checked against the blueprint in grove.config.ts at validation time.
| Blueprint | kind |
For |
|---|---|---|
project-directory |
project |
Apps, packages, tools, services, repositories, internal systems. GitHub metadata optional. |
resource-hub |
resource |
Guides, comparisons, explainers, links, knowledge collections. |
ecosystem-map |
entity |
Organizations, products, communities, schools, ecosystem actors. |
resource-hub and ecosystem-map are MVP in v0.3.0; full implementations ship alongside the Wave 2 framework-agnostic UI rebuild.
Six packages, one lockstep version
| Package | Role | Status |
|---|---|---|
@grove-dev/core |
Headless engine: schema, config, importers, validators, taxonomy, sync, build | Stable |
@grove-dev/ui |
Framework-agnostic UI primitives (filter, sort, score, slug) | Roadmap (re-export) |
@grove-dev/cli |
new / import / validate / generate / sync github / sitemap / llms / build / dev / workflows |
Stable |
@grove-dev/astro |
Astro adapter — components, layouts, tokens, default template | V1 supported |
@grove-dev/svelte |
SvelteKit adapter | In development |
@grove-dev/nextjs |
Next.js adapter | Post-V1 |
The grove CLI
| Command | What it does |
|---|---|
grove new <name> |
Interactive scaffold — project name, framework, deploy target, blueprint |
grove import <url> |
Turn a GitHub awesome-list README into one YAML record per resource |
grove analyze |
Refresh GitHub activity / release / archive signals |
grove validate |
Strict per-record validation with detailed issue reporting |
grove generate |
Process data/records/*.yml into the buildable tree |
grove sync github |
Same as analyze |
grove cleanup stale |
Archive dead records |
grove sitemap |
Emit sitemap.xml + robots.txt |
grove llms |
Emit llms.txt + llms-full.txt for AI assistants |
grove build |
Framework-aware build (astro build today) |
grove dev |
Framework-aware dev server |
grove workflows |
Sync the GitHub Actions templates into the current space |
The Astro adapter — the V1 renderer
@grove-dev/astro is the supported renderer in v0.3.0. It ships:
- Components —
Hero,ItemCard(blueprint-aware),RefinePanel,SmartLensTabs,ScoreBars,Icon,WhyThisExists, plus lens / pagination / chip primitives. - Layouts —
BaseLayout(Starlight-integrated shell with SEO and theme toggle),SectionHeader,Container,Footer,Header,Seo. - Design tokens — Grove color, type, spacing, and motion tokens aligned to Starlight. Optional
g-container-wideclass for wider landing-page sections. - Default template — pages (homepage, directory, detail, about, submit, sitemap), Tailwind config,
astro.config.mjs, adata/placeholder, and.github/workflows. No business logic — all filtering, sorting, and scoring lives incore/ui.
The Starlight docs site
A polished docs site at /docs, deployed to Cloudflare Pages. It covers:
- Vision — why Grove exists and where it's going.
- Architecture — the core / ui / adapter / template split, the discriminated
Resourceunion, the three blueprints. - Three blueprint guides — one per
kind. - Six workflow guides — for new space maintainers.
- Philosophy and Maintainers — reframing Grove as a community knowledge framework, not an OSS directory tool.
- Security policy, Release operations, Support — the operational surface.
Spaces built with Grove
- Open Apps — production-ready open-source applications. The reference implementation running on
@grove-dev/astrotoday.
If you fork Grove to launch a new space, send a PR to add it to this list — we're happy to link to it.
Repository layout
grove/
├── packages/
│ ├── core/ # Headless engine: schema, config, importers, validators, sitemap, llms.txt
│ ├── ui/ # Framework-agnostic UI primitives — roadmap-only in v0.3.0
│ ├── cli/ # new, import, validate, generate, sync, cleanup, workflows, build, dev
│ ├── astro/ # Astro adapter (V1 supported)
│ ├── nextjs/ # Next.js adapter — skeleton only
│ └── svelte/ # SvelteKit adapter — in development
├── examples/
│ └── openapps/ # Real Grove-powered space (the reference implementation)
├── docs/ # Framework documentation site (Starlight)
└── scripts/ # release.mjs, test-scaffold.mjsA scaffolded space has only the data, branding, and .github/ workflows it needs:
my-space/
├── grove.config.ts # name, tagline, blueprint, paths
├── data/
│ ├── records/ # one YAML per resource
│ ├── taxonomy/ # categories, topics, tags
│ ├── generated/ # build output (gitignored)
│ ├── health.yml # optional: maintenance signals
│ └── decisions.yml # visibility decisions
├── content/ # methodology, about, guides
├── public/ # logo, OG image, custom assets
├── .github/ # workflows + issue templates
└── astro.config.mjsWhy Grove
Communities carry knowledge in many places: awesome lists on GitHub, READMEs, spreadsheets, internal docs, Notion pages, Slack threads. They all decay. Links rot, projects go stale, descriptions drift, contributions stop landing.
Grove treats community knowledge as something to grow, maintain, prune, and improve — not as a static list to publish and forget.
- Collect — import from Markdown awesome lists, YAML, or hand-authored records.
- Structure — categories, topics, tags, maintainers, organizations.
- Maintain — optional signals (GitHub activity, releases, archive state) flag what needs review.
- Improve — human curators make the final call via plain, reviewable data files.
- Prune — visibility decisions (
highlight/keep/needs_review/hide/remove/historical) keep the space healthy over years.
No database. No CMS. No admin dashboard. The whole space is plain text, in your repo.
What's fixed at v0.3.0
pnpm publishrewritesworkspace:*deps to the resolved version in the tarball. The release script no longer does this manually, eliminating the "404 on a not-yet-published workspace package" install failure.templates/default/rewritesworkspace:*deps only at publish time, not at scaffold time.- Starlight's reset and utility styles are imported via a resolved
node_modulespath, removing the fragile relative lookup that broke on first install. ItemCard,RefinePanel,Header, andSectionHeadershare a consistent design-token surface.- Repository URL validation accepts
git+https,ssh://git@, and trailing-slash variants.
Security
- Coordinated disclosure — see
SECURITY.md. Email vulnerability reports to toroo.byamba@gmail.com. Do not file a public issue. - Weekly audit —
.github/workflows/audit.ymlrunspnpm auditweekly and opens (or updates) a tracking issue on every failure.
Upgrade notes
There is no upgrade path because v0.3.0 is the initial public release. Prior 0.1.0 / 0.2.x builds were internal iterations and are not published to npm.
If you have been building against the pre-release CLI, switch to the public scaffolder:
pnpm dlx @grove-dev/cli@latest new my-spaceFor new spaces, choose:
- Framework —
astro(V1 supported today),svelte(in development),nextjs(post-V1). - Deploy target —
vercel,netlify,cloudflare, orgithub-pages. - Blueprint —
project-directory,resource-hub, orecosystem-map.
Contributing
We welcome issues, PRs, and discussions.
- Found a bug? Open a bug report.
- Want a feature? Open a feature request.
- Found a security issue? Email toroo.byamba@gmail.com — do not file a public issue. See
SECURITY.mdfor the full policy. - Want to send a PR? Read
CONTRIBUTING.mdfirst. It covers the dev setup, coding conventions, and thepnpm test:scaffoldgate that catches the "did the tarball rewriteworkspace:*?" regression class.
All community spaces follow the CODE_OF_CONDUCT.md. Be kind, assume good faith.
Maintainers
Grove is built and maintained by contributors. See CONTRIBUTING.md for the list of people who have submitted PRs.
License
Grove is released under the MIT License — see LICENSE.