Administrate VS view_component

Compare Administrate vs view_component and see what are their differences.

Administrate

A Rails engine that helps you put together a super-flexible admin dashboard. (by thoughtbot)

view_component

A framework for building reusable, testable & encapsulated view components in Ruby on Rails. (by ViewComponent)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
Administrate view_component
11 74
5,799 3,139
0.5% 1.0%
8.9 9.0
6 days ago 6 days ago
JavaScript Ruby
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Administrate

Posts with mentions or reviews of Administrate. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-01.
  • The Admin Framework for Minimalist
    3 projects | dev.to | 1 Nov 2022
    thoughtbot/administrate is a well-known framework for administrative screen, but it's not developer friendly。I implement my own template files for Administrate, so when new Administrate version released, It is hard to update Administrate because template file is changed.**
  • Get help from thoughtbot for free (mentoring / office hours)
    4 projects | /r/ruby | 7 Jul 2022
    I work at thoughtbot, you might know us for our open source work like administrate, factory_bot or shoulda-matchers.
  • Show HN: Build Ruby on Rails apps 10x faster – Avo
    12 projects | news.ycombinator.com | 21 Jun 2022
    This looks very similar to Administrate by thoughtbot https://github.com/thoughtbot/administrate
  • From partials to ViewComponents: writing reusable front-end code in Rails
    11 projects | dev.to | 3 Jun 2022
    We briefly considered migrating to a full-grown Rails admin interface, such as ActiveAdmin, RailsAdmin, Administrate or Avo. We especially liked Avo which is built on a very modern stack similar to ours (Tailwind + Hotwire + ViewComponents). In the end, we didn’t go this route as we found some of the options a bit too restrictive (even though Avo is very flexible) and we did not feel like trying to amend it to our needs. For example, Avo renders forms in a 1-field-per-row layout while we wanted something more similar to the Tailwind UI Stacked form layout. Nevertheless, we found a great deal of inspiration in the Avo code and its design principles.
  • Rails administrate : big tutorial, bits of philosophy
    3 projects | dev.to | 28 Feb 2022
    We have already covered many use cases for customisation, everything else can be found in the official documentation.
    3 projects | dev.to | 28 Feb 2022
    You can also open in your browser, the official repository here, and the docs here, it will be helpful.
  • Admin Framework for Rails
    10 projects | /r/rails | 10 Nov 2021
    Administrate
  • 10 things I add to every Rails app
    9 projects | dev.to | 2 Oct 2021
    I usually tend to create these from Scratch, but moving forward I’ve started to use thoughtbot’s administrate gem. It sticks to the Rails conventions of controllers and routing, so it’s easy to customise and add new functionality to.
  • Rails Admin or Active Admin?
    4 projects | /r/rails | 28 Feb 2021
    Documentation https://administrate-demo.herokuapp.com/
    4 projects | /r/rails | 28 Feb 2021
    Repository https://github.com/thoughtbot/administrate

view_component

Posts with mentions or reviews of view_component. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-01.
  • Things I wish I knew before moving 50K lines of code to React Server Components
    7 projects | news.ycombinator.com | 1 Sep 2023
  • Have you been using ViewComponent. What advantages do you see in it?
    6 projects | /r/rails | 6 May 2023
  • Vanilla Rails view components with partials | Stanko K.R.
    2 projects | /r/ruby | 3 Apr 2023
    I used to do "pure ruby" approach to that -- but basically wound up realizing I was re-inventing github's view_component. Their design goals were similar enough to what I was trying to do, that it made more sense just to use that, rather than try to re-invent it myself.
  • Gnarly Learnings from March 2023
    6 projects | dev.to | 29 Mar 2023
    ViewComponent
  • Os benefícios de componentizar as views do Rails
    2 projects | dev.to | 27 Feb 2023
  • Does anyone kind of miss simpler webpages?
    6 projects | /r/webdev | 5 Feb 2023
    The linked one is my Rails implementation, written for ViewComponent. The official version uses Nunjucks.
  • I QUIT MY JOB
    3 projects | /r/Frontend | 16 Jan 2023
    In short, we migrated to ViewComponentViewComponent, opting for good ole Rails views, which allowed us to simplify the stack while retaining the benefits of the presenter pattern.
  • Rails 7 + Hotwire (Turbo + Stimulus) = Modern web applications
    4 projects | dev.to | 24 Nov 2022
    tl;dr; Let’s understand how we can migrate a scaffold generated by the command ‘bin/rails g scaffold Kit::Product name:string’, to an improved and performative screen. Inserting partial load and DOM manipulation writing a very little code in VanillaJS (“almost” without to write Javascript). Scaffold (Rails 7) Getting Started with Rails (https://guides.rubyonrails.org/getting_started.html#creating-a-new-rails-project-installing-rails) Generating the scaffold (https://guides.rubyonrails.org/command_line.html#bin-rails-generate): Using just one command you will generate all of these files: Model, Migration, Controllers, Routes, Tests, Helpers, and JSON. $ **bin/rails generate scaffold HighScore game:string score:integer** invoke active_record create db/migrate/20190416145729_create_high_scores.rb create app/models/high_score.rb invoke test_unit create test/models/high_score_test.rb create test/fixtures/high_scores.yml invoke resource_route route resources :high_scores invoke scaffold_controller create app/controllers/high_scores_controller.rb invoke erb create app/views/high_scores create app/views/high_scores/index.html.erb create app/views/high_scores/edit.html.erb create app/views/high_scores/show.html.erb create app/views/high_scores/new.html.erb create app/views/high_scores/_form.html.erb invoke test_unit create test/controllers/high_scores_controller_test.rb create test/system/high_scores_test.rb invoke helper create app/helpers/high_scores_helper.rb invoke test_unit invoke jbuilder create app/views/high_scores/index.json.jbuilder create app/views/high_scores/show.json.jbuilder create app/views/high_scores/_high_score.json.jbuilder Enter fullscreen mode Exit fullscreen mode After installing Rails, create your project, and generate your scaffold. Let's try to improve the default interface. I am using the Tailwind to insert styles on the interfaces and the ViewComponent for “creating reusable, testable & encapsulated view components, built to integrate seamlessly with Ruby on Rails”. You could see the resulting code at https://github.com/raphox/rails-7-fullstack. Turbo (heart of Hotwire) Hotwire is an alternative approach to building modern web applications without using much JavaScript by sending HTML instead of JSON over the wire. You can see the unique application’s screen in the following image. Yes, this project has just one screen. Let’s try to be simple to focus on the most important things. In this screen, we have two dynamic areas: List of products Form to create and edit the selected product I created a PR so you can see the exact part of the code that was changed or inserted to use the Hotwire on your project. You can see this PR on https://github.com/raphox/rails-7-fullstack/pull/1. The unique screen on the system has a few triggers to call actions or make requests. Plus button to access the ‘kit/products/new’ page Search input field Products links to access the product’s edit page Buttons to update, remove or create products based on the form’s fields data Using the Turbo, we can override the click event of the plus button to request the HTML of a new product form from the backend and put it in the ‘product_form’ area. You don’t need to write Javascript to override the events on your elements, just insert a new attribute ‘turbo_frame’ on your HTML tag. Like here: We can use the same approach of the plus button in the link of products and prevent reloading the entire screen HTML and assets. Now we need to use a little Javascript to insert the event ‘change’ to request a filtered list of products from the backend. In my code, I insert the ‘turbo_frame’ attribute into the form to change the submit action making the request using Turbo. In the next topic, we can see how to use the Stimulus and Javascript controllers to change the event ‘change’ of the input. Now we will need to submit the form and refresh the list of products. But we can do this better. We know that the updated list has changed on the created/updated product. So, we need to update the list with this product, instead refresh and query all the list of products from the database. To do this we need to use a lot of the Javascript code or a few actions from the Stimulus. You can see about the Javascript controller in the next topic. Stimulus (modest JavaScript framework) You won’t see any difference. But the code savings and ease of integration will help you a lot when inserting new features. The objective here is to insert an event on the search input form to make a request when the user changes the input’s value. When it occurs, the system will make a request to get all products filtered by the ‘name’ column. The result will be inserted into the list after it. To implement the Stimulus in our current project, we need to follow the following steps: 1. Insert the attribute ‘data-controller=”search-list”’ to the wrapper with the form and the list of the products (app/components/search_list_component.html.erb line 1). — This attribute is responsible to relate the following code to the DIV element. Get more info here https://stimulus.hotwired.dev/. — You can use the command ‘./bin/rails generate stimulus controllerName’ to generate the Javascript file with the class definition and import it in the ‘app/javascript/controllers/index.js’ automatically. 2. Insert the attribute ‘data-search_list_target=”inputSearch”’ to the form search field (app/components/search_list_form_component.html.erb line 2). 3. Insert the action (click->search-list#selectItem) to activate the currently selected product (app/components/search_list_item_component.rb lines 20). 4. Insert the attribute ‘search_list_target=”item”’ to each item of the product list (app/components/search_list_item_component.rb lines 21). I am using https://viewcomponent.org/ to define the view components instead to use a view or partial. Pay attention to this part https://viewcomponent.org/#performance. I really liked having this structure in my project: rails-7-fullstack/_list.html.erb at 11a479dafa5c84a1e769721d57792f39914a1204 ·… This approach is very similar to the React components or other Javascript Frameworks. I created a PR where you can see the exact part of the code I changed or inserted to use the Stimulus on my project. You can see this PR on https://github.com/raphox/rails-7-fullstack/pull/2.
  • Are utility classes horrible design or am I dumb?
    5 projects | /r/webdev | 18 Sep 2022
    Rails has view components. GitHub started the pattern years ago in their Rails app.
  • Can anyone recommend good, free component libraries for Tailwind?
    6 projects | /r/tailwindcss | 25 Aug 2022
    In Rails, I personally like to reuse a components and for that I use viewcomponents Gem (https://viewcomponent.org) My erb are still very verbose but I dont dupplicate the HTML.

What are some alternatives?

When comparing Administrate and view_component you can also consider the following projects:

ActiveAdmin - The administration framework for Ruby on Rails applications.

RailsAdmin - RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data

Trestle - A modern, responsive admin framework for Ruby on Rails

Avo - Build Ruby on Rails apps 10x faster

Upmin Admin - Framework for creating powerful admin backends with minimal effort in Ruby on Rails.

Stimulus - A modest JavaScript framework for the HTML you already have

turbo-rails - Use Turbo in your Ruby on Rails app

Godmin - Admin framework for Rails 5+

Tailwind CSS - A utility-first CSS framework for rapid UI development.

cypress-rails - Helps you write Cypress tests of your Rails app

hotwire-rails - Use Hotwire in your Ruby on Rails app

Wallaby - Autocomplete the resourceful actions and views for ORMs for admin interface and other purposes.