First off, thank you for considering contributing to LibreDB Studio! It's people like you that make LibreDB Studio such a great tool.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Describe the behavior you observed and what you expected
- Include screenshots if possible
- Include your environment details (OS, browser, Node.js version)
Feature suggestions are welcome! Please provide:
- A clear and descriptive title
- A detailed description of the proposed feature
- Explain why this feature would be useful
- Include mockups or examples if applicable
- Fork the repository and create your branch from
main - Follow the coding style of the project
- Write clear commit messages
- Update documentation if needed
- Test your changes thoroughly
- Bun (recommended) or Node.js 20+
- Git
# Clone your fork
git clone https://github.com/YOUR_USERNAME/libredb-studio.git
cd libredb-studio
# Install dependencies
bun install
# Copy environment example
cp .env.example .env.local
# Start development server
bun devRequired for development:
ADMIN_PASSWORD=admin123
USER_PASSWORD=user123
JWT_SECRET=your_32_character_random_string_hereOptional (for AI features):
LLM_PROVIDER=gemini
LLM_API_KEY=your_api_key
LLM_MODEL=gemini-2.5-flashWe provide a ready-to-use PostgreSQL setup with sample data for testing:
# Start PostgreSQL with sample e-commerce data
docker compose -f docker/postgres.yml up -d
# Connect with:
# Host: localhost, Port: 5432, Database: libredb_dev
# User: postgres, Password: postgresIncludes:
- PostgreSQL 17 with
pg_stat_statementsenabled - E-commerce sample schema (customers, products, orders)
- 100+ records across multiple tables
- Pre-built views for reporting
This is especially useful for testing the Monitoring Dashboard features.
src/
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ ├── admin/ # Admin pages
│ └── login/ # Login page
├── components/ # React components
├── hooks/ # Custom React hooks
└── lib/
├── db/ # Database providers (Strategy Pattern)
├── llm/ # LLM providers (Strategy Pattern)
└── ... # Utilities
bun dev # Start development server
bun build # Build for production
bun start # Start production server
bun lint # Run ESLint- Use TypeScript for all new code
- Define proper types/interfaces
- Avoid
anytype when possible
- Use functional components with hooks
- Follow the existing component patterns
- Keep components focused and small
- Use Tailwind CSS for styling
- Follow the existing design patterns
- Use Shadcn/UI components when applicable
- Use clear, descriptive commit messages
- Reference issues in commits when applicable (e.g.,
Fix #123) - Keep commits focused on a single change
Feel free to open an issue with your question or reach out to the maintainers.
Thank you for contributing!