ConvexForge is an open-source toolkit for creating modular, reusable features in Convex applications. It provides a CLI tool and component library similar to shadcn/ui but focused on full-stack features including database schema, backend functions, and frontend components.
ConvexForge is a toolkit for creating modular, reusable features in Convex applications, providing a CLI tool and component library similar to shadcn/ui but focused on full-stack features.
convexforge/
├── packages/
│ ├── cli/ # The CLI tool (convexforge)
│ │ ├── src/
│ │ │ ├── commands/ # CLI commands (init, add, remove)
│ │ │ ├── utils/ # Helper functions
│ │ │ ├── templates/ # Base templates for different features
│ │ │ └── config/ # Configuration handling
│ │ └── package.json
│ │
│ ├── core/ # Core utilities and shared code
│ │ ├── src/
│ │ │ ├── types/ # Shared TypeScript types
│ │ │ ├── validators/ # Schema validators
│ │ │ └── helpers/ # Shared helper functions
│ │ └── package.json
│ │
│ └── create-convexforge/ # Project creation tool (optional)
│ └── package.json
│
├── features/ # The actual features library
│ ├── auth/ # Example feature
│ │ ├── convex/ # Convex backend code
│ │ │ ├── schema.ts
│ │ │ └── auth.ts
│ │ ├── components/ # React components
│ │ ├── hooks/ # React hooks
│ │ ├── styles/ # (Optional) CSS/styles
│ │ └── config.json # Feature configuration
│ │
│ └── [other-features]/ # Other features follow same structure
│
├── docs/ # Documentation
│ ├── features/ # Feature documentation
│ ├── guides/ # How-to guides
│ └── api/ # API documentation
│
├── examples/ # Example projects
│ ├── next-app/
│ └── vite-app/
│
├── scripts/ # Build and maintenance scripts
│
├── website/ # Documentation website
│ ├── app/
│ └── public/
│
├── tests/ # Test suites
│ ├── e2e/
│ └── unit/
│
└── package.json # Root package.json for workspace
A feature in ConvexForge consists of:
- Database Schema
- Convex Functions (queries/mutations)
- React Components
- React Hooks
- Configuration
- Documentation
- Installation via CLI
- Configuration
- Integration
- Customization
- Updates
- How features can depend on each other
- Dependency resolution
- Version management
- Conflict resolution
-
init: Project initialization
- Analyzes existing project
- Sets up configuration
- Installs dependencies
-
add: Feature installation
- Downloads feature
- Installs dependencies
- Adds necessary code
- Updates configuration
-
remove: Feature removal
- Removes feature code
- Cleans up dependencies
- Updates configuration
- Project-level configuration
- Feature-specific configuration
- Environment variables
- Type definitions
- Feature Structure
- Required Files
- Testing Requirements
- Documentation Requirements
- Code Style Guide
- Pull Request Process
- Testing Requirements
- Documentation Requirements
- CLI Implementation
- Feature Registry
- Dependency Management
- Code Generation
- Configuration Management
- Next.js Integration
- Convex Integration
- Database Schema Management
- Component Integration
- Unit Tests
- Integration Tests
- E2E Tests
- Test Utilities
- Feature Documentation
- API Reference
- Guides
- Examples
- Website
- Package Publishing
- Version Management
- Release Process
- Update Management
- Issue Guidelines
- Discussion Forums
- Support Channels
- Community Guidelines
- Planned Features
- Enhancement Proposals
- Community Feedback Integration
- Version Planning