Thank you for your interest in contributing to SeaNotes! This document provides guidelines and information for contributors to help make the contribution process smooth and effective.
- Getting Started
- Development Setup
- Testing
- Pull Request Process
- Issue Guidelines
- Documentation
- Community Guidelines
Before contributing, please:
- Read the README.md - Understand what SeaNotes is and how it works
- Check existing issues - Your idea might already be discussed or in progress
- Comment on issues to get assigned - To contribute, you must comment on existing issues to get assigned to them. If you want to work on a new feature or bug that doesn't have an issue yet, you must first raise a new issue and then comment on it to get assigned.
- Join the community - Follow our Code of Conduct
- Node.js 18+
- npm or yarn
- Git
- Docker (optional, for local database)
- PostgreSQL database (local or cloud)
-
Fork and Clone
# Fork the repository on GitHub first git clone https://github.com/<your-username>/sea-notes-saas-starter-kit.git cd sea-notes-saas-starter-kit/application
-
Install Dependencies
npm install
-
Environment Configuration
cp env-example .env # Edit .env with your configuration -
Database Setup
# Option A: Use Docker docker-compose up -d # Option B: Use DigitalOcean Managed PostgreSQL database # Update DATABASE_URL in .env # Initialize database npx prisma generate npx prisma migrate deploy
-
Start Development Server
npm run dev
For full functionality, consider setting up:
- Email (Resend): For password reset, magic links, and notifications
- File Storage (DigitalOcean Spaces): For file uploads
- Stripe: For subscription billing
- DigitalOcean Gradient AI: For AI features
See the README.md for detailed setup instructions for each service.
- Write tests for new features
- Maintain good test coverage
- Use descriptive test names
- Test both success and error cases
- Mock external dependencies appropriately
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow proper code standards
- Write tests for new functionality
- Update documentation as needed
-
Test your changes
npm run build
-
Commit your changes
git add . git commit -m "feat: add your feature description"
Use conventional commit format:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(auth): add magic link authentication
fix(notes): resolve note deletion bug
docs(readme): update deployment instructions
-
Push your branch
git push origin feature/your-feature-name
-
Create a Pull Request
- Use the PR template if available
- Provide a clear description of changes
- Link related issues
- Include screenshots for UI changes
-
PR Checklist
- Code follows project standards
- Tests pass
- Documentation updated
- No console errors
When reporting bugs, please include:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, browser, Node version)
- Screenshots or videos if applicable
- Console errors if any
For feature requests:
- Clear description of the feature
- Use case and benefits
- Proposed implementation (if you have ideas)
- Mockups or examples if applicable
Use the appropriate issue template:
- Bug report
- Feature request
- Documentation improvement
- Security vulnerability
- Address all feedback
- Ask for clarification if needed
- Push additional commits if requested
- Update the PR description with changes
- Keep documentation up to date
- Use clear, concise language
- Include code examples
- Add screenshots for UI changes
- Update README.md for major changes
- README.md: Project overview and quick start
- CONTRIBUTING.md: This file
- docs/: Detailed guides and tutorials
- Code comments: Inline documentation
When making changes that affect documentation:
- Update relevant docs
- Add examples for new features
- Update screenshots if UI changes
- Verify all links work
- Test documentation instructions
- Be respectful and inclusive
- Use welcoming and inclusive language
- Be collaborative and supportive
- Give credit where due
- Help others learn and grow
- Check existing documentation first
- Search existing issues and discussions
- Ask questions in issues or discussions
- Provide context when asking for help
- Be patient with responses
By contributing to SeaNotes, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to SeaNotes! Your contributions help make this project better for everyone.