Thank you for your interest in contributing to liblab.ai! We're building the future of AI-powered developer tools, and your contributions help make that vision a reality. 🚀
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
- Read our Governance Model to understand how decisions are made
- Browse existing Issues to see what's being worked on
- Look for "good first issue" labels for beginner-friendly tasks
⚡ Quick Setup: Use our automated script from the main README, then return here for contribution workflow.
For contributors making code changes:
-
Fork and clone your fork:
git clone https://github.com/your-username/liblab.ai.git cd liblab.ai -
Follow the README setup instructions to get the project running
-
Verify everything works:
pnpm test pnpm lint
liblab.ai uses SQLite for data storage - no external database required!
# Generate Prisma client
npx prisma generate
# Optional: View database in web interface
npx prisma studioThe database will be automatically created and migrations applied when you first run the application.
- Check existing issues to avoid duplicates
- Use the bug report template when creating a new issue
- Provide detailed information: steps to reproduce, expected vs actual behavior, environment details
- Search existing feature requests first
- Create a feature request issue using our template
- Explain the problem your feature would solve
- Choose an issue or propose a new feature
- Comment on the issue to let others know you're working on it
- Follow our development workflow (see below)
- main: Production-ready code
- feature/issue-number-description: New features
- fix/issue-number-description: Bug fixes
- docs/description: Documentation updates
-
Create a branch:
git checkout -b feature/123-add-new-feature
-
Make your changes following our coding standards
-
Test your changes:
pnpm test pnpm lint pnpm typecheck -
Commit with clear messages:
git commit -m "feat: add new feature for X functionality"
We follow Conventional Commits:
type(scope): description
Types: feat, fix, docs, style, refactor, test, chore
- Update documentation if needed
- Add or update tests for new functionality
- Run the full test suite (
pnpm test) - Check code style (
pnpm lint) - Keep changes focused - one feature/fix per PR
- Automated checks must pass
- Code review by at least one core maintainer
- Address feedback and make requested changes
- Final approval and merge
- Use TypeScript for all new code
- Define proper types - avoid
any - Use interfaces for object shapes
- Follow existing patterns in the codebase
- Use meaningful names for variables and functions
- Keep functions small and focused
- Comment complex logic
- Use functional components with hooks
- Follow React best practices
- Handle errors gracefully
- Use UnoCSS for styling
- Follow atomic CSS principles
- Ensure responsive design
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch- Write tests for new features and bug fixes
- Use Vitest as our testing framework
- Test edge cases and error conditions
# View/edit data in web interface
pnpm prisma studio
# Reset database (caution: deletes all data)
pnpm prisma migrate reset
# Create new migration after schema changes
pnpm prisma migrate dev --name your-migration-name
# Generate Prisma client after schema changes
pnpm prisma generate- Edit
prisma/schema.prisma - Create migration:
pnpm prisma migrate dev --name describe-your-change - Update TypeScript types if needed
- Test your changes thoroughly
- 🐛 GitHub Issues - Bug reports and feature requests
- 📧 General Inquiries - Contact us directly
- Be respectful and professional
- Stay on topic in discussions
- Search before asking to avoid duplicates
- Provide context when asking questions
Interested in deeper involvement? See our Governance Model for information about becoming a core maintainer.
Thank you for contributing to liblab.ai! 🚀