Rails Admin vs Administrate: which one is better
Rails Admin and Administrate are both popular libraries to build admin panels for Rails applications.
They have been around for a long time and they've helped many developers start building Rails apps much faster.
However, there are some considerable differences between both of them and, depending on your preferences, one of them might be better than the other for you.
Let's explore them, their strengths and weaknesses and see which one could be a better fit for you:
Rails Admin: an overview
Rails Admin is a popular admin framework for Ruby on Rails applications.
It's designed around a DSL which is used to customize practically everything about it. The use of a DSL is the reason why some people love it and some strongly dislike it.
With more than 10 years in the Rails ecosystem, Rails Admin has been adopted by many companies and solo developers to build applications and, together with Active Admin/Administrate, constitutes the most popular admin frameworks for Rails.
Let's explore some key Rails Admin features:
- Build CRUD interfaces from your resources: with Rails Admin you can generate CRUD interfaces for your resources using their DSL. This can save you a lot of time compared to building these interfaces from scratch.
- Search and filtering: you can easily search and filter the data from your resourcers. Advanced search and filtering require customization but the basics are there..
- Authentication and authorization: Rails Admin is easily integrated with authentication and authorization libraries like Devise or CanCanCan/Pundit.
- Export Capabilities: it allows you to export your admin data to CSV, XML or JSON files.
- Customizable Actions: You can define custom actions for models, allowing for more complex operations beyond basic CRUD.
Rails Admin is a good choice to get an admin panel up and running quickly and without too much effort.
Having an admin panel or internal tooling built based on your models is a sure way to save time.
But, it's worth noting that even if you can save time when starting out your application with Rails Admin, you will probably pay out some of that time in the long run, especially if you need a lot of customization.
Rails Admin pros and cons
Having been around for almost a decade, Rails Admin has a lot of features that make it a good choice to build admin experiences using Rails.
This doesn't mean it's perfect or that it doesn't have any cons.
Let's explore the pros first:
-
Maturity: Rails Admin is a mature project with a lot of users and resources around it. It has been around for almost a decade and it's still being developed an maintained even if the pace of development has slowed down a bit.
-
Feature set: Rails Admin has a feature set that allows you to build admin panels quickly from the resources you have in your application.
-
ORM flexibility: with Rails Admin you can use Mongoid as your applications ORM in case you're not using ActiveRecord.
-
Simple file uploads: Rails Admin allows you to upload files to your application without too much hassle.
Now let's see some of the cons for Rails Admin:
-
Customization is difficult: even though Rails Admin development is somewhat active and features are being added. The pace of development is not as fast as it could be. This doesn't mean it's not a good choice per-se but it can be a problem if it doesn't fit your needs in its current form.
-
Modest improvements: despite Rails Admin not being an abandoned library, it doesn't receive a lot of frequent updates. This is reasonable considering the age of the library but it also means that new features are rare and improvements are not frequent.
-
A mediocre UI: Rails Admin has an acceptable UI when compared to Administrate. However, it's not really modern and useable as it needs to be especially when considering what users expect from admin panels nowadays.
-
Poor documentation: Rails Admin documentation resides mostly in their GitHub wiki page. This is not necessarily bad but it's not very convenient mostly because the fact it's not easily searchable and processable.
-
Dependant on outdated third party plugins: some Rails Admin functionality is reached through third party plugins that might be outdated. This can be a problem if you're planning for the long term or depending on the library for a long time.
Administrate: an overview
Administrate is a popular tool for building admin panels and internal tooling in the Ruby on Rails ecosystem.
It's been around for almost 10 years and adopted by many developers that use it daily to build their applications.
It was born with a design philosophy that was and is radically different to the ones Active Admin and Rails Admin brought to the table: Administrate is basically a Rails scaffolding engine centered around admin panels.
So let's see the main features it has:
- Quickly build CRUD interfaces via scaffolding: Administrate lets you generate admin views for your application resources using familiar code. Configuration is done in a single file and customization is done via familiar files like controllers or views.
- Granular configuration: customizing Administrate doesn't require you to learn a new DSL or become an Administrate expert. You can actually customize it inheriting and overwriting controller and view code.
- Easily generate custom fields: one of the Administrate's advantages is the ability to generate custom fields by creating a couple of files. Behavior for those fields is your responsibility and that may slow you down at first but it's a very powerful way to customize the admin experience to your liking.
- A limited feature set: even though this can be seen as a disadvantage, the fact that Administrate doesn't do a lot of heavy lifting for us means that writing our own features or customizations doesn't imply being an expert on the framework
As you can see, Administrate is limited in its feature set but it also represents an admin panel that's lighter and easier to customize.
But that doesn't mean that it's free from defects.
Actually, many people dislike for the same reasons that some people love it. So let's see some pros and cons for Administrate:
Administrate pros and cons
Administrate can be a good choice to build Rails admin panels because of it's lightweight nature but it also comes with some disadvantages.
Let's see its pros first:
-
Ligthweight but powerful: Administrate doesn't try to be more than it should be. You get customizable scaffolds and ways to customize code during the request lifecycle. The library is also not that big so getting familiar with it is not a titanical task.
-
Easily customizable: this is probably the main selling point for Administrate. You can generate partials for a lot of the components that make up the library and customize them to your liking using familiar code.
-
Clean configuration: because of the way its designed, configuring and customizing Administrate doesn't pollutes your application code. If you decide you don't want to use Administrate anymore and maybe replace it with your own scaffolds, your application code will be mostly untouched. You cannot say the same about alternatives like Rails Admin or Administrate
-
A decent ecosystem: even though it doesn't rival the third party plugins other frameworks have. There are a decent amount of plugins written for Administrate.
Now let's see some of the cons:
-
Not actively developed: Administrate is still in pre-1.0 (as of version 0.20.1). Updates are sparse, and it’s unclear if it will be actively maintained in the future. After 9 years of its release that may be a red flag for some developers.
-
By default it feels like a database viewer: the lack of a great feature set can be seen as a disadvantage by some people. By default, it generates very basic CRUD views and some work—and perhaps third party code—is needed to achieve desired functionality.
-
Outdated front-end: Administrate still dependes on jQuery and doesn't use the current Rails way which includes goodies like Stimulus, Hotwire, Turbo and utility-first CSS libraries like Tailwind.
-
Poor documentation: Administrate's documentation consists of 12 pages of content. That is not enough to cover the basic use cases, even for a library that's as simple as Administrate.
So which one should I pick? Rails Admin or Administrate?
The decision to pick one over the other is pretty subjective because it depends on your needs and preferences.
Both libraries are differente in approaches and design so, to summarize it you should pick Rails Admin if:
- You need a mature framework: Rails Admin has been around a little longer than Administrate and it seems to be more amply adopted. This means that if you want a safer bet, you should probably pick Rails Admin.
- You have certainty about your application's features: given the fact that Rails Admin is a little bit harder to customize. If you are certain about your application's features and scope, the initial productivity gains you can get from Rails Admin are probably worth it.
- You are comfortable around DSLs: Rails Admin uses a DSL for almost every other feature and configuration. If you like DSLs and feel comfortable learning about them and using them on a daily basis, Rails Admin is probably a good fit for you.
- You are the stakeholder: Rails Admin weaknesses become less important when you are the one and only person defining the features your application needs.
Conversely, you should pick Administrate over Rails Admin if:
- You don't care about putting a little work to reach your needs: with Administrate you will probably need to put some work to reach functionality that most admin panels need, even when starting out. Functional search, filtering, batch actions, file uploads, advanced fields are among the things you will need to figure out when using Administrate.
- You are comfortable working with a stale library: even though it still receives some updates and the 1.0 version is currently in beta, considering past history the library is not guaranteed to be maintained in the long run.
- Your admin panel needs are basic: if you don't need fancy features or can handle your admin panel being simple at first, Administrate is a good choice because it's lightweight and easy to customize.
Having said this, we want you to present a third alternative that picks where Administrate and Rails Admin left and redefines what an admin panel framework should be:
Meet Avo: a third alternative to Rails Admin and Administrate
If you're looking for a Rails Admin alternative or an Administrate Alternative, you should consider Avo.
We're aware that Rails Admin and Administrate have been around for a long time and we totally respect what they've accomplished for the Rails ecosystem.
However, we believe that Avo is an improvement over both alternatives.
Yeah, we're biased. Building Avo daily gives us more knowledge about it and it incliens our preferences. However, that doesn't mean that we cannot weigh in and talk about the alternatives.
Let's take a look at what makes Avo unique and why you should choose it to build your next Rails application:
Avo: an overview
If you're looking for an admin panel framework to use for your next project, you should consider Avo.
We're aware that Rails Admin and Administrate have been around for a long time and we totally respect what they've accomplished for the Rails ecosystem.
However, we believe that Avo is an improvement over both Avo alternatives.
Let's take a look at what make Avo unique and why we believe it's a better alternative for your admin framework needs:
Avo's features and pros
Avo has been around since 2020 and it has a lot of features that can make your life easier as a Rails developer.
Here are some of them:
-
A vast variety of fields: Avo comes packed with most of the fields you're going to need in your application without the need to write any code or use third party plugins: text, WYSIWYG textareas with Trix or Tip Tap, password, number, boolean, datetime, taglist, enum, file, image, sound, video, etc. Also, if you get to the point where Avo's fields are not enough, you can easily create your own custom fields.
-
Excellent documentation: Avo's documentation is one of our top priorites. We put a lot of effort into documenting the library, especially considering that we have a very tight release cycle. With our documentation you will find everything you need quickly and without the need to go through third party resources.
-
Customization is easy: we know that customizing your admin panel is one of the main pain points that developers experience when using admin frameworks. That's why we've built Avo with customization as a first class citizen. We provide a lot of what we like to call "escape hatches" so you can customize your admin panel and not feel like you're fighting against it.
-
Active development: we are constantly working on Avo taking customer feedback into consideration and improving our product every day to make it better for you and other Rails developers.
-
Development speed through sensible defaults: Avo comes with sensible defaults to make you more productive. We have built tons of admin panels and internal tooling so we can translate that experience into creating a seamless admin experience for Rails developers.
-
Current Rails best practices: Avo uses Hotwire and Stimulus to bring a highly interactive experience to the table without the need to write boatloads of front-end code.
-
Most common admin features out of the box: It doesn't matter if this is your first or n-th admin panel. Avo can help you build solutions way faster than other alternatives by providing you with the right features at the right time.
-
Minimal configuration to achieve what you want: we let you customize your admin panel but don't require extenous amount of configuration to do so.
Avo being a paid product
We know that Avo being a paid product may deter you from even trying. After all, who pays for an admin library, right?.
Well, you should know that Avo has a very generous free tier that you can even use for commercial products. It will give you a considerable productivity lift and we're sure you will be an advocate after trying it.
At Avo, we're a small army of two and we're releasing features and improving the library to accommodate the needs for each one of our paying and free users.
Charging for Avo means that we can dedicate more time to make your life simpler without you even noticing it. Even if you don't spend a dime on it.
Consider that around 70% of our paid features are available on our free "Community" plan.
Feel free to Try Avo and see for yourself how it can help you build faster and better using Rails.