This guide provides comprehensive documentation for AI coding agents working on the GROWI main application (/apps/app/). GROWI is a team collaboration wiki platform built with Next.js, Express, and MongoDB.
/apps/app/src/)Feature-based Structure (Recommended for new features)
features/{feature-name}/ - Self-contained feature modules
interfaces/ - Universal TypeScript type definitionsserver/ - Server-side logic (models, routes, services)client/ - Client-side logic (components, stores, services)utils/ - Shared utilities for this feature
Important Directories Structure
client/ - Client-side React components and utilitiesserver/ - Express.js backendcomponents/ - Universal React componentspages/ - Next.js Pages Routerstates/ - Jotai state managementstores/ - SWR-based state storesstores-universal/ - Universal SWR-based state storesstyles/ - SCSS stylesheets with modular architecturemigrations/ - MongoDB database migration scriptsinterfaces/ - Universal TypeScript type definitionsmodels/ - Universal Data model definitionsFrontend Stack
*.spec.ts, *.spec.tsx)*.integ.ts)Backend Stack
Common Commands
# Type checking only
cd apps/app && pnpm run lint:typecheck
# Run specific test file
turbo run test:vitest @apps/app -- src/path/to/test.spec.tsx
# Check migration status
cd apps/app && pnpm run dev:migrate:status
# Start REPL with app context
cd apps/app && pnpm run repl
Entry Points
server/app.ts - Handles OpenTelemetry initialization and Crowi server startuppages/_app.page.tsx - Root Next.js application component
pages/[[...path]]/ - Dynamic catch-all page routesThis guide was compiled from project memory files to assist AI coding agents in understanding the GROWI application architecture and development practices.