PHPackages                             easiviotech/fabriq-skeleton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. easiviotech/fabriq-skeleton

ActiveProject[Framework](/categories/framework)

easiviotech/fabriq-skeleton
===========================

Fabriq starter project — a ready-to-use scaffold for building Swoole-powered SaaS applications with multi-tenancy, realtime WebSockets, background jobs, and per-tenant frontend serving.

v1.2.4(2mo ago)05↓100%MITPHPPHP &gt;=8.2

Since Mar 5Pushed 2mo agoCompare

[ Source](https://github.com/easiviotech/fabriq-skeleton)[ Packagist](https://packagist.org/packages/easiviotech/fabriq-skeleton)[ RSS](/packages/easiviotech-fabriq-skeleton/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (6)Used By (0)

Fabriq Skeleton
===============

[](#fabriq-skeleton)

> The official starter project for [Fabriq](https://github.com/easiviotech/fabriq) — a unified Swoole-powered platform for building multi-tenant SaaS applications with realtime WebSockets, background jobs, and per-tenant frontend serving.

Create a New Project
--------------------

[](#create-a-new-project)

**Linux / macOS:**

```
composer create-project easiviotech/fabriq-skeleton myapp
cd myapp
```

**Windows:**

```
composer create-project easiviotech/fabriq-skeleton myapp --ignore-platform-req=ext-swoole
cd myapp
```

> Swoole does not run natively on Windows or macOS. The `--ignore-platform-req=ext-swoole` flag skips the local Swoole check — Swoole runs inside Docker, so this is safe and expected.

Start the Stack
---------------

[](#start-the-stack)

```
docker compose -f infra/docker-compose.yml up -d --build
```

This starts six containers:

ContainerRole`app`Fabriq HTTP + WebSocket server`processor`Background job + event bus worker`scheduler`Cron-like task scheduler`mysql`MySQL 8 database`redis`Redis (jobs, events, pub/sub, rate limiting)`adminer`Database UI at Verify it's running:

```
curl http://localhost:8000/health
curl http://localhost:8000/api/welcome
```

Customise Project Name &amp; Ports
----------------------------------

[](#customise-project-name--ports)

Edit `infra/.env` to avoid port conflicts when running multiple projects:

```
COMPOSE_PROJECT_NAME=myapp
APP_PORT=8000
MYSQL_PORT=3306
REDIS_PORT=6379
ADMINER_PORT=8080
```

Project Structure
-----------------

[](#project-structure)

```
myapp/
├── app/
│   ├── Http/Controllers/    # HTTP request handlers
│   ├── Providers/           # Service providers (register + boot lifecycle)
│   ├── Models/              # ORM models (Active Record, tenant-scoped)
│   ├── Repositories/        # Data access layer
│   ├── Events/              # Domain event classes
│   ├── Listeners/           # Event listener handlers
│   ├── Jobs/                # Background job classes
│   └── Realtime/            # WebSocket handlers
├── bin/fabriq               # CLI entry point
├── bootstrap/app.php        # Application bootstrap
├── config/                  # Configuration files
├── routes/
│   ├── api.php              # HTTP API routes
│   └── channels.php         # WebSocket channel definitions
├── database/
│   └── migrations/          # SQL migration files
├── infra/
│   ├── .env                 # Project name + port variables
│   ├── Dockerfile
│   ├── docker-compose.yml
│   └── mysql/init.sql
├── public/_default/         # Default tenant frontend (static files)
├── storage/builds/          # Frontend build workspace
├── tests/
│   ├── Feature/
│   └── Unit/
├── composer.json
└── phpunit.xml

```

CLI Commands
------------

[](#cli-commands)

```
# Server processes
php bin/fabriq serve                          # Start HTTP + WebSocket server
php bin/fabriq processor                      # Start queue + event processor
php bin/fabriq scheduler                      # Start task scheduler

# Code generators
php bin/fabriq make:controller Name           # Generate a controller
php bin/fabriq make:model Name                # Generate an ORM model
php bin/fabriq make:migration create_table    # Generate a migration
php bin/fabriq make:provider Name             # Generate a service provider
php bin/fabriq make:middleware Name           # Generate middleware
php bin/fabriq make:seeder Name               # Generate a database seeder
php bin/fabriq make:factory Name              # Generate a model factory

# Database
php bin/fabriq migrate                        # Run pending migrations
php bin/fabriq migrate:rollback               # Roll back the last migration batch
php bin/fabriq db:seed                        # Run database seeders

# Frontend (per-tenant)
php bin/fabriq frontend:build    # Build tenant frontend from Git
php bin/fabriq frontend:status   # Check frontend deploy status

# Help
php bin/fabriq help                           # List all available commands
```

Enable Optional Features
------------------------

[](#enable-optional-features)

The skeleton ships with the core providers active. Uncomment providers in `config/app.php` to enable additional features:

ProviderFeature`AuthServiceProvider`JWT + API key authentication, RBAC/ABAC`EventServiceProvider`Domain events and listeners`RealtimeServiceProvider`WebSocket channels and presence`OrmServiceProvider`Active Record ORM and migrationsAdd Premium Packages
--------------------

[](#add-premium-packages)

```
# Live streaming (WebRTC signaling, HLS transcoding, chat moderation)
composer require fabriq/streaming

# Game server engine (tick loop, matchmaking, lobbies, UDP protocol)
composer require fabriq/gaming
```

Documentation
-------------

[](#documentation)

- **Full framework docs**:
- **Framework source**:
- **Changelog**:

License
-------

[](#license)

MIT — see [LICENSE](LICENSE)

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance87

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

66d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0cce56237b90dc59b214f88af2b3fa9c38d50509bb56f1d0d5ecff6af94053b8?d=identicon)[nikcoder2018](/maintainers/nikcoder2018)

---

Top Contributors

[![nikcoder2018](https://avatars.githubusercontent.com/u/18230102?v=4)](https://github.com/nikcoder2018 "nikcoder2018 (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/easiviotech-fabriq-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/easiviotech-fabriq-skeleton/health.svg)](https://phpackages.com/packages/easiviotech-fabriq-skeleton)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M258](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
