Minor release

v3.17.0 - Media Library, new Markdown field & the Array Adapter

We are migrating from ActiveAdmin to Avo and both in terms of Developer experience and User experience, it is a game changer!

Adrien Poly
Adrien Poly
CTO, Plume
πŸ‘† Click to see the video πŸ‘†

Hey everyone πŸ‘‹
We've got quite a few things to show you today

Big changes

  • Media Library - This is a useful feature when handling a lot of content and you don't want any asset duplication. It's stable to use but still in very early stages of development. Looking forward to your feedback on GitHub - Docs
  • Array Adapter - This is such a powerful feature! It enables developers to interact with non-ActiveRecord much more easily. - Array resources and Array field
  • Shift+Select multiple records - This is a great little quality-of-life improvement. Just hold Shift and select two distant records on the table view.
  • Automatic field detection - This new feature enable you to have a ready-to-go admin panel without any predetermined configuration - Original issue
  • return_to param - Avo will follow this param when the user click on the back button or submits a form - Docs WIP
  • Floating row controls - Have the table row controls hover over the content for a smoother experience - Docs
  • Lazy-load tabs - Tabs can lazy-load now like they used to. Docs
  • New markdown editor based on Marksmith - New Rails editor and Avo field

Marksmith

Yesterday we released a new markdown editor for Rails. It's an engine that hooks in and has eveything you need to seamlessly edit and preview markdown content.

It supports ActiveStorage attachments, list continuation features, and plays nice with Avo's Media Library feature.

Check out the repo and try it out.

Tailwind 4 tryout

In parallel to this release we'll feature a .tw4 version which will have TailwindCSS v4.
We need to test it and ensure that everything still looks the same with v4 to v3.

In the next Avo version we'll switch completely to TailwindCSS v4.

We will post docs on how to do that in the following days. Check out the guide here.

See more on the release page.

Thanks for being awesome!
Adrian and Paul ✌️

Release notes: https://avohq.io/releases/3.17
Release video: https://youtu.be/wnWvzQyyo6A
Twitter: https://twitter.com/avo_hq
Repo: https://github.com/avo-hq/avo
Subscribe to Short Ruby Newsletter: https://shortruby.com/
Subscribe to SupeRails: https://www.superails.com
Subscribe to the Friendly.show: https://www.friendly.show
Friendly.rb: https://friendlyrb.com/

Release notes

More information and release video here

🎸 Features

  • feature: add automatic field detection in resources @ObiWanKeoni (#3516)
  • feature: media library/gallery @adrianthedev (#3561)
  • feature: array adapter @adrianthedev (#3469)
  • feature: shift select multiple records @adrianthedev (#3492 & avo-pro #99)

✨ Enhancements

  • enhancement: add saveButton stimulus target to save button @Paul-Bob (#3620)
  • enhancement: floating resource controls in table rows @adrianthedev (#3280)
  • enhancement: return-to attribute for easier navigation @adrianthedev (#3598)
  • enhancement: location field on preview & static option @Paul-Bob (#3602)
  • Add mapkick_options to location field @Nevelito (#3593)
  • Add disabled prop to ProfileItemComponent @julianrubisch (#3589)
  • enhancement: access to the query on all action blocks @Nevelito (#3581)
  • enhancement: remove requirement for attachment_key on trix fields when field is ActionText @Olli (#3567)
  • enhancement: display a label with the next action for the ordering button @enderahmetyurt (#3454)
  • enhancement: lazy_load on tabs @Paul-Bob (#3630)

πŸ› Bug Fixes

  • fix: has many record selection disables parent's actions @Paul-Bob (#3636)
  • Removed defer attribute from the avo.base.css stylesheet tag @iainbeeston (#3635)
  • fix: tailwind integration dependencies @Paul-Bob (#3634)
  • fix: don't check action's authorization on render if visible return false @Paul-Bob (#3628)
  • fix: tailwind integration @Paul-Bob (#3624)
  • fix: late-registration javascript tag @Paul-Bob (#3622)
  • fix: pass wrapper data on heading field @Paul-Bob (#3619)
  • fix: grid view item selector @Paul-Bob (#3613)
  • fix: strip data-controller attribute @adrianthedev (#3606)
  • fix: tags field in select mode @Paul-Bob (#3603)
  • fix: radio field on actions & improve accessibility @Paul-Bob (#3600)
  • fix: tags value on select mode @Paul-Bob (#3576)

πŸ€– Maintenance

  • chore: move media library menu entry @Paul-Bob (#3637)
  • chore: media library to expose path and URL @adrianthedev (#3627)
  • chore: media library and asset tweaks @adrianthedev (#3625)
  • chore: update actions/upload-artifact to v4 @Paul-Bob (#3621)
  • [ruby] Update all Bundler dependencies (2025-01-30) @depfu (#3618)
  • [js] Update all Yarn dependencies (2025-01-30) @depfu (#3617)
  • chore: register stimulus controllers from plugins @adrianthedev (#3608)
  • chore: add invalid license log notification. @adrianthedev (#3614)
  • chore: fix time flaky tests @Paul-Bob (#3612)
  • [ruby] Update all Bundler dependencies (2025-01-23) @depfu (#3605)
  • [ruby] Update all Bundler dependencies (2025-01-16) @depfu (#3588)
  • [js] Update all Yarn dependencies (2025-01-16) @depfu (#3587)
  • [js] Update all Yarn dependencies (2025-01-09) @depfu (#3578)
  • [js] Update all Yarn dependencies (2024-12-26) @depfu (#3556)
  • [ruby] Update all Bundler dependencies (2025-01-09) @depfu (#3577)
  • chore: actions flaky test @Paul-Bob (#3574)

πŸ’‘ Refactor

  • chore: rename markdown field to easy_mde @adrianthedev (#3599)
  • Fixed argument prefix warnings @iainbeeston (#3594)
  • refactor: fields mapping refactor @Paul-Bob (#3595)

For more information, check out Avo's release notes page