Skip to main content

#Developer Guide

Technical documentation for developers and contributors.


git clone https://github.com/Relaticle/relaticle.git
cd relaticle && composer app-install
composer run dev

Visit http://localhost:8000 to access the application.


Component Technology
Backend PHP 8.4, Laravel 12
Admin UI Filament 5
Frontend Livewire 4, Alpine.js, Tailwind CSS 4
Database PostgreSQL
Queue Laravel Horizon
Testing Pest v4
Static Analysis PHPStan (Level 7)
Code Style Laravel Pint, Rector
Auth Laravel Jetstream

Team ─┬─ User (via Membership)
      ├─ Company ─┬─ People
                 └─ Opportunity ─── Contact (People)
      ├─ Task (many-to-many with Company, People, Opportunity)
      └─ Note (many-to-many with Company, People, Opportunity)

All workspace data is isolated via the HasTeam trait. Every query automatically scopes to the current team.

Trait Purpose
HasTeam Workspace isolation
HasCreator Tracks record creator
HasNotes Polymorphic notes relationship
HasAiSummary AI-generated summaries

  • PHP 8.4+ with extensions: pdo_pgsql, gd, bcmath, mbstring, xml
  • PostgreSQL 17+
  • Node.js 20+
  • Composer 2+
git clone https://github.com/Relaticle/relaticle.git
cd relaticle
composer install
npm install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan storage:link
npm run build
composer run dev

For PostgreSQL:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=relaticle
DB_USERNAME=postgres
DB_PASSWORD=your_password

composer lint          # Format with Pint + Rector
composer test:lint     # Check formatting
composer test:types    # PHPStan analysis
composer test:pest     # Run tests
composer test          # All checks (required before PR)

Enable pre-commit checks:

git config core.hooksPath .githooks

All contributions require:

  • Unit tests for new functionality
  • Feature tests for user interactions
  • Minimum 99.9% type coverage

Run specific tests:

php artisan test tests/Feature/ExampleTest.php
php artisan test --filter="test_method_name"

Relaticle includes a custom fields system for extending entities without migrations.


For production deployment instructions, including Docker setup, environment configuration, reverse proxy, and platform-specific guides (Dokploy, Coolify), see the Self-Hosting Guide.


Issue Solution
Queue not processing php artisan queue:restart
File upload errors chmod -R 775 storage bootstrap/cache
Slow queries Use Laravel Telescope to identify, then add indexes
View cache issues php artisan view:clear && npm run build

  1. Fork the repository
  2. Create a feature branch: git checkout -b feat/your-feature
  3. Make changes following coding standards
  4. Run tests: composer test
  5. Commit with conventional messages
  6. Open a Pull Request

PRs must pass all checks before merge.