Skip to content

v0.3.0 — Initial public release

Choose a tag to compare

@tortuvshin tortuvshin released this 11 Jun 13:48

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 build

Drop 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:

  • ComponentsHero, ItemCard (blueprint-aware), RefinePanel, SmartLensTabs, ScoreBars, Icon, WhyThisExists, plus lens / pagination / chip primitives.
  • LayoutsBaseLayout (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-wide class for wider landing-page sections.
  • Default template — pages (homepage, directory, detail, about, submit, sitemap), Tailwind config, astro.config.mjs, a data/ placeholder, and .github/ workflows. No business logic — all filtering, sorting, and scoring lives in core / 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 Resource union, 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/astro today.

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.mjs

A 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.mjs

Why 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 publish rewrites workspace:* 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/ rewrites workspace:* deps only at publish time, not at scaffold time.
  • Starlight's reset and utility styles are imported via a resolved node_modules path, removing the fragile relative lookup that broke on first install.
  • ItemCard, RefinePanel, Header, and SectionHeader share 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.yml runs pnpm audit weekly 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-space

For new spaces, choose:

  • Frameworkastro (V1 supported today), svelte (in development), nextjs (post-V1).
  • Deploy targetvercel, netlify, cloudflare, or github-pages.
  • Blueprintproject-directory, resource-hub, or ecosystem-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.md for the full policy.
  • Want to send a PR? Read CONTRIBUTING.md first. It covers the dev setup, coding conventions, and the pnpm test:scaffold gate that catches the "did the tarball rewrite workspace:*?" 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.