Contributing to Quorum
February 8, 2026 ยท View on GitHub
Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
Getting Started
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/quorum-sql.git cd quorum-sql - Install dependencies:
pnpm install - Start development server:
pnpm dev
Development Setup
Docker Setup
# Start database and API server
docker compose up -d db server
# Start frontend
pnpm dev
After services are running, open the setup wizard at:
Database Migrations
When making database changes:
- Historical migrations have been squashed into a single baseline:
supabase/migrations/00000000000000_squashed_baseline.sql - New migrations must be created after this baseline migration
- Never modify the squashed baseline file directly
- See
supabase/README.mdfor full database workflow and migration guidance
# Create a new migration
supabase migration new description_of_change
# Apply migrations locally
supabase db reset
# Lint for security issues
supabase db lint
Testing
Run tests and checks before opening a pull request:
# Playwright E2E tests
pnpm test:e2e
# Vitest unit tests
pnpm test:unit
# TypeScript checks
pnpm typecheck
pnpm typecheck:server
# Linting
pnpm lint
pnpm lint:server
Submitting Changes
Pull Request Process
-
Create a feature branch:
git checkout -b feature/your-feature-name -
Make your changes following the coding standards below
-
Test your changes:
pnpm build pnpm lint -
Commit with a clear message:
git commit -m "feat: add your change summary" -
Push to your fork:
git push origin feature/your-feature-name -
Open a Pull Request against
main
Commit Message Format
Use Conventional Commits with one of these types:
feat: add user profile editing
fix: correct team invitation email validation
chore: update tooling config
docs: add API documentation
test: add coverage for auth middleware
refactor: split query editor state logic
perf: optimize list query pagination
ci: cache pnpm store in workflow
style: format settings panel component
Coding Standards
TypeScript
- Use TypeScript for all new code
- Enable strict mode
- Prefer interfaces over types for object shapes
- Use explicit return types for functions
React
- Use functional components with hooks
- Keep components focused and small
- Use the existing UI components from
src/components/ui/ - Follow the existing folder structure
CSS/Styling
- Use Tailwind CSS classes
- Follow the existing color scheme and spacing
- Ensure responsive design (mobile-first)
Database
- All tables must have Row-Level Security (RLS) enabled
- Create migrations for schema changes
- Document new tables/columns in schema.sql
- Run
supabase db lintbefore submitting
What to Contribute
Good First Issues
Look for issues labeled good first issue - these are great for newcomers.
Feature Ideas
- UI/UX improvements
- Performance optimizations
- Additional authentication providers
- Query syntax highlighting improvements
- Export/import functionality
Bug Reports
When reporting bugs, include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Browser/OS information
- Console errors (if any)
Code of Conduct
- Be respectful and inclusive
- Welcome newcomers
- Provide constructive feedback
- Focus on the code, not the person
Questions?
- Open a GitHub Issue
- Check existing issues before creating new ones
Thank you for contributing!