How growilabs/growi works
GROWI is team collaboration and documentation software centered on hierarchical Markdown pages. The main user workflow is to find or open a page, view or edit it, and collaborate on edits; the README also documents search, authentication/SSO, integrations, and pluggability. The tree supports distinct page, search, editor, administration, and vault subsystems, but the excerpts do not establish most of their runtime wiring, so those links are intentionally omitted. Vault links shown are limited to calls visible in the sampled sources.
Main entry points: storage-stats-controller.ts Storage stats endpoint · vault-manager-client.ts Vault manager client · keyword-manager.ts Search keywords · PageEditorModeManager.tsx Editor mode
Components 24
Pages and collaboration
- Hierarchical pages
apps/app/src/client/components - Editor mode
apps/app/src/client/components/Navbar/PageEditorModeManager.tsx - Live collaboration
apps/app/src/features/collaborative-editor - Attachments
apps/app/src/server/service/file-uploader/local-storage-path.ts
Search and navigation
- Search keywords
apps/app/src/states/search/keyword-manager.ts - Search service
apps/app/src/server/service/search - AI path suggestions
apps/app/src/features/ai-tools/suggest-path/server/services/engines/agentic-engine.ts
Identity and integrations
- Authentication and SSO
apps/app/src/client/components/Admin/Security - Slack integration
apps/app/src/client/components/Admin/SlackIntegration - Plugin ecosystem
apps/app
Administration
- Administration
apps/app/src/client/components/Admin - Audit logs
apps/app/src/client/components/Admin/AuditLog - Notifications
apps/app/src/client/components/InAppNotification
Vault storage
- Vault manager client
apps/app/src/features/growi-vault/server/services/vault-manager-client.ts - Vault manager
apps/growi-vault-manager/src/controllers - Storage stats endpoint
apps/growi-vault-manager/src/controllers/storage-stats-controller.ts - Git repository storage
apps/growi-vault-manager/src/services/vault-repo-storage.ts - Storage stats contract
packages/core/src/interfaces/vault/vault-storage-stats.ts
Other components
- GROWI user
- MongoDB
- Bare Git repository
- Git client
- Mastra agent platform
- Slack / Mattermost
Connections 19
- GROWI user → Hierarchical pages: opens pages
- GROWI user → Editor mode: chooses mode
- Editor mode → Live collaboration: reads collaboration state
- GROWI user → Search keywords: enters query
- Search keywords → Search keywords: syncs URL
- GROWI user → AI path suggestions: requests suggestions
- AI path suggestions → Mastra agent platform: requests generation
- GROWI user → Authentication and SSO: authenticates
- GROWI user → Administration: configures instance
- GROWI user → Slack integration: configures integration
- Slack integration → Slack / Mattermost: integrates
- Vault manager client → Vault manager: sends requests
- Vault manager client → Storage stats endpoint: fetches stats
- Storage stats endpoint → Git repository storage: resolves repo path
- Git repository storage → Bare Git repository: reads and writes
- Storage stats endpoint → Git client: counts objects
- Storage stats endpoint → MongoDB: aggregates and counts
- Vault manager client → Storage stats contract: returns typed stats
- Storage stats endpoint → Storage stats contract: returns stats shape