Thank you for your interest in contributing to Grapevine! We welcome contributions from the community.
By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.
- Check existing issues before creating a new one
- Use clear, descriptive titles
- Include steps to reproduce bugs
- Provide relevant context (OS, Node version, etc.)
-
Fork and clone the repository
git clone https://github.com/PinataCloud/grapevine.git cd grapevine -
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clear, concise commit messages
- Follow existing code style
- Update documentation as needed
-
Push and open a Pull Request
git push origin feature/your-feature-name
Follow conventional commit format:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changeschore:- Maintenance tasks
- Use TypeScript for all new code
- Follow the existing code formatting (Prettier configured)
- Use meaningful variable and function names
grapevine/
├── grapevine-api/ # API server
├── grapevine-frontend/ # Next.js frontend
API Setup:
# Install dependencies
pnpm install
# Setup database
createdb grapevine
cd grapevine-api
psql grapevine < schema.sql
# Configure environment
cp .env.example .env
# Edit .env with your settings
# Start API server
pnpm run devFrontend Setup:
cd grapevine-frontend
# Configure environment
cp .env.example .env
# Edit .env with your API URL
# Start frontend
pnpm run dev- Open an issue for questions
- Check existing documentation
- Join the Pinata discord
By contributing, you agree that your contributions will be licensed under the MIT License.