Thank you for your interest in contributing to Calmlytic! This document provides guidelines and instructions for contributing.
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Environment details (OS, browser, Node version)
- Check existing Issues and Discussions
- Create a new issue with:
- Clear description of the feature
- Use case and benefits
- Mockups or examples (if applicable)
- Fork the repository
- Create a branch from
main:git checkout -b feature/your-feature-name
- Make your changes
- Follow the code style (we use Biome for formatting)
- Write or update tests if applicable
- Update documentation if needed
- Test your changes
npm run lint npm run build
- Commit your changes
Use conventional commit messages:
git commit -m "feat: add your feature description"feat:for new featuresfix:for bug fixesdocs:for documentationstyle:for formattingrefactor:for code refactoringtest:for testschore:for maintenance
- Push to your fork
git push origin feature/your-feature-name
- Open a Pull Request
- Fill out the PR template
- Link related issues
- Request review
-
Clone your fork
git clone https://github.com/Dev-Adnani/calmlytic.git cd calmlytic -
Install dependencies
npm install
-
Set up environment variables
cp env.example .env.local # Edit .env.local with your credentials -
Run development server
npm run dev
- We use Biome for linting and formatting
- Run
npm run formatbefore committing - TypeScript strict mode is enabled
- Follow existing code patterns and structure
We follow Conventional Commits:
feat: add voice journaling transcription
fix: resolve image upload error
docs: update setup instructions
refactor: simplify auth flow
- Test your changes locally
- Ensure the app builds without errors
- Test on different browsers if UI changes
- Test edge cases
- Update relevant documentation in
docs/if you add features - Add JSDoc comments for new functions
- Update README if needed
- All PRs require at least one approval
- Address review comments promptly
- Keep PRs focused and reasonably sized
- Respond to feedback constructively
- Include tests that reproduce the bug
- Explain the fix in the PR description
- Reference the issue number
- Discuss large features in an issue first
- Keep features focused and well-documented
- Update relevant documentation
- Consider backward compatibility
src/app/- Next.js pages and API routessrc/components/- React componentssrc/lib/- Utilities and helperssrc/hooks/- Custom React hookssrc/store/- State managementsrc/types/- TypeScript typesdocs/- Documentation
- Open a Discussion
- Check existing Issues
- Review the Documentation
Your contributions make Calmlytic better for everyone. We appreciate your time and effort!