Framework
activeadmin/activeadmin avatar
activeadmin/activeadmin

Active Admin: the Rails admin framework built on a Ruby DSL

The administration framework for Ruby on Rails applications.

9,713 stars3,324 forksRubyMIT

At a glance

What is it?
Active Admin generates administration backends for Ruby on Rails applications from a per-resource DSL. It is a good fit for CRUD-heavy internal tools and a poor fit for teams that want to hand-build every screen.
Who is it for?
Adopt Active Admin when your application is a conventional Rails app with many models that need CRUD screens, filters, and authentication, and when you are willing to inherit its stack: Devise, Formtastic, Inherited Resources, Kaminari, Ransack, Arbre, and Tailwind CSS. Do not adopt it when you need a bespoke, heavily designed console, or when you cannot take those dependencies.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Ruby, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Active Admin actually removes from a Rails project

Every Rails application eventually grows an internal surface: a place where support staff look up an account, where operations edit a record, where an administrator deletes something. Hand-building that surface means writing controllers, index tables, filter forms, pagination, and an authentication gate for each model, and the work repeats with small variations.

Active Admin targets that repetition. Its stated goals are to let developers quickly create administration interfaces, to build a DSL for developers and an interface for businesses, and to make every part customizable. The audience is Rails developers building backends for other people to operate, not end-user-facing product teams. The repository describes it as "the administration framework for Ruby on Rails applications", and that framing is accurate: it is a framework layered on Rails, not a standalone application you deploy next to your code.

The architecture: a DSL, Arbre, and six inherited dependencies

Active Admin does not generate code you then edit. You write Ruby files under app/admin, and the framework turns them into routes, controllers, and views at boot. The README lists the projects it is built with, and each one maps to a layer of that pipeline: Arbre provides the Ruby object tree that renders HTML, Formtastic builds forms, Inherited Resources supplies the default RESTful controller actions, Kaminari handles pagination, Ransack powers search and filters, and Devise provides authentication. Tailwind CSS and Flowbite handle styling in the current line.

That is the real design decision to weigh. Active Admin is an integration of six other libraries with their own release cycles and configuration surfaces. In exchange you get a working admin for a new model in a few lines. The cost is that debugging a filter means knowing Ransack, and changing a form means knowing Formtastic. The repository keeps a UPGRADING.md at the top level, which tells you the maintainers treat version transitions as a documented, breaking-change-bearing process rather than a drop-in.

On the front end, package.json shows the gem shipping its own JavaScript: the npm package @activeadmin/activeadmin is versioned 4.0.0-beta23, builds through rollup, and depends on @rails/ujs 7.1.600 and flowbite 3.1.2. The package is published to npm as well as RubyGems, so the asset side has its own version number to track.

Installing the gem and defining a first admin resource

The README's getting-started section points to the documentation site at activeadmin.info rather than reproducing install steps. It also names the dependencies the framework is built with, and the npm side is visible in package.json, which declares the scripts "build", "lint", "docs:dev", "docs:build", and "docs:preview".

If you want to work on the JavaScript or documentation side of the project, those scripts are the entry points. The build script runs rollup with the repository's rollup.config.js:

bash
npm run build

The documentation site is served through VitePress, so the local preview uses the matching script:

bash
npm run docs:dev

On the Ruby side, the README directs developers to the documentation and the wiki for tutorials, articles, and sample projects rather than listing generator commands. The wiki is where the project points for a walkthrough of creating an admin interface, and activeadmin.info is the canonical reference. Treat those two as the starting point before you write anything under app/admin.

The npm package declares its entry point as dist/active_admin.js and ships dist/**/*.js, plugin.js, and vendor/javascript/*.js. That is what a Rails asset pipeline consumes when the gem's front-end assets are installed.

Where Active Admin is the wrong tool

The DSL is the limitation as much as the feature. Anything that does not look like a resource index, a form, or a show page has to be built as a custom page or fought through Arbre, and the result is Ruby that renders HTML through an object tree rather than a template you can hand to a designer. Teams that need a highly specific console, with custom charts, drag-and-drop workflows, or a component library already chosen by the front-end team, will spend more time working around the framework than using it.

The dependency surface is the second constraint. Devise, Formtastic, Inherited Resources, Kaminari, Ransack, Arbre, Tailwind CSS, and Flowbite all come along. If your application already uses a different authentication library, or if you have standardized on a different pagination or search gem, you are now maintaining two of each. Upgrading is also a project-level event: the repository carries an UPGRADING.md, and the current release line is a beta, so anyone tracking the newest code is on a preview tag rather than a stable one.

Finally, Active Admin assumes a conventional Rails application with ActiveRecord-style models. Applications with unusual persistence layers or non-standard routing will find the generated controllers harder to bend than to replace.

Active Admin compared with RailsAdmin and Administrate

The three Ruby admin gems differ mainly in where the definition lives. Active Admin puts it in Ruby files you write per resource, under app/admin, and gives you a DSL with filters, scopes, custom actions, and member actions. RailsAdmin takes the opposite approach: it reads your models and builds the interface automatically, which means less code to write and less control over each screen. Administrate sits between them, generating dashboard files you then edit as ordinary Rails code, with less magic at runtime and more explicit templates.

The practical difference shows up when requirements change. With Active Admin, adding a filter is a line in a DSL file. With RailsAdmin, you configure behavior rather than describe screens. With Administrate, you edit generated Ruby and ERB directly. None of these is strictly better; the choice is whether you want a framework to learn or code you own.

Active Admin's own ecosystem extends the DSL further. The related searches around activeadmin_addons and activeadmin themes point at community extensions and styling work, which exist because the core deliberately leaves customization to you.

Maintenance, licensing, and the cost of keeping up

The repository is not archived, and its last push was on 2026-09-21, so the project is being worked on now. The release history shows two tracks: v3.5.2 on 2026-07-13 as the stable line, and v4.0.0.beta23 on 2026-09-20 as the preview line. A beta with a high beta number is a sign of a long stabilization period, and it means the 4.0 API is still moving. If you need predictable upgrades, the 3.5 series is the conservative choice; if you need the Tailwind and Flowbite based asset pipeline, you are on the beta.

Licensing is straightforward. The gem is MIT, and package.json repeats the MIT identifier for the npm package. MIT permits commercial use and modification with the licence and copyright notice retained. That said, the README directs security reports to the Tidelift security contact rather than a GitHub advisory process, and Tidelift offers a paid enterprise subscription alongside Liberapay and Open Collective funding. None of that changes the licence terms, but it does mean the project's sustainability model leans on commercial subscribers. Read the LICENSE file for the exact text rather than treating this summary as legal advice.

The upgrade cost is the real budget line. UPGRADING.md exists at the repository root, and the major version transition from 3.x to 4.x touches assets, styling, and dependencies. Budget for reading that file before you start, not after.

Editorial conclusion

Adopt Active Admin when your application is a conventional Rails app with many models that need CRUD screens, filters, and authentication, and when you are willing to inherit its stack: Devise, Formtastic, Inherited Resources, Kaminari, Ransack, Arbre, and Tailwind CSS. Do not adopt it when you need a bespoke, heavily designed console, or when you cannot take those dependencies. Before committing, check the UPGRADING.md file in the repository for the migration path to the 4.0 line, confirm which release you are installing, since v4.0.0.beta23 is a beta and v3.5.2 is the latest stable tag, and verify that your Rails and Ruby versions are covered by the gemspec.

Frequently asked questions

What is Active Admin in Rails?

It is a Ruby on Rails framework for creating administration backends. You define each admin screen in a Ruby DSL under app/admin, and the framework turns those files into routes, controllers, and views.

How does Active Admin compare with Administrate?

Active Admin defines screens in a per-resource Ruby DSL, while Administrate generates dashboard files you then edit as ordinary Rails code. The trade-off is a framework to learn against code you own outright.

What are the alternatives to Active Admin?

The related searches name RailsAdmin and Administrate. RailsAdmin builds the interface automatically from your models, and Administrate generates editable dashboard code, so both differ from Active Admin's DSL-first approach.

Official sources

  1. activeadmin/activeadmin on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
For maintainers

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/activeadmin-activeadmin.svg)](https://hysenlabs.com/projects/activeadmin-activeadmin)
Community notes

Community notes