ObjectOS LogoObjectOS

Contributing to Development

Welcome to the ObjectOS development effort! This guide helps you understand how to contribute to the project's ongoing development.

How to Get Involved

1. Choose Your Area

ObjectOS development is organized into several key areas:

๐Ÿ” Permission System (High Priority)

๐Ÿช Lifecycle Hooks (High Priority)

๐Ÿ”— Relationship Fields (High Priority)

๐Ÿงช Testing & Quality (Ongoing)

2. Understand the Standards

Before contributing code, please review:

3. Set Up Your Environment

# Clone the repository
git clone https://github.com/objectstack-ai/objectos.git
cd objectos

# Install dependencies
pnpm install

# Build all packages
pnpm run build

# Run tests
pnpm run test

# Start development server
pnpm run dev

4. Pick a Task

Tasks are organized in the Development Plan with:

  • Task Lists - Specific implementation steps
  • Acceptance Criteria - What "done" looks like
  • Estimated Time - How long it should take

Look for:

  • Tasks marked as high-priority
  • Tasks in the current week (see Timeline)
  • Tasks that match your skills and interests

5. Submit Your Work

  1. Create a feature branch

    git checkout -b feature/permission-checker
  2. Implement the feature

    • Follow the task list in the development plan
    • Write tests as you go (TDD recommended)
    • Add JSDoc comments for public APIs
  3. Test thoroughly

    # Run unit tests
    pnpm --filter @objectos/kernel test
    
    # Run integration tests
    pnpm --filter @objectos/server test
    
    # Check coverage
    pnpm run test --coverage
  4. Submit a pull request

    • Reference the development plan section
    • Include before/after examples
    • Note any breaking changes
    • Request review from maintainers

Development Workflow

Weekly Cycle

Each week follows this pattern:

Monday-Wednesday: Implementation

  • Work on assigned tasks
  • Write tests alongside code
  • Document as you go

Thursday: Code Review

  • Submit PRs for review
  • Review others' PRs
  • Address feedback

Friday: Integration

  • Merge approved PRs
  • Update development plan status
  • Plan next week's tasks

Communication Channels

  • GitHub Issues - Bug reports and feature requests
  • GitHub Discussions - Questions and general discussion
  • Pull Requests - Code review and technical discussion

Quality Standards

All contributions must meet these standards:

Code Quality

  • โœ… TypeScript strict mode enabled
  • โœ… No any types (use unknown with guards)
  • โœ… All public APIs have JSDoc comments
  • โœ… Consistent naming conventions (see Contributing Guide)

Test Coverage

  • โœ… Kernel: โ‰ฅ 90% coverage
  • โœ… Server: โ‰ฅ 80% coverage
  • โœ… UI: โ‰ฅ 70% coverage
  • โœ… All edge cases tested

Performance

  • โœ… API response time P95 < 100ms
  • โœ… Permission check overhead < 10ms
  • โœ… No N+1 queries in relationships

Documentation

  • โœ… README updated if behavior changes
  • โœ… Guide updated for new features
  • โœ… Migration notes for breaking changes
  • โœ… Examples provided for complex features

Current Priorities (Q1 2026)

Week 1-2: Permission System Foundation

Focus on object-level and field-level permissions. This is the foundation for enterprise security.

Key Tasks:

  • Implement PermissionChecker class
  • Add PermissionGuard to server
  • Create field visibility filters

Success Metrics:

  • All CRUD operations check permissions
  • 95%+ test coverage
  • < 5ms permission check overhead

Week 3-4: RLS & Hooks

Complete the permission system with record-level security, then move to lifecycle hooks.

Key Tasks:

  • Implement RLSInjector
  • Complete HookManager
  • Add hook debugging tools

Success Metrics:

  • Sharing rules work correctly
  • All 8 hook types functional
  • Hook execution traceable

Week 5-7: Relationships

Implement full relationship support, the most complex feature set.

Key Tasks:

  • Lookup field resolver
  • Master-Detail cascade delete
  • Many-to-many junction tables

Success Metrics:

  • No N+1 queries
  • Cascade operations work
  • Related records query correctly

Getting Help

For Contributors

Not sure where to start?

  • Look for issues labeled good first issue
  • Start with documentation improvements
  • Review the Architecture Guide to understand the system

Stuck on implementation?

Tests failing?

  • Check the Testing Guide
  • Look at existing tests for examples
  • Run tests in watch mode: pnpm test --watch

For Maintainers

Reviewing PRs?

  • Check against acceptance criteria in development plan
  • Verify test coverage meets standards
  • Ensure documentation is updated

Planning next sprint?

Recognition

Contributors who make significant progress on the development plan will be:

  • Listed in release notes
  • Acknowledged in documentation
  • Invited to join the core team

Thank you for helping build the future of ObjectOS! ๐Ÿš€

On this page