PHPackages                             keshavjha/curdder - 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. [API Development](/categories/api)
4. /
5. keshavjha/curdder

ActiveLibrary[API Development](/categories/api)

keshavjha/curdder
=================

A Laravel CRUD wizard that inspects database tables, manages joins, and generates CRUD config inside the host app.

v1.3.8(1mo ago)017MITBladePHP ^8.1

Since Jun 30Pushed 1mo agoCompare

[ Source](https://github.com/kj6560/crudder)[ Packagist](https://packagist.org/packages/keshavjha/curdder)[ RSS](/packages/keshavjha-curdder/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (8)DependenciesVersions (10)Used By (0)

Curdder
=======

[](#curdder)

Curdder is a Laravel CRUD wizard package that installs into a host Laravel app and generates CRUD config, models, and web CRUD routes inside that app.

It is designed for workflows like this:

- inspect the current database schema
- drag tables into a visual workspace
- connect columns with relation lines
- choose relation types like `belongsTo`, `hasOne`, `hasMany`, and `belongsToMany`
- generate CRUD config and Laravel models in the applied project
- create new tables from the same wizard
- edit existing tables from the same wizard

What It Creates
---------------

[](#what-it-creates)

Curdder currently generates:

- a CRUD config file in the host app
- Eloquent models in `app/Models`
- web CRUD pages for each generated resource
- a Laravel wizard UI for table selection, relation building, and table creation

Curdder does not currently generate API CRUD endpoints.

Install
-------

[](#install)

```
composer require keshavjha/curdder
```

Laravel package auto-discovery will register the service provider automatically.

If you want to customize the wizard URL or output file, set these environment variables in the host app:

```
CRUDDER_PATH=crudder
CRUDDER_GENERATED_FILE=storage/app/crudder.php
```

You can also adjust the config in `config/crudder.php` after publishing it into the Laravel app.

Wizard URLs
-----------

[](#wizard-urls)

After installing in the host Laravel app, open:

- `/crudder`
- `/crudder/tables/create`

If you change `CRUDDER_PATH`, the wizard will move under that prefix.

How The Wizard Works
--------------------

[](#how-the-wizard-works)

### 1. Open the wizard

[](#1-open-the-wizard)

Visit `/crudder` to load the current schema from the connected database.

### 2. Drag tables into the workspace

[](#2-drag-tables-into-the-workspace)

Drag the tables you want to use into the visual board. The workspace is where you define the structure of the CRUD build.

### 3. Connect relations visually

[](#3-connect-relations-visually)

Click a source column, then click a target column to draw a relation line between them.

You can also add a relation from inside the table card itself.

### 4. Pick relation type

[](#4-pick-relation-type)

Use the relation settings panel to choose the relation type:

- `belongsTo`
- `hasOne`
- `hasMany`
- `belongsToMany`

### 5. Generate config and models

[](#5-generate-config-and-models)

When you generate, Curdder stores the config file in the host app and writes Eloquent models into `app/Models` if they do not already exist.

Create Tables
-------------

[](#create-tables)

You can create new database tables from the wizard at `/crudder/tables/create`.

If you need to change an existing table, open the edit link next to that table in the schema list. The editor loads the current columns, lets you adjust them, and rebuilds the table while preserving data from columns that still exist.

This is useful when you want to build out a schema inside the same Laravel app before generating CRUD for it.

Generated Output
----------------

[](#generated-output)

By default, the generated config is written to:

```
storage/app/crudder.php

```

The generated config includes:

- app metadata
- inspected table resources
- foreign-key style join rules
- the visual graph state
- the selected relation data

Relation Graph
--------------

[](#relation-graph)

Curdder stores relations in the graph as table and column pairs, for example:

```
{
  "type": "belongsTo",
  "from_table": "posts",
  "from_column": "user_id",
  "to_table": "users",
  "to_column": "id",
  "label_column": "name"
}
```

The wizard uses this information to:

- draw the connectors in the workspace
- generate model relationship methods
- generate foreign-key style join rules for the CRUD config

Notes
-----

[](#notes)

- This package is intended to run inside the Laravel project you want to generate CRUD for.
- It does not create a separate standalone CRUD app anymore.
- If the wizard UI looks stale after an update, clear compiled views with `php artisan view:clear`.

Development
-----------

[](#development)

If you are working on the package itself, the main Laravel integration lives in:

- `src/Laravel/CurdderServiceProvider.php`
- `src/Laravel/Http/Controllers/CrudderWizardController.php`
- `resources/views/wizard.blade.php`

The schema/config layer lives in:

- `src/Schema/DatabaseSchemaInspector.php`
- `src/Generator/ConfigGenerator.php`

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance92

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

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

9

Last Release

41d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6b953ba86492d108d26262d75996679b6e50ac9a62b82bfb831976df60638852?d=identicon)[Keshav Jha](/maintainers/Keshav%20Jha)

---

Top Contributors

[![kj6560](https://avatars.githubusercontent.com/u/22166884?v=4)](https://github.com/kj6560 "kj6560 (11 commits)")

### Embed Badge

![Health badge](/badges/keshavjha-curdder/health.svg)

```
[![Health](https://phpackages.com/badges/keshavjha-curdder/health.svg)](https://phpackages.com/packages/keshavjha-curdder)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.5M7](/packages/exsyst-swagger)[lucasdotvin/laravel-soulbscription

A straightforward interface to handle subscriptions and features consumption.

709209.3k](/packages/lucasdotvin-laravel-soulbscription)[pimax/fb-messenger-php

Facebook Messenger Bot PHP API

313188.5k2](/packages/pimax-fb-messenger-php)

PHPackages © 2026

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