PHPackages                             brybry/laravel-visual-schema - 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. [Database &amp; ORM](/categories/database)
4. /
5. brybry/laravel-visual-schema

ActiveLibrary[Database &amp; ORM](/categories/database)

brybry/laravel-visual-schema
============================

A drag-and-drop visual database designer for Laravel with professional ERD design capabilities. Shared hosting compatible with no build process required.

04PHPCI failing

Since Oct 6Pushed 7mo agoCompare

[ Source](https://github.com/rondinabrybry/laravel-visual-schema)[ Packagist](https://packagist.org/packages/brybry/laravel-visual-schema)[ RSS](/packages/brybry-laravel-visual-schema/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Visual Schema Designer
==============================

[](#laravel-visual-schema-designer)

A comprehensive drag-and-drop visual database designer for Laravel applications. Create beautiful ERD diagrams with tables, relationships, and export them as PDF or images.

[![Latest Version on Packagist](https://camo.githubusercontent.com/13a55571280f9de43cd580b0c0067396710d88e41c3a14ae69716cbeeb2aa189/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6272796272792f6c61726176656c2d76697375616c2d736368656d612e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/brybry/laravel-visual-schema)[![Total Downloads](https://camo.githubusercontent.com/65c8ee4bb74c9295abe8f6558a9634b5fc52b31b82898d86f47125aed6121af4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6272796272792f6c61726176656c2d76697375616c2d736368656d612e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/brybry/laravel-visual-schema)[![Laravel 12 Ready](https://camo.githubusercontent.com/823578339b3f9c60c5498fbc45de7d8f4f768c17a0f38894f10472659c344adf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d313225323052656164792d677265656e2e7376673f7374796c653d666c61742d737175617265)](https://laravel.com)[![PHP 8.2+](https://camo.githubusercontent.com/3ab08792c9151922aa5272a343694533ce85b4596bd3bdfb2cf8dce39446314c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322b2d626c75652e7376673f7374796c653d666c61742d737175617265)](https://php.net)

Features
--------

[](#features)

- 🎨 **Drag &amp; Drop Interface** - Built with Alpine.js and Fabric.js (No build process required)
- 🧰 **Professional Toolbox** - Quick table creation, templates, and design tools
- 🔗 **Visual Relationships** - Draw connections between tables with smart routing
- 💾 **Persistent Layouts** - Save and reload your designs exactly as arranged
- 📤 **Multiple Export Formats** - PNG, SVG, and PDF export (grid-free exports)
- 🔐 **Secure Access Control** - Environment-based restrictions and middleware protection
- 📱 **Responsive Design** - Works on desktop, tablet, and mobile devices
- 🌙 **Dark/Light Mode** - Theme support with automatic grid adaptation
- ↩️ **Undo/Redo System** - Full action history with 50-step memory
- 🔍 **Advanced Canvas** - Zoom, pan, grid snapping, and alignment tools
- 📐 **Alignment Tools** - Professional layout with distribute and align functions
- ⚡ **Quick Actions** - Table templates (Users, Posts, Categories), keyboard shortcuts
- 🎯 **Smart Grid System** - Adjustable dot grid with snap-to-grid functionality
- 🚀 **Laravel 12 Ready** - Full compatibility with Laravel 10, 11, and 12
- 🏠 **Shared Hosting Compatible** - No Node.js, npm, or build processes required
- 📦 **CDN-Powered Frontend** - Uses Alpine.js and Fabric.js from CDN for zero compilation

Installation
------------

[](#installation)

### Requirements

[](#requirements)

- **PHP**: 8.2 or higher
- **Laravel**: 10.x, 11.x, or 12.x
- **Web Server**: Apache, Nginx, or any server that supports Laravel
- **Hosting**: Compatible with shared hosting (cPanel, Plesk, etc.)
- **No Node.js Required**: Works without npm, webpack, or any JavaScript build tools

### Install via Composer

[](#install-via-composer)

```
composer require brybry/laravel-visual-schema
```

### Publish Assets (Shared Hosting Compatible)

[](#publish-assets-shared-hosting-compatible)

Publish the static CSS/JS files (no compilation needed):

```
php artisan vendor:publish --provider="BryBry\LaravelVisualSchema\LaravelVisualSchemaServiceProvider" --tag="assets"
```

Publish the configuration file:

```
php artisan vendor:publish --provider="BryBry\LaravelVisualSchema\LaravelVisualSchemaServiceProvider" --tag="config"
```

Publish views for customization (optional):

```
php artisan vendor:publish --provider="BryBry\LaravelVisualSchema\LaravelVisualSchemaServiceProvider" --tag="views"
```

### For Shared Hosting Users

[](#for-shared-hosting-users)

After publishing assets, simply upload your Laravel application via FTP. The package uses CDN libraries and requires no build process:

- ✅ **Upload via FTP/SFTP**
- ✅ **No Node.js required**
- ✅ **No npm install needed**
- ✅ **No build commands**
- ✅ **Works on cPanel/Plesk**

🎮 Keyboard Shortcuts
--------------------

[](#-keyboard-shortcuts)

ShortcutAction`Ctrl + S`Save schema`Ctrl + Z`Undo`Ctrl + Y`Redo`Ctrl + D`Duplicate selected object`Ctrl + G`Group selected objects`Ctrl + U`Ungroup selected objects`Ctrl + T`Add new table`Ctrl + 0`Reset zoom to 100%`Ctrl + +`Zoom in`Ctrl + -`Zoom out`Delete`Delete selected object`Enter`Edit table name (when table selected)`Space`Fit canvas to window`Escape`Deselect all objects🔗 ERD Design Features
---------------------

[](#-erd-design-features)

### Interactive Relationship Drawing

[](#interactive-relationship-drawing)

- **Point-and-Click Drawing**: Click source table → click target table to create relationships
- **Visual Feedback**: Live preview while drawing relationships with mouse tracking
- **Crow's Foot Notation**: Professional ERD symbols (one-to-one, one-to-many, many-to-many)
- **Smart Routing**: Automatic relationship line routing around tables

### Foreign Key Auto-Detection

[](#foreign-key-auto-detection)

- **Convention-Based Detection**: Automatically detects foreign key relationships from column names
- **Smart Suggestions**: Identifies `user_id` → `users.id` patterns and similar conventions
- **Bulk Relationship Creation**: Apply all detected relationships with one click
- **Visual Indicators**: Clearly shows detected vs. manually created relationships

### Relationship Management

[](#relationship-management)

- **Relationship Types**: One-to-One, One-to-Many, Many-to-Many with proper visual notation
- **Edit Relationships**: Modify relationship types and properties after creation
- **Delete Relationships**: Remove relationships individually or in bulk
- **Relationship List**: Sidebar panel showing all relationships with details

### Professional ERD Tools

[](#professional-erd-tools)

- **Drawing Mode Toggle**: Switch between normal editing and relationship drawing modes
- **Relationship Toolbox**: Dedicated tools for ERD-specific operations
- **Visual Relationship Lines**: Clean, professional lines with crow's foot endings
- **Auto-Layout**: Smart positioning to avoid overlapping relationship lines

🧰 Toolbox Features
------------------

[](#-toolbox-features)

### Quick Add Tools

[](#quick-add-tools)

- **One-Click Tables**: Add tables with default Laravel structure
- **Custom Tables**: Quick input for table names
- **Template Library**: Pre-built tables (Users, Posts, Categories)

### Alignment Tools

[](#alignment-tools)

- **Align Objects**: Left, Right, Top, Bottom, Center
- **Distribute**: Even spacing horizontally or vertically
- **Layer Control**: Send to back/front, grouping

### Canvas Tools

[](#canvas-tools)

- **Smart Grid**: Adjustable dot grid (10-50px spacing)
- **Snap to Grid**: Automatic alignment assistance
- **Grid Toggle**: Show/hide grid overlay
- **Zoom Controls**: Precise zoom with percentage display

### Technology Stack

[](#technology-stack)

**Frontend (Zero Build Process):**

- **Alpine.js 3.13+** - Reactive JavaScript framework via CDN
- **Fabric.js 5.3+** - Canvas manipulation library via CDN
- **jsPDF 2.5+** - PDF export functionality via CDN
- **Pure CSS** - No preprocessing required

**Backend:**

- **Laravel 10|11|12** - Full framework compatibility
- **PHP 8.2+** - Modern PHP features

**Hosting Compatibility:**

- **Shared Hosting** - cPanel, Plesk, DirectAdmin
- **VPS/Dedicated** - Full server control
- **Cloud Platforms** - AWS, DigitalOcean, Linode
- **FTP Upload** - Traditional file upload supported

Usage
-----

[](#usage)

After installation, visit `/schema-designer` in your Laravel application (local environment only by default).

### Creating ERD Relationships

[](#creating-erd-relationships)

1. **Auto-Detection Method** (Recommended):

    - Click "Detect Foreign Keys" in the ERD Tools panel
    - Review detected relationships in the sidebar
    - Click "Apply All" to create all detected relationships at once
2. **Manual Drawing Method**:

    - Click "Toggle Relationship Mode" to enter drawing mode
    - Click on the source table (where the foreign key column is)
    - Click on the target table (the referenced table)
    - The relationship will be created automatically with proper notation
3. **Managing Relationships**:

    - View all relationships in the right sidebar panel
    - Edit relationship types (1:1, 1:M, M:M) using the dropdown
    - Delete individual relationships using the "Remove" button
    - Export your ERD diagrams with relationships included

### Configuration

[](#configuration)

Edit `config/schema-designer.php` to customize:

- Access permissions
- Storage location
- Export settings
- Security middleware

### Security

[](#security)

By default, the schema designer is only accessible in local environments. Configure additional security in the config file:

```
'enabled' => env('SCHEMA_DESIGNER_ENABLED', app()->environment('local')),
'middleware' => ['web', 'auth', 'role:admin'],
```

Export Formats
--------------

[](#export-formats)

- **PNG** - High-quality raster image
- **SVG** - Vector graphics for scalability
- **PDF** - Print-ready document format

Requirements
------------

[](#requirements-1)

- PHP 8.2+
- Laravel 10+, 11+, or 12+
- Node.js (for asset compilation)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance47

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/596ae4e4fd70506623485e51183c8cbadbdb55cb50b26d3f519f8ce0e695a87a?d=identicon)[rondinabrybry](/maintainers/rondinabrybry)

---

Top Contributors

[![rondinabrybry](https://avatars.githubusercontent.com/u/71830788?v=4)](https://github.com/rondinabrybry "rondinabrybry (6 commits)")

### Embed Badge

![Health badge](/badges/brybry-laravel-visual-schema/health.svg)

```
[![Health](https://phpackages.com/badges/brybry-laravel-visual-schema/health.svg)](https://phpackages.com/packages/brybry-laravel-visual-schema)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.3k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M543](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M209](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

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