Open source CRUD Framework for PHP/MySQL

Quickly build mobile-friendly interfaces for searching, creating, and updating data on your database. It's like Django Admin for PHP.

See Demo

Create a CrudKit app with this command:

composer create-project skyronic/crudkit-template your_project

Or See the quick start for more details


  • Full AJAX interface with no JavaScript coding required
  • Easy to use API to configure everything
  • Support for foreign-key table relationships experimental
  • Input validation
  • Query Builder GUI coming soon
  • More to come...


  • PHP 5.4+
  • Supports MySQL, SQLite (PostgreSQL and SQL Server coming soon)
  • No Framework/ORM Needed
  • Support for MVC Frameworks like Laravel/CodeIgniter coming soon
  • Full security against SQL Injection/CSRF/XSS
  • Supports custom authentication (you will have to build authentication logic) coming soon

How does it work?

Step 1: Create a PHP file


require "vendor/autoload.php";
use CrudKit\CrudKitApp;
use CrudKit\Pages\MySQLTablePage;

// Create a new app
$app = new CrudKitApp();

// Create a new page mapped to a table
$sqlPage = new MySQLTablePage ("customer_page", "john", "hunter2", "mydb");
$sqlPage->setTableName ("Customers")  // Set the table name
        ->setPrimaryColumn ("CustomerId")
        ->addColumn ("FirstName", "First Name")
        ->addColumn ("LastName", "Last Name")
        ->addColumn ("DateOfPurchase", "Date of Purchase")
        ->addColumn ("Country", "Country", [ // Additional configuration using options
            'validation' => [
                'required' => false,
        ->setSummaryColumns (["FirstName", "Country"]);

// Add the page to the app

// Render the app

Step 2: Open the file in your browser

Here’s what you get:

  1. A “summary table” which allows users to browse a summarized version.
  2. A form to edit and create new rows of data.
  3. All SQL queries, fully escaped and sanitized handled on your behalf.


How is this better than PHPMyAdmin/Adminer/etc?

PHPMyAdmin/Adminer are great for administering and managing a database. If you are comfortable enough with that, CrudKit will likely be not of much use to you but however there are some distinct advantages.

  1. CrudKit lets you define field names and descriptions for all items, so you’ll get a more human friendly Favorite Banana Brand instead of fv_bnn_brnd.
  2. CrudKit performs validation and lets your users know if something went wrong.
  3. CrudKit has more functionality when working with table relationships, and will help your users deal with direct records and not worry about the primary keys.
  4. Generally, CrudKit is simpler, easier and more pleasant to use, especially on mobile - because it focusses on the tables and records, not of the actual database itself.

Why do we have to configure it with code, why not detect database info?

There are similar tools that automatically detect database info and builds up an interface, but as a fundamental decision, CrudKit will not do this. In order to illustrate why, consider the following situation:

You have to generate an interface to edit a database. You install a tool which reflects out the columns of all your tables and builds a nice GUI for it. This works well until you start to try and modify something. Maybe some fields aren’t needed they are still included. You have to manually remove them, then in order to change validation rules or field names, you have to keep editing the generated info.

On the other hand, CrudKit doesn’t start with something and ask you to modify it for what you want. Instead, CrudKit gives you a clean slate and tools to build exactly what you need, so you know exactly what’s happening.

Built by Anirudh Sanjeev. CrudKit is distributed under the MIT/X11 License.