DEV Community

Javier Eguiluz
Javier Eguiluz

Posted on

Introducing EasyAdmin Pro

We're introducing EasyAdmin Pro, a paid extension to EasyAdmin that adds some features needed by companies: audit logs, record locking, a dashboard for Symfony Messenger and more.

But first, this is our promise to everyone who uses the free EasyAdmin version:

  1. We're NOT going to remove any existing feature from the free version
  2. We're NOT going to make any existing free feature worse to force you to use EasyAdmin Pro
  3. We're going to keep adding a ton of great features to the free version

Nothing changes for free users: upgrade EasyAdmin as usual and enjoy the new features of each release.

What Is EasyAdmin Pro

EasyAdmin Pro is a second bundle that you install next to EasyAdmin. It's a separate Composer package (easycorp/easyadmin-pro-bundle) that requires the free bundle (easycorp/easyadmin-bundle) and extends it. It's not a fork, it's not a different version of EasyAdmin and it doesn't replace anything. You keep your dashboards, your CRUD controllers and your fields exactly as they are, and the Pro bundle adds new features on top of them.

The free bundle is open source (MIT license) and stays that way. The Pro bundle is commercial and its code is not public.

Does Pro change anything in the free bundle? No. There's only one EasyAdmin bundle and its code is the same for everybody, with or without Pro. EasyAdmin Pro is built only with the public extension points of EasyAdmin, the same ones that you can use in your own applications (fields, field configurators, CRUD events, etc.). The free bundle has no hidden hooks for Pro, no license checks and no feature switched off, because there's nothing to switch off.

EasyAdmin Pro works with EasyAdmin 4.x and 5.x, PHP 8.1 or higher and Symfony 5.4, 6.4, 7.x and 8.x. The assets are prebuilt, so you don't need any frontend tooling. The main features are disabled by default and you enable only the ones you need; so it adds no overhead to your projects.

Who Is It For

EasyAdmin Pro is for companies that run their backends in production with real teams behind them. Several people edit the same data at the same time, someone asks "who changed this price and when?", an auditor wants proof that nobody changed the records, and your background jobs fail at 3 AM without telling anyone.

If your backend is a side project, a prototype or a small internal tool, open source EasyAdmin is all you need, and that's perfectly fine. It will keep being that way.

What's Inside

The EasyAdmin Pro page describes every feature in detail but this is what I like the most:

Content Lock

When two people open the same record and both click on "Save", the second one silently overwrites the work of the first one. Content Lock fixes this: when someone is editing a record, other users can't see the edit form. Instead, they see a message explaining who is editing it and when they started.

You enable it in the configuration and that's all: you don't write a single line of PHP code. Locks stay alive while the form is open, they expire on their own when the user leaves, and privileged users can override them.

Content Lock prevents uesrs from overwritting the work made by other users

Audit Log

Most audit logs are a database table with rows that say "Jane updated Product #42". Anyone with write access to that table can edit or delete rows, and nobody will ever know. That's good enough to debug a problem, but the best audit trails don't work that way.

AWS CloudTrail hashes its log files and signs a digest of them every hour, and each digest includes the signature of the previous one. The ledger feature of Azure SQL Database and SQL Server links blocks of hashes into a chain and stores its digests outside the database.

EasyAdmin Pro brings that idea to your backend with a tamper-evident integrity chain. Every entry is signed and linked to the previous one, signed checkpoints summarize the chain (and you can export them to write-once storage outside your database), and a verification command detects if any entry was altered, reordered, deleted or truncated.

Each entry also stores a field-level diff of every change: the old value, the new value, who made the change and from which IP address. It tracks the entities that you choose, and you can also record your own events (a data export, a user impersonation) with one method call.

An audit log that is truly safe and cannot be tampered without leaving evidences

Messenger Inspector

When using Symfony Messenger, your messages go into a queue and you hope for the best. The Messenger Inspector from EasyAdmin Pro shows you, inside your backend, which messages are queued, processing, succeeded, failed or being retried. You can open any message to inspect its envelope and retry or remove failed messages.

It works with any transport (Doctrine, AMQP, Redis, Amazon SQS, etc.) and it's designed to stay out of the way: if the inspector fails to write its own data, the error is logged and your messages are still processed. An error in the inspector never breaks your application.

Markdown Editor Field

A new field to edit Markdown contents with a formatting toolbar and a live preview. The detail page renders the contents as HTML and the index page shows them in a modal. You use it like any other EasyAdmin field:

use EasyCorp\Bundle\EasyAdminProBundle\Field\MarkdownEditorField;

public function configureFields(string $pageName): iterable
{
    yield MarkdownEditorField::new('description');
}
Enter fullscreen mode Exit fullscreen mode

More Features Are Coming

EasyAdmin Pro is not a finished product but a growing set of features. We'll keep adding new ones, and every feature released while your subscription is active is included at no extra cost.

How to Get It

  • How is it sold? As a subscription, monthly or annual, that you buy on the EasyAdmin Pro page. You pay by card and you get an invoice with your company details for every payment. You can cancel anytime without penalties.
  • What does the license cover? A single license per company/organization allows unlimited projects, unlimited developers and unlimited AI coding agents. You don't count seats or projects.
  • How do I install it? With Composer, like any other Symfony bundle. When you subscribe, you get credentials for a private Composer repository that work in all your projects and CI pipelines. Then you run composer require easycorp/easyadmin-pro-bundle.
  • Is support included? Yes, by email and directly from the EasyAdmin maintainers.

The EasyAdmin Pro page has the rest of the details.

EasyAdmin Pro Is a Good Thing for EasyAdmin Free

I know what some of you are thinking, because it happened in so many projects: the paid version arrives, the free version slowly stops improving, then some features move behind the paywall and the free product gets a bit worse every year until you give up and pay. This is what they call enshittification and that's not going to happen here.

I've been working on EasyAdmin since 2015. I'm still focused on making the free version of EasyAdmin the best admin generator in the industry. The thing that limits how fast EasyAdmin improves was never the lack of ideas but the lack of hours. EasyAdmin Pro pays for those hours. Every company that subscribes to Pro is paying for time that goes into the whole project, and a big part of that time goes to the open source bundle that everybody uses.

And remember: no feature will be removed from free EasyAdmin, no feature will be made worse, and new free features will keep coming. Pro is not bad for Free. Pro will make Free better.


✨ If you enjoy EasyAdmin and your company doesn't need the Pro features, you can still support the project by sponsoring it 🙌💡

Top comments (0)