Contributing
We welcome contributions to UntitledOne! This guide will help you get started with contributing to the project.
Development Setup
- Fork the repository on GitHub
- Clone your fork locally
- Follow the Installation Guide to set up the development environment
- Create a new branch for your feature or bug fix
Code Style
We use the following tools to maintain code quality:
- ESLint: For code linting
- Prettier: For code formatting
- TypeScript: For type safety
Running Code Quality Checks
# Type checking
npm run typecheck
# Linting
npm run lint
# Formatting
npm run format
# Run all checks
npm run check
Project Structure
UntitledOne follows these architectural principles:
Server-First Development
- Data fetching via React Server Components and Server Actions
- Minimize client-side components
- Use Suspense boundaries for loading states
Atomic Design
- Atoms: Basic UI elements (buttons, inputs)
- Molecules: Simple component combinations
- Organisms: Complex UI sections
- Templates: Page layouts
Database Guidelines
Migrations
- All migrations must be idempotent
- Use
if not exists
/if exists
clauses - Include rollback instructions as comments
RLS Policies
- Always specify policies per operation (select/insert/update/delete)
- Use
(select auth.uid())
for user filtering - Explicit
to authenticated/anon
clauses
Testing
Unit Tests
npm run test
End-to-End Tests
npm run cypress:open
Component Testing
npm run storybook
Submitting Changes
- Create a Branch: Use descriptive branch names like
feature/audio-player
orfix/upload-bug
- Make Changes: Follow our coding standards and write tests
- Test Locally: Run all tests and quality checks
- Commit: Use clear, descriptive commit messages
- Push: Push your branch to your fork
- Pull Request: Create a pull request with a clear description
Pull Request Guidelines
- Provide a clear description of changes
- Reference any related issues
- Include screenshots for UI changes
- Ensure all tests pass
- Update documentation if needed
Issue Reporting
When reporting issues:
- Use our issue templates
- Provide clear reproduction steps
- Include environment details
- Add relevant screenshots or logs
Community
- Join our Discord for real-time discussions
- Follow our GitHub for updates
- Check out our roadmap for planned features
License
By contributing to UntitledOne, you agree that your contributions will be licensed under the MIT License.
Last updated on