📖 README

A modern, visual database schema designer for Laravel — build your database visually, generate production-ready code.

LaraSchema picks up where the now-defunct LaravelSD left off — a modern visual schema designer built natively for the Laravel ecosystem. Design your database with drag-and-drop, define Eloquent relationships visually, and export production-ready migration files.


What It Does

  • Visual Canvas — Drag-and-drop table design on an infinite SVG canvas with zoom and pan
  • Column Editor — Define columns with all 30+ Laravel migration types, modifiers, and indexes
  • Relationship Drawing — Click-to-connect tables with automatic FK column creation and cardinality indicators
  • Complete Code Generation — Export production-ready Laravel code:
    • Migrations — All column types, foreign keys, pivot tables
    • Models — Eloquent models with relationships, $fillable, casts(), traits
    • Factories — Intelligent Faker methods, state management, foreign key handling
    • Seeders — Dependency-ordered seeding with realistic data
  • Category-Based Preview — Browse generated code by type (Migrations, Models, Factories, Seeders)

Quick Start (Development)

git clone <repo-url> LaraSchema
cd LaraSchema
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
npm install && npm run dev
php artisan serve

Visit http://localhost:8000/laraschema to start designing.


Tech Stack

Layer Technology
Backend Laravel 12
UI Components Livewire 4
Canvas Interactivity Alpine.js + SVG
Styling Tailwind CSS 4
Testing Pest PHP

Project Structure

LaraSchema/
├── packages/laraschema/     <- Core Laravel package
│   ├── src/                  <- PHP: models, components, generators, jobs
│   ├── resources/views/      <- Blade + Alpine.js views
│   ├── config/               <- Package configuration
│   ├── database/migrations/  <- 8 core schema tables
│   ├── templates/            <- Base Laravel project template for ZIP export
│   └── routes/               <- Package routes
├── app/                      <- Host Laravel app (SaaS layer, admin panel)
├── demo/                     <- Sample exported project for reference
├── docs/                     <- Project documentation
├── marketing/                <- Landing page assets
└── README.md

Documentation

Document Description
Project Overview Vision, problem statement, and competitive landscape
Architecture Tech stack, package-first design, canvas & generator architecture
Database Design All tables, ERD diagram, column types, design decisions
Phase 1 Implementation MVP build plan — Visual canvas + migration export
Roadmap Phase 2-4 plans and feature distribution
Contributing Team conventions, coding standards, workflow
Phase 2 Implementation Code generation — Models, Factories, Seeders
Phase 2.5 Implementation Full Laravel project + Filament admin export
Auth & Guest Plan Breeze login + guest token claiming flow
Filament Resource Improvements Smarter Filament resource generation
Hosting Plan Infrastructure plan for the hosted SaaS
Force-Directed Layout Auto-layout algorithm for the canvas
Build Log Step-by-step record of every build action and decision

Current Status

Phase 2.5 (Full Project Export + Filament Admin) — ✅ Complete

LaraSchema now generates a complete, runnable Laravel + Filament project from a visual design:

  • ✅ Phase 1: Visual canvas + migration export
  • ✅ Phase 2: Model, Factory, and Seeder generators
  • ✅ Phase 2.5: Full Laravel + Filament project ZIP export with browser setup wizard
  • 🛠 In progress (admin-panel branch): Filament admin panel, queued export jobs with health indicator, code preview, search/filter/disk usage in the Exports view, and a feedback widget

See Phase 2.5 Implementation for details.

What's Next: Live hosting (see 12), auth + guest flow (see 10).


Author

Maulik Raval


© LaraSchema. All rights reserved.

Reading the docs because someone has to build this?

If the schema is done and the application around it is the part you would rather hand over, an experienced Laravel team can take it from here.

Talk to a Laravel team
Loading...