Skip to main content
100% open source MIT license, free forever

Build your next panel
with Lato

A Rails Engine that gives you a complete web application starter kit: authentication, user management and UI components, ready in minutes.

  • No paid tiers, no lock-in
  • MFA and passkeys built in
  • WCAG 2.2 AA audited
  • 4 languages
  • 5 official engines
Lato preview
Features

Everything you need to launch.
Nothing you have to rebuild.

Stop writing the same login, account page and data table for every project. Lato gives you the foundation, you focus on what makes your product unique.

Showcase

See it in action

Data tables, forms and account management, ready on day one.

Lato data table component

Index tables with search, sorting, pagination and custom columns

Lato form components

Forms with advanced inputs: autocomplete, lists, signatures, dropzone

Lato account management

Account management with email verification, password change and MFA

Lato authentication

Complete authentication flow, including Web3 wallet login

Accessibility

Accessible panels,
out of the box

Accessibility is quickly becoming a requirement, not a nice to have: the European Accessibility Act applies to many digital services since June 2025, and public tenders ask for it. With Lato, every screen you build already follows accessible patterns, so your team ships features instead of retrofitting them.

0
axe-core violations on WCAG 2.2 AA rules
18
pages audited: auth, account, tables, forms, modules
24px
minimum target size on every control
4
languages included: English, Italian, French, Romanian
What your users get
Labels, error messages and field state are linked, so screen readers announce what went wrong and where. No extra code in your forms.

Built in, no configuration needed

  • Labelled fields
  • Linked error messages
  • Keyboard friendly modals
  • Focus return
  • Skip link
  • Sortable tables with aria-sort
  • Live region notifications
  • Readable badge colors
  • Autofill and one-time-code hints
See the components

Automated audits catch many issues but do not prove full WCAG conformance. We recommend manual testing with assistive technologies for your application, especially if you customize colors.

Ecosystem

Grow with official engines

Add only what you need. Every engine plugs into the same panel, permissions and design.

Quick start

Installation

Up and running in a few minutes, in any Rails 8.1 application.

  1. Add Dependencies

    Add required dependencies to your application's Gemfile:

    # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
    gem "importmap-rails" # NOTE: Probably already installed in default Rails 8 project
    
    # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
    gem "turbo-rails" # NOTE: Probably already installed in default Rails 8 project
    
    # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
    gem "stimulus-rails" # NOTE: Probably already installed in default Rails 8 project
    
    # Use Sass to process CSS
    gem "sassc-rails"
    
    # Use lato as application panel
    gem "lato"

    Lato stores rate limits and verification codes in Rails.cache: use a persistent cache shared across processes (Redis, Solid Cache, Memcached). Wallet login (Web3) also requires gem "eth" in your Gemfile.

  2. Configure Asset Manifest

    If not already present, add app/assets/config/manifest.js file with the following content:

    //= link_tree ../images
    //= link_directory ../stylesheets .css
    //= link_tree ../../javascript .js
    //= link_tree ../../../vendor/javascript .js
  3. Install and Setup

    Install gem and run required tasks:

    $ bundle
    $ rails active_storage:install
    $ rails lato:install:application
    $ rails lato:install:migrations
    $ rails db:migrate
  4. Configure Routes

    Mount lato routes on the config/routes.rb file:

    Rails.application.routes.draw do
      mount Lato::Engine => "/lato"
    
      # ....
    end
  5. Import Styles

    Import Lato Scss on app/assets/stylesheets/application.scss file:

    @import 'lato/application';
    
    // ....
  6. Import JavaScript

    Import Lato Js on app/javascript/application.js file:

    import "lato/application";
    
    // ....
  7. Setup I18n

    Setup I18n on the config/application.rb file:

    module MyApplication
      class Application < Rails::Application
        config.i18n.available_locales = [:it, :en]
        config.i18n.default_locale = :it
    
        # ...
      end
    end

    Lato ships translations for it, en, fr and ro. Any key can be overridden in your application locale files. Emails are available in Italian and English (other locales receive English).

Ready to build better panels, faster?

Free and open source under the MIT license. Start with the tutorial and have your first panel running today.

You are offline You are online