Relaticle is built on the Laravel 12 framework with Filament 3 for the admin panel interface. The front-end uses Livewire and Tailwind CSS to create a responsive and interactive user experience.
Relaticle includes one premium component:
Custom Fields - A FilamentPHP plugin that enables unlimited custom fields on any Laravel model without database migrations.
This is the only paid component in Relaticle, helping sustain the open-source project.
Relaticle's data structure revolves around these key models:
To develop Relaticle locally, you'll need:
For a streamlined setup experience, use the single installation command:
git clone https://github.com/Relaticle/relaticle.git
cd relaticle && composer app-install
After installation, start all development services:
composer run dev
This will start the development server, queue worker, real-time logs, and asset watcher in parallel. Visit http://localhost:8000
in your browser to access the application.
If you prefer manual installation or need more control, follow these detailed steps:
git clone https://github.com/Relaticle/relaticle.git
cd relaticle
composer install
npm install
cp .env.example .env
php artisan key:generate
Open the .env
file and configure your database connection. For SQLite (recommended for development):
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/database/database.sqlite
Or for PostgreSQL:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=relaticle
DB_USERNAME=postgres
DB_PASSWORD=your_password
php artisan migrate
php artisan storage:link
npm run build
composer run dev
This starts all development services (server, queue, logs, assets) in parallel. Visit http://localhost:8000
in your browser to access the application.
Note: By default, emails are sent to the
log
driver. You can change this in the.env
file to something likemailtrap
for development.
Relaticle follows Laravel's coding standards and conventions. We enforce these through:
Relaticle uses several tools to maintain code quality:
# Lint the code using Pint
composer lint
composer test:lint
# Refactor the code using Rector
composer refactor
composer test:refactor
# Run PHPStan
composer test:types
# Run the test suite
composer test:unit
# Run test architecture checks
composer test:arch
# Run type coverage checks (must be 99.6%+)
composer test:type-coverage
# Run all quality checks
composer test
Pull requests that don't pass the test suite will not be merged. Always run
composer test
before submitting your changes.
Relaticle uses Git Hooks to automate quality checks during the development process. The hooks are located in the
.githooks
directory, and you can enable them by running:
git config core.hooksPath .githooks
This will automatically run the appropriate checks when you commit or push code.
All code contributions should include:
When adding new features:
The Filament ecosystem makes it easy to create custom components. Here's an example of a Filament resource:
namespace App\Filament\App\Resources;
use App\Filament\App\Resources\CompanyResource\Pages;
use App\Models\Company;
use Filament\Forms;
use Filament\Resources\Resource;
use Filament\Tables;
class CompanyResource extends Resource
{
protected static ?string $model = Company::class;
// Resource configuration...
protected static ?string $navigationIcon = 'heroicon-o-building-office';
public static function form(Forms\Form $form): Forms\Form
{
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
// Additional form fields...
]);
}
public static function table(Tables\Table $table): Tables\Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable(),
// Additional table columns...
]);
}
}
composer install --no-dev --optimize-autoloader
npm ci && npm run build
php artisan migrate --force
php artisan optimize
php artisan queue:restart
# Check queue status
php artisan queue:status
# Restart queue worker
php artisan queue:restart
Ensure proper permissions on the storage directory:
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
Use Laravel Telescope or Clockwork to identify slow queries, then add appropriate indexes.
composer require relaticle/custom-fields
php artisan view:clear
npm run build
We welcome contributions from developers of all skill levels! Relaticle is an open-source project that thrives on community involvement.
git checkout -b feat/amazing-feature
or fix/your-fix
composer test
git push origin feat/amazing-feature
We strive to maintain a welcoming and inclusive environment for all contributors. Please be respectful in all interactions and focus on constructive feedback.
Remember that all contributions to Relaticle are subject to review and must align with the project's goals and quality standards. Working closely with maintainers will help ensure your contribution is accepted and merged efficiently.