Forest Admin alternative · for Rails

Your Rails admin, in your codebase.
Not on a platform.

Forest Admin keeps your data on your servers, and that is a real strength. But the admin itself, its layout, fields, and configuration, lives in Forest's hosted editor. Avo is a Rails engine in your Gemfile, so the whole admin is Ruby you review in pull requests and deploy with the rest of your app.

Forest Admin

Your admin's UI, layout, and config

[ lives on their platform ]

Avo

Your admin's UI, layout, and config

[ lives in your repo ]

01

01 · credit where it's due

What Forest Admin gets right

Forest Admin is a serious product, and it solves a real problem well. If you are weighing it against Avo, start from what it does genuinely better than most hosted admin tools.

Your data stays on your side

Forest's agent (the forest_liana gem) runs inside your own app and generates an admin API on your servers. Records are read straight from your database to the browser, so your data does not transit Forest's servers. That is a meaningful advantage over admin tools that proxy everything through a vendor.

Non-developers can shape the UI

Layouts, fields, and views are arranged in Forest's web editor, so an ops or support lead can rearrange a screen without opening the codebase or waiting on a deploy. For some teams that is exactly the workflow they want.

It is not tied to one backend

Forest connects to Rails, but also to other frameworks and data sources. If you need a single admin over a mix of databases and services, that breadth is a real reason to pick it.

02

02 · the structural difference

The data path stays yours. The admin does not.

Here is the distinction worth being precise about. With Forest, your data path stays on your infrastructure, but the admin that reads it is a product hosted on Forest's platform. Your app exposes data through the agent gem; the interface, the layout, the fields, the segments, the dashboards, is configured in Forest's web editor and stored on their side. When someone on your team opens the admin, it fetches its UI configuration from Forest and your records from your app.

With Avo there is no other side. The admin is a Rails engine in your Gemfile, and every resource is a Ruby class in your repository. Nothing about it lives on a server you do not control. That single difference is what this whole page is about, and it is the same argument the homepage makes about the two apps every product ships: the internal tool should be part of your codebase, not a second system you rent and report to.

03

03 · the cost of a hosted admin

An admin your app reports to is an admin you don't fully control.

The agent keeps your data close, but the configuration that decides what your team can see and do lives somewhere your normal workflow can't reach.

01

Config outside your diff

A teammate changes which fields are visible or what an action does in a web UI. There is no pull request, no review, no line in git blame explaining why.

02

No clean rollback

A bad layout change is not a git revert. Your admin config and your app version drift apart, and undoing a change means clicking back through a UI.

03

A hosted frontend in the path

Your data may sit on your servers, but the tool your team opens every morning is hosted elsewhere. Its availability, and your access, depend on a service outside your stack.

04

Priced per person

Forest bills per user, last publicly listed at $60 per user per month (May 2026) and now quote-based. Every teammate who needs the admin is another seat on the invoice, so the cost scales with your headcount rather than your usage.

05

An agent to keep in step

The agent gem sits between your models and their UI. It is actively maintained, but it is still a dependency whose upgrades have to line up with the hosted platform.

06

Two systems, one team

Your app and your admin evolve on separate tracks with separate release flows, so the people who own both carry two mental models instead of one.

04

04 · where Avo comes in

With Avo, the admin is part of the app

Avo is a Rails engine you add to your Gemfile. Your resources, fields, actions, and permissions are Ruby classes that live in app/avo, right next to the rest of your code. That one fact changes how the whole admin behaves.

Reviewed and versioned like everything else

Admin config is committed to git, shows up in the diff, and goes through the same pull request review as your product code. You roll it back the way you roll back anything: revert and redeploy.

No external frontend to depend on

The entire admin is served by your own Rails app. There is no hosted editor and no vendor UI in the path, so the only thing that has to be up is your own infrastructure.

Per app, unlimited users

Avo 4 is priced per app with unlimited seats. Add your whole team, support, ops, finance, without watching the bill climb with every person you invite.

A real escape hatch

When you reach the edge of the DSL, you drop to plain Rails and ViewComponent in the same repository. No feature request, no waiting on a vendor roadmap.

A resource is just a class. This one gives you a full CRUD screen for your users, filtered, searchable, and ready to extend:

# app/avo/resources/user.rb
class Avo::Resources::User < Avo::BaseResource
  self.title = :name

  def fields
    field :id, as: :id
    field :name, as: :text
    field :email, as: :text
    field :plan, as: :select, options: { free: "Free", pro: "Pro" }
    field :created_at, as: :datetime, sortable: true
  end
end

That file is reviewed in a pull request and deployed with your app. Building your admin in your resource Index view and its fields is the whole configuration, in code you already know how to read. Already running a hosted admin? Here is how teams move their admin back into their codebase.

05

05 · side by side

Avo and Forest Admin, in one view

Same job, two different places for the admin to live. Here is where they diverge.

  Avo Forest Admin
Admin UI defined in
AvoRuby in your codebase
ForestForest's hosted layout editor
Configuration in git
AvoYes, versioned and diffable
ForestNo, stored on their platform
Reviewed in pull requests
AvoYes
ForestNo, changed in a web UI
External frontend required
AvoNone, served by your app
ForestYes, the admin UI is hosted by Forest
Where your data lives
AvoIn your app, no third party in the path
ForestOn your servers via the agent
Pricing model
AvoPer app, unlimited users
ForestPer user / per seat, last listed at $60 per user per month (May 2026)
Escape hatch
AvoPlain Rails and ViewComponent
ForestCustom code through the agent and API

If a hosted admin is what you are set on, it is worth reading the Retool comparison too, and the full list of Avo alternatives.

06 · when to pick Forest instead

When Forest Admin is the better fit

Avo is not the right answer for everyone, and pretending otherwise would waste your time. Reach for Forest Admin when:

Your backend isn't Rails, or you need one admin spanning several databases and services. Avo is built for Rails and ActiveRecord; Forest's reach across data sources is the point of it.

You want non-developers editing layouts in a UI, on their own, without a deploy. Avo config is code, which is a feature for engineering teams and a friction for teams that would rather not touch the repository.

You specifically want a managed, hosted admin and are happy to trade git-based configuration for that. That is a legitimate choice, just a different one from what Avo offers.

But if you are a Rails team that wants the admin to be code you own, review, and ship like the rest of your app, that is exactly what Avo is for.

Frequently asked questions

Is Avo a good Forest Admin alternative for Rails?
Yes. Both give a Rails team a working admin without building CRUD by hand. The difference is where the admin lives: Avo is a Rails engine in your Gemfile and its configuration is Ruby in your repository, while Forest Admin's UI and layout configuration live on Forest's hosted platform. See the full list of Avo alternatives for more comparisons.
Does my data pass through Avo's servers?
No. Avo runs entirely inside your Rails app as an engine, so there is no external service in the path between your team and your database. Forest Admin also keeps your data on your side through its in-app agent, but its admin frontend is hosted on Forest's platform, whereas Avo has no hosted component at all.
Does Avo have per-user pricing like Forest Admin?
No. Avo 4 is priced per app with unlimited users, while Forest Admin charges per user (per seat), last publicly listed at $60 per user per month in May 2026 and now quote-based. With Avo you can add your whole team, support, ops, and finance included, without the bill scaling with headcount.
Where does Avo store the admin configuration?
In your codebase. Each resource is a Ruby class in app/avo, so the configuration is versioned in git, reviewed in pull requests, and deployed with the rest of your app. Forest Admin's layout and UI configuration is edited in its web interface and stored on Forest's platform, outside your repository.
Do I need a hosted frontend to run Avo?
No. The entire admin is served by your own Rails application, so there is no external editor or vendor UI to depend on. The only thing that needs to be running is your own infrastructure, which also means the admin works on your infra end to end.
Can I customize Avo beyond what the DSL provides?
Yes. When you reach the edge of what Avo provides, you drop to plain Rails and ViewComponent inside the same repository, with no feature request to a vendor and no waiting on a roadmap. You can read more in the Avo resources documentation.
Is the avo gem actively used in production?
Yes. Avo powers the internal tools of 250+ paying companies, the gem has been downloaded more than 2.7 million times, and the project has around 1,800 GitHub stars. You can try it on the live demo apps before installing anything.

Make the admin yours

Put your Rails admin back in your codebase.

Start free, define your first resource in Ruby, and ship an admin you review and deploy like the rest of your app. No per-seat pricing, no hosted frontend to depend on.