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: file a Request New Release Content issue and a GitHub Action runs Nanocoder against a templated prompt to generate a complete content pack for that 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.
On top of that, a content calendar turns "what's been generated" into "what to post, and when". An automated planner schedules six X posts per weekday, at least one deep-dive article a week, and new-release announcements as they land β all viewable as a month/week calendar at /calendar, with distribute-tracking per post. See docs/calendar.md.
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 content or a change. Issue templates trigger an agent that does the work and opens a PR for review:
-
Request new release content β generate a full pack for a new product release. Pick the product (dropdown, auto-synced from
config/products.json), enter the version (tag without thevprefix, e.g.1.28.0), and optionally add an angle to emphasise. The agent reads the product's GitHub release, generates the pack, validates it, and opens a PR that auto-closes the issue on merge. If the first attempt doesn't land cleanly, edit the issue body and comment/retryto re-run. -
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, file a Request New Release Content issue β the release-request.yaml workflow runs the agent and opens a PR. 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β requesting release packs, reading failed-validation PRs, recovering from broken state.docs/calendar.mdβ the content calendar: scheduling rules, the planner, the weekly X batch, and how it runs.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.