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 in its technology stack:
Custom Fields - A powerful Filament plugin developed by Relaticle that enables unlimited custom data fields without coding. It's the core of what makes Relaticle adaptable to any business workflow.
OPENSOURCE
for 50% offThis component is paid to fund ongoing development of the open-source platform and provide dedicated support. With thousands of development hours invested, it delivers enterprise-grade data modeling that would otherwise require significant custom development.
Key justifications for the commercial model:
This is the only paid component in Relaticle. Our commitment to open source remains strong, with this single commercial element supporting the sustainability of the entire ecosystem.
Relaticle's data structure revolves around these key models:
To develop Relaticle locally, you'll need:
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:
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
In separate terminal windows, run:
# Terminal 1: Asset compilation with hot reload
npm run dev
# Terminal 2: Queue worker
php artisan queue:work
# Terminal 3: Development server
php artisan serve
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.