Search by

liberusoftware / social-network-laravel

curtisdelicata

Liberu social network Laravel application.

Package info

github.com/liberusoftware/project-social-network-laravel-filament

Type:project

pkg:composer/liberusoftware/social-network-laravel

Fund package maintenance!

liberusoftware

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 27

Open Issues: 21

v3.0.6 2026-11-14 17:28 UTC

This package is auto-updated.

Last update: 2026-11-14 19:44:51 UTC


README

An open, modular Laravel platform for building communities and social products you control.

Software · Hosting · Services · Liberu Group

PHP Laravel Filament Livewire

Install Tests Docker Codecov License: MIT

What it is

Liberu Social Network is a self-hostable social platform and reference application. It gives teams a working foundation for launching a public community, private network, creator product, membership service, or specialised social experience without rebuilding the core social primitives from scratch.

The application is built from independently versioned Composer modules. Product capabilities, APIs, Livewire interactions, Filament administration, and themes can evolve independently while the host application supplies configuration and integration.

Product capabilities

The current product modules cover:

  • Profiles with handles, bios, avatars, verification, visibility, and blocking
  • Follows, friendship requests, lists, suggestions, and relationship visibility
  • Home and following timelines with cursors, ranking, and visibility filters
  • Posts, articles, drafts, audiences, mentions, hashtags, polls, links, and scheduling
  • Reactions, comments, replies, sharing, bookmarks, counters, and abuse limits
  • Private conversations with membership, delivery/read state, attachments, safety, and retention controls
  • Events with invitations, attendance, capacity, locations, schedules, reminders, and updates
  • Images, video, audio, files, processing, accessibility metadata, rights, delivery, and private albums
  • Communities with groups, memberships, roles, rules, feeds, questions, files, and moderation boundaries
  • Privacy-aware search, hashtags, trends, recommendations, and directories
  • Reports, evidence, moderation decisions, appeals, sanctions, and transparency records
  • In-app, email, and push notification preferences, grouping, digests, quiet hours, and read state
  • ActivityPub-compatible identity, inbox, outbox, and delivery primitives
  • Privacy-governed analytics for growth, engagement, retention, health, delivery, and moderation

The platform also includes authentication, two-factor authentication, roles and permissions, organisations, audit trails, API access, feature flags, settings, localisation, files, webhooks, queues, scheduling, observability, and theme support.

Stack

Dependency Version
PHP 8.5
Laravel 13.x
Filament 5.x
Livewire 4.x
Composer 2.x
Node.js Current supported release
Database A Laravel-supported SQL database

Quick start

git clone https://github.com/liberusoftware/project-social-network-laravel-filament.git
cd social-network-laravel

composer install
cp .env.example .env
php artisan key:generate

npm install
npm run build

php artisan migrate
php artisan serve

Configure the database, mail, application URL, and external integrations in .env before running migrations. Use php artisan migrate --seed when you want available example data.

For interactive setup, run:

bash install.sh

How the modules fit together

The host application composes three kinds of package:

modules/
├── social-network-*   # social product domains and API/UI adapters
├── *                  # shared foundation capabilities
themes/                # replaceable visual themes
app/                   # host-specific composition and integration
config/                # application and module policy
tests/                 # cross-module application tests

Each social domain is separated from its presentation adapters. For example, the publishing domain can be used through its API, Livewire composer, or Filament administration package. This keeps domain rules reusable across web, mobile, and partner integrations.

Modules are enabled from their manifests and can be adjusted for a deployment through MODULES_ENABLED and MODULES_DISABLED. Inspect the installed capability catalog with:

php artisan module:features
php artisan module:features health
php artisan module:status search

Installed module and theme directories are tracked so deployments and reviews contain the exact package contents used by the application. Composer remains the source of package versions and dependency resolution. Generic module changes belong in the module repository; host-specific composition belongs here.

APIs and administration

Versioned API adapters are provided for the social product domains and use Laravel Sanctum authentication. API routes live in the relevant social-network-*-api modules, keeping HTTP concerns out of domain packages.

Filament 5 provides administration surfaces for profiles, relationships, publishing, communities, events, media, messaging, moderation, analytics, and network settings. Livewire 4 provides interactive web surfaces such as timelines, composers, conversations, profiles, notifications, and relationship controls.

Themes

Themes are replaceable packages under themes/. The base theme defines shared contracts and fallback behaviour; the default, dark, and clear-signal themes provide application presentations. See theme architecture and theme system for extension guidance.

Testing and quality

composer validate --strict
vendor/bin/pest
vendor/bin/pint --test
npm run build

The test suite covers cross-domain behaviour, module providers, API boundaries, presentation integration, and architecture rules. See module development before adding or changing a package.

Documentation

Publishing component repositories

The publishing helper derives component repository names from directories under modules/ and themes/:

scripts/publish-components
scripts/publish-components --create
scripts/publish-components --push

Push mode requires a clean, committed worktree and authenticated GitHub access. It publishes component repositories as subtree splits and never force-updates an existing non-fast-forward history.

Contributing

Bug reports, focused improvements, documentation, translations, tests, and new social capabilities are welcome. Keep changes scoped, follow existing module boundaries, and include tests for user-visible behaviour. Search existing issues before opening a new one.

Do not report security vulnerabilities in public issues. Email security@liberusoftware.com with reproduction details and the affected version.

License

Liberu Social Network is open-source software released under the MIT License.

Automatic module and theme publishing

.github/workflows/sync-packages.yml publishes packages changed under modules/ or themes/ on pushes to main. A manual run reconciles all tracked packages. Each package needs a composer.json with a liberusoftware/* name. Files are copied from Git into the root of liberusoftware/module-<directory> or liberusoftware/theme-<directory>. Where .liberu-meta.json defines a repositoryPrefix, that design is authoritative (for example, modules/module-manager becomes module-module-manager). Without a configured prefix, an existing module- or theme- directory prefix is kept. Destination history is preserved, deleted files are removed, and unchanged packages do not receive another commit or release. Removing an entire package leaves its public repository intact. This workflow makes tracked package edits publishable; install checks still require the project's Composer dependencies to resolve to those published package contents.

Configure these secrets in the packagist GitHub environment (or as repository or organization secrets available to this repository):

  • MODULE_SYNC_TOKEN: organization-authorized GitHub token able to create public repositories and read/write package contents and releases across the target repositories. Because package snapshots include .github/workflows, allow workflow writes too. A classic PAT needs repo and workflow scopes and an organization role permitted to create repositories. The default GITHUB_TOKEN cannot publish across these repositories.
  • PACKAGIST_USERNAME: Packagist account that owns or maintains these packages.
  • PACKAGIST_API_TOKEN: that account's main API token, required to submit new packages as well as update existing packages.

New packages start at their declared stable Composer version, or v1.0.0. Existing packages use the highest stable repository tag: a higher declared Composer version wins, BREAKING CHANGE: or type!: commits bump major, feat: commits bump minor, and other changes bump patch. Only commits touching the package since the last successful sync affect this decision. The first automated run and manual runs reconcile all packages, so canceled or failed runs cannot silently drop package changes. Tags and commits are pushed atomically, then a GitHub release is created and the package is submitted to or refreshed on Packagist. Rerunning a failed job completes publication without issuing another release for the same contents. Concurrent pushes from other projects are rejected instead of force-pushed; rerun the failed job.

The source project and its lockfile are not rewritten by publication. Different projects publishing the same directory name share a destination repository; coordinate their package contents. Run the publisher's local tests with python3 -m unittest discover -s .github/scripts -p 'test_sync_packages.py'.

Project family and presentation options

This repository hosts Social Network with Laravel and Filament. Profiles, feeds, communities and moderation. Its existing installation instructions and manifests govern this application. The other presentations are independent skeletons derived from their matching Boilerplate foundation; repository availability does not establish product feature parity.

Other Laravel and Filament projects

Project Scope
Boilerplate Shared application foundation and module composition
Accounting ERP Ledgers, tax, reporting and finance workflows
Automation AI gateways, approvals, rules and integrations
Billing Subscriptions, pricing, payments and provisioning
Browser Game Game worlds, players and community workflows
CMS Content authoring, publishing and delivery
Control Panel Infrastructure and hosting operations
CRM Relationships, sales pipelines and customer service
Ecommerce Catalogs, checkout, orders and fulfillment
Enterprise SAP Enterprise workspace and cross-product orchestration
Genealogy Family trees, research, evidence and collaboration
Liberu Platform Official sites, staff applications and platform composition
Maintenance Assets, work orders, schedules and field operations
Music DAW Composition, recording, sequencing and audio production
Real Estate Listings, sales, lettings and agency operations

Other presentations for Social Network

  • Laravel · Inertia · Vue: Laravel routes and sessions with Vue pages over the Inertia protocol.
  • Laravel · Inertia · React: Laravel routes and sessions with React pages over the Inertia protocol.
  • Nuxt · Vue: Independent Vue application with Nuxt server rendering and reviewed API integration.
  • Next.js · React: Independent React application with explicit Next.js server/client boundaries.
  • React Native · Expo: Native iOS/Android application using React Native and Expo.
  • Flutter · Mobile: Flutter iOS/Android application using Dart and mobile widgets.
  • Dart · Desktop: Dedicated Dart desktop application with a Flutter host for Linux, macOS and Windows.
  • Dart · Mobile: Separate Dart mobile application with a Flutter host for iOS and Android.

Use the presentation implementation guides and product documentation to select compatible modules, reviewed contracts and the correct deployment boundary. Laravel remains authoritative for domain rules and tenant authorization across all clients.