Built by the Nano Collective β a community collective building AI tooling not for profit, but for the community.
ContentForest is the Nano Collective's release-content cockpit: a daily GitHub Action detects new releases across NC product repos, runs Nanocoder against a templated prompt to generate a complete content pack per release (announcement channel posts plus 0β3 deep-dive drip-articles), validates the output, and opens a PR. Merged PRs deploy to a Cloudflare-Pages-hosted file viewer at contentforest.nanocollective.org.
This is an internal tool built for the Nano Collective. The repo is public for transparency; the deployed site, issue tracker, and request flows below are intended for Nano-Collective org members.
Open contentforest.nanocollective.org, browse the latest packs from the homepage, and copy the channel posts you need into your social tool of choice β there is no automated posting (by design).
You don't need to touch the repo or run anything locally to ask for a change. Two issue templates trigger an agent that does the work and opens a PR for review:
-
Request a content change β apply a targeted edit to an existing release pack. Fill in the product, version, scope (whole pack / headline channels / specific article / specific file), and the request itself. The agent applies the edit, runs the validator, and opens a PR that auto-closes the issue on merge. If the first attempt doesn't land cleanly, comment
/retryto re-run. -
Request a collective post β create or edit a collective-level pack at
content/_collective/<slug>/. Use this for posts about the Nano Collective itself rather than a product release (announcements, ecosystem updates, anything not tied to a single product version). Same shape as change-request: fill the form, the agent does the work, you get a PR.
Issues filed by non-org members are auto-closed by gate-issues.yaml β see CONTRIBUTING.md for why and how to surface your org membership if it isn't recognised.
pnpm install
pnpm dev # local UI at http://localhost:3000
pnpm fetch-refs # pull live brand + product docs into _refs/
pnpm generate --product nanocoder \ # generate a pack into content/_local/
--version 1.25.2 --test
pnpm validate --pack nanocoder/1.25.2 \ # gate locally before opening a PR
--root content/_testFor a real CI-driven generation, dispatch .github/workflows/daily-content.yaml with product=<slug> version=<v> dry_run=false. Full operator runbook in docs/runbook.md.
CONTRIBUTING.mdβ dev setup, test gate, coding standards, and the divergences from the Nano Collective playbook this repo takes.docs/runbook.mdβ dispatching runs, reading failed-validation PRs, recovering from broken state.docs/local-development.mdβ local generation workflow for prompt tuning.docs/adding-a-product.mdβ onboarding a new NC product.AGENTS.mdβ orientation for AI agents working in this repo.
- Nano Collective β the collective behind this and every other NC project.
- Nano Collective docs β the collective's shared operational reference (conventions, brand, project setup).
- GitHub organisation β every NC project, including this one.
- Discord β real-time chat with the collective.
MIT. See LICENSE.