DEV Community

Royce
Royce

Posted on • Originally published at starterpick.com

Best Boilerplates for Internal Admin Dashboards in 2026

Admin Dashboards: Internal Tools That Matter

Every SaaS needs an admin dashboard. At minimum: manage users, view subscriptions, handle support requests, monitor system health. More advanced: impersonate users, manually trigger billing actions, manage feature flags, view analytics.

The question is whether to use a dedicated admin framework or add admin features to your main SaaS boilerplate.

Quick Comparison

Tool Approach Customizable CRUD Charts Auth Best For
Refine Code-first admin ✅✅✅ ✅ Auto Custom admin apps
Avo Declarative (Rails) ✅✅ ✅ Auto With Devise Rails SaaS admin
Makerkit Admin Built-in Manual Basic Built-in If using Makerkit
SaaSrock Admin Built-in Auto Built-in If using SaaSrock
Retool No-code ⚠️ ✅ Auto Built-in Quick internal tools

Refine — Best Custom Admin App

Price: Free | Creator: Refine team

The most powerful open source admin framework for React. Connects to any backend (REST, GraphQL, Supabase, Prisma, Firebase), generates list/show/edit/create views, includes filtering, sorting, pagination, and authentication. Not opinionated about UI — works with Ant Design, Material UI, shadcn/ui, or Tailwind.


// Auto-generated CRUD for any resource
const App = () => (
  <Refine
    dataProvider={dataProvider("https://api.example.com")}
    resources={[
      {
        name: "users",
        list: "/users",
        edit: "/users/:id/edit",
        show: "/users/:id",
      },
      {
        name: "subscriptions",
        list: "/subscriptions",
        show: "/subscriptions/:id",
      },
    ]}
  >
    {/* Routes auto-generate list/show/edit pages */}
);
Enter fullscreen mode Exit fullscreen mode

Choose if: You're building a custom internal tool or admin interface with complex requirements.

Avo — Best Rails Admin

# Rails: declarative resource = auto-generated CRUD
class Avo::Resources::User < Avo::BaseResource
  def fields
    field :id, as: :id
    field :name, as: :text
    field :email, as: :text
    field :plan, as: :badge, options: { free: :info, pro: :success, enterprise: :warning }
    field :created_at, as: :date_time, format: '%Y-%m-%d', sortable: true

    field :subscription, as: :has_one
    field :invoices, as: :has_many
  end

  def actions
    action Avo::Actions::ImpersonateUser
    action Avo::Actions::SendPasswordReset
  end
end
Enter fullscreen mode Exit fullscreen mode

This generates index page, show page, edit form, search, filters, and actions — entirely from the resource definition.

Choose if: Your SaaS is on Rails and you want the fastest admin panel setup.

What a Good Admin Dashboard Includes

User management:

  • [ ] Search/filter users by email, plan, date
  • [ ] View user profile, subscription status, usage
  • [ ] Impersonate user (see their view)
  • [ ] Manually change subscription plan
  • [ ] Suspend/unsuspend account
  • [ ] Export user data (GDPR compliance)

Billing management:

  • [ ] View Stripe subscription status
  • [ ] Apply manual credits or discounts
  • [ ] View invoice history
  • [ ] Handle failed payment alerts

System health:

  • [ ] Error rate monitoring
  • [ ] Background job queue status
  • [ ] Database connection pool
  • [ ] Cache hit rate

Analytics:

  • [ ] New signups per day/week/month
  • [ ] Churn rate
  • [ ] MRR trend
  • [ ] Feature usage

Compare admin dashboard and SaaS boilerplates on StarterPick.

Top comments (0)