If you are here, you are considering using an external solution to build your admin panel. You may lack the resources and time to build your own from scratch. Or you may have realised that a robust ready-to-use solution is more scalable. So here you are. But choosing an admin panel solution can become a daunting task. You need to take several key factors into consideration. Such factors include time, scalability, flexibility, use cases, objectives and resources.
When the stakes are your business operations efficiency, you cannot be too diligent. You want to take your decision in awareness of the advantages and drawbacks of each solution. Some of the questions that you may be asking are:
- Will I have to spend time implementing the features I need?
- Will I be able to scale if my users and my models count explode?
- How flexible is it if I need to adapt to new workflows?
- Can I easily find support if issues arise using it?
Looking for answers to these questions? Want to make an educated decision? Then keep on reading! I am going to explain to you the similarities, differences, pros, and cons of both Forest Admin and Active Admin in this article.
Disclaimer: I have been using both solutions for personal projects. An Active Admin enthusiast for a while, I now work within the Forest Admin team. I remember too well my time spent researching the best admin panel solution. My aim here is to contribute to other developers’ choice without bias.
History: a fast growing SaaS VS a well-established open-source framework
Forest Admin launched in 2017. The goal of the company is to create an admin panel as a SaaS to save time for developers teams. Empower them to focus on client-facing interfaces. In its quest, Forest Admin differentiates from similar services by being technologically agnostic. If you have a SQL database, you can have Forest Admin. It supports Postgres, MySQL and SQL Server. You can also use it on no SQL MongoDB databases. How does Forest Admin achieve this? It relies on a CLI tool called Lumber. Lumber creates a backend application in seconds. This app can then connect your database to Forest Admin.
Thought as a SaaS, Forest Admin has premium paying features. But it also has a free community plan. A rising star in the market, Forest Admin has over 2k monthly active users.
Active Admin is an open source project created by Greg Bell in 2011. Its described goals are to “enable developers to quickly create good-looking administration interface for business and ensure that developers can easily customize every nook and cranny”. Its simplicity and flexibility has made it popular within the Rails developers’ community. Active Admin earned 8k stars on Github and is included into over 22k github projects.
Architecture — API VS in-app framework
Forest Admin and Active Admin aim for the same goal but with very different architectures.
The biggest difference? Forest Admin relies on an API installed in a dedicated NodeJS app. This means two things worth considering.
First, you get a separate app for all things admin panel. You don’t pollute your main app with extra code. It provides flexibility to edit and version your admin panel code in this standalone app.
Secondly, the API interacts with an external Forest Admin server. This server contains the admin panel UI. As it provides only the layout to the user browser, the Forest Admin server never accesses your data. By design, all the front-end and main logic of the admin panel is within the Forest Admin server. This way it can include several features available from the get-go for the user. Including a very powerful layout editor in the UI.
Active Admin acts as a framework. It builds views from an imported library of components. All the code related to your admin panel UI is in your app.
Pros of Forest Admin: No code related to your admin panel in your main app. UI as a service with many features and layout editor.
Pros of Active Admin: No need to create another app. You can access your admin panel in development with no internet access.
Technology — NodeJS VS Ruby
The backend of your admin panel will be in NodeJS if you opt for Forest Admin. It will be in Ruby if you opt for Active Admin. If you are reading this post, it means you already work with a Rails app. You may not want to work with another stack for your admin panel. But having to use a standalone NodeJS app should not deter you from choosing Forest Admin.
Including Active Admin in your rails app allows you on the other hand to focus on your current stack. You can customise your admin panel in ruby which can be a sine qua none condition for some developers. Especially if they are not familiar with other languages.
Pros of Active Admin: All code customisation is done in the language of your main app.
Setup and Installation: a fast and smooth process for both solutions
Both are quite easy to install and you should be up and running in under 5 minutes. They have a very clear documentation that ensure a streamlined installation process. You can access the relevant documentation here: Forest Admin / Active Admin.
As mentioned, Forest Admin’s UI works as a specific service hosted on a remote server. You first need to sign up to this service. Then install npm and run a CLI command to create your backend app dedicated to your admin panel. This app includes the API to interact with Forest Admin’s server. Once you project is up and running on the UI, you get access to an admin panel where the magic happens. As the API scans all your models, your admin panel will display all your collections straight away. You can browse through your data without any further set up.
ActiveAdmin’s installation is quite smooth as well. You need to add the Active-Admin gem, install and generate your authentication model to get started. The Devise gem handles the authentication by default. Finally, you need to run a command to add each model you want to include in your admin panel. This will tell your admin panel to display the model table. This last part can be tedious if you have a large number of models to include.
Pros of Forest Admin: All your tables are available straight away in your panel.
Pros of Active Admin: No need to create new app or sign-up to an external service.
Admin panel layout — layout editor in the UI VS in-app customisation
When you design an admin panel one of the main goals is to access and display your data in the most relevant manner.
Forest Admin’s main strength is to offer the service of a layout editor inside the UI. the possibility to customise the layout of your admin panel inside the UI. Which includes possibilities to easily customise the layout of your admin panel. Inside the UI. These cover basic features like ordering, hiding/showing models to advanced features like creating teams and managing permissions. The great upside? You can adapt your admin panel to your workflow without touching the code. Or even worse, having to bother your devs to do so. The inevitable downside? You may be unable to perform very advanced and specific customisation. Even if several customisation possibilities are available through your code in addition to what the layout editor allows. But you need to stay within the boundaries of what the UI allows.
Active Admin provides you with a framework that you can customise extensively. Default views are built with a library of Arbre components that you can edit. You can also insert your own partials or even create entirely customised views. This is great if you want to design your own very specific displays by yourself. But it makes customising your admin panel more time-consuming. You need to change the code of your app and push a new version every time you want to edit your layout. Which is fair when you need to make important changes. But gets frustrating when you simply want to change the order of columns displayed for a model.
Both Forest Admin and Active Admin offer classic and efficient tabular views by models. These views allows you to search, order and filter your data.
In Forest Admin you can use the layout editor to hide and reorder columns. That way you can display only the most relevant information. You can also pick within a library of widget to display your data (badges, links, pictures).
Through an implementation in your code, you can add columns that do not exist in your database. Columns that can include data computed from other collection or external sources. You can also create virtual relationships between models to access virtually related data easily. And should the tabular view not fit your needs, a built-in tool enables you to create custom views in Ember. Examples of such views include Kanban, map or calendar views.
Active Admin’s default view is tabular but supports grid, blog and gallery layouts. A panel on the right-hand side of the screen allows you to add any custom information you may need. You can also create customised views without having to use built-in components. Contrary to Forest Admin, you can build these views in your app using html.erb format. A low point is the limited number of available widgets to display your data.
Record view page
The record view page allows to display data relating to a specific record (eg an order). Both Forest Admin and Active Admin provide default views displaying a record’s attributes. The difference lies with the way you can customise this view and display data.
Forest Admin offers two possible views: (i) the default details view and (ii) a built-in customisable view.
The default details view is a very basic view of your record attributes in rows.
The summary view is a premium feature available on the business plan. It allows you to display your record attributes and related data via a simple drag and drop in the UI. The upside is that you can show the most relevant data and lists of related data in a single view. All this without a single line of code.
The default view of Active Admin is also a basic view of your record attributes. It provides extensive customisation possibilities. You can add any data you want to include either in a main display area or in a side panel. This way you can show related data in the side panel to optimise your operations.
You can also design an entirely customised view as an html.erb file and have the UI point to this view instead of the default one.
Pros of Forest Admin: Layout editor in the UI. Customisation templates for record detail views. Widgets in the UI (map, file viewer, …).
Pros of Active Admin: Easily customisable default views. Possibility to create 100% custom views.
Manipulating your data — built-in CRUD actions and custom actions for both solutions
To manipulate your data, you generally need to perform two kinds of action: CRUD and custom. CRUD actions (create, read, update, delete) are natively supported by Forest Admin and Active Admin. Custom actions are actions that will respond to your own logic. Both solutions allow you to create such actions.
These actions can be accessible through the index view or record details views. They can be apply to several records, trigger the opening of a form or provide you with a html response. Forest Admin scores some points when it comes to data input as you can use useful edit widget. Such widgets allow you to drag and drop files, use rich text editors, enter array of values, etc.
Pros of Forest Admin: Widgets in edit forms built in the UI
Permissions and teams: Built-in system VS custom conditional statements
One of the key issues when considering your admin panel is ensuring that the right person accesses the right data in the most efficient way. As such, it is important to be able to provide a dedicated view depending on the role and team of the user. Your logistics team would not need to access the same data as your sales team for example.
Forest Admin has a role and team-based permission system to handle these issues. Let’s start with roles. When inviting users to a project you need to assign a role. An admin can manage teams and edit the layout. An editor can only edit a layout. A user does not have access to the editor. The user will see and be able to perform the actions that the admin/editor allows him to see/perform.
Moving on to teams. Each team has its own layout. The admin/editor can configure the layout to make sure that users from a team have:
- the most optimised admin panel possible (displaying the data in a manner that fits its workflow),
- access to only a specific set of data,
- The ability to perform only a specific set of actions.
A similar system of layouts per role or team in Active Admin would rely on conditional statements. You need to add attributes to your authentication model to include a role or a team. You then need to apply a condition to render a layout or another on each of your views or components.
Here’s an example of implementation of team-conditional layout (where the address table will only show for users from the customer support team):
To manage permissions you can use an authorisation adapter to make sure users are authorised to perform specific actions. Active Admin also includes adapters for the CanCan and Pundit gems if you need a more advanced permission system. Even if it is possible, beware that creating a scalable system of teams and permissions this way may be very tricky.
Pros of Forest Admin: User invitation and role attribution in the UI. Team creation and edit in the UI.
Dashboards: charts VS customisable block view
You may need an overview of your KPIs to pilot your operations. Both solutions allow you to do just that in a dashboard.
Forest Admin offers a dashboard page with a built-in chart creator. You can use it to create charts of six different categories (leaderboards, time-based, repartition, etc). The data can be computed directly in the UI through simple commands or sql queries. You can also create charts with more complex data retrieving logics by adding some code in your app. Your charts may then feature data from external APIs. A feature also allows you to add analytics for each individual record through a similar chart builder.
Active Admin’s dashboard page is built with block components. You can include any type of data you want in each block. The upside of Active Admin’s dashboard is the possibility to add instructions, links to records and action buttons. The downside is the absence of charts in the Active Admin library. Should you want to create one you would need to resort to gems like the great Chartkick.
Pros of Forest Admin: Chart builder in the UI.
Pros of Active Admin: Possibility to add action buttons to the dashboard.
Community and support: slack channel support VS wider community
You don’t want to be left alone with a blocking issue when it comes to your admin panel. The consequences for your business operations may be disastrous. So where do you get the answers you need in such a situation?
Forest Admin nurtures its community through a dedicated slack channel. This channel is public and accessible to any user. Users are welcome to ask their questions, describe their issues. The Forest Admin team monitors the channel and addresses most posts within minutes. It announces feature releases and major bug fixes through this channel. Which is great to keep up to date when some of these may improve your workflow. You can also open Github issues for the team to handle.
Active Admin, being a free open-source solution, does not provide actual support. But its popularity and maturity means you can rely on a large community. Most issues you may encounter have already been discussed and solved somewhere. And you will always find someone to answer your questions on Stack Overflow. Github issues are also processed fast by contributors.
Pros of Forest Admin: Fast and efficient support provided through a slack channel.
Pros of Active Admin: Large community. Numerous issues well documented on Stack Overflow.
Both solutions are easy to use and can be life-changing for developers in need of an instantly up-and-running admin panel.
Forest Admin is the way to go if you need a scalable admin panel. One that doesn’t need hundred of hours of developers time to set up and maintain. Forest Admin’s strength resides in the powerful tools it provides through its UI. These are particularly valuable if you are scaling fast. If you have constantly evolving processes. If you have users with different workflows. When configuring each team’s admin panel in a matter of seconds is a necessity. When you need an efficient system of permission management. When you need increased security. For smaller projects, the free community plan is a good alternative. It may not offer all of Forest Admin’s most valuable features but it still is a very good fit for companies with limited resources.
Active Admin would be more recommended if you are working on a small project. It is particularly adapted if you want a high level of customisation possibilities. If tabular views do not work for you. If you need the ability to code custom pages in html.erb. Then you can safely opt for Active Admin. Less so when the time comes to scale. When groups of users require different layouts. When your app gets heavier and heavier. Including all the code of your admin panel may affect performance then. And maintaining your code will be nightmarish. For simpler cases, it remains a great option — particularly for a 100% free solution.