This chapter collects all the official Folio generators and advanced hooks so you can customise the engine safely and keep your codebase maintainable.
The table below lists the generator namespaces found in lib/generators/folio/ and what they create.
| Generator | Command example | Purpose |
|---|---|---|
install |
rails generate folio:install |
Adds Folio to a Rails project, migrations & initializer |
atom |
rails generate folio:atom Text |
Creates a new CMS block (Atom) with model & component |
component |
rails generate folio:component Hero |
Creates a standalone ViewComponent |
console:scaffold |
rails generate folio:console:scaffold Article |
Admin console CRUD scaffold |
page_singleton |
rails generate folio:page_singleton ContactPage |
Singleton page model & admin config |
prepared_atom |
rails generate folio:prepared_atom all |
Atom pre-configured |
search |
rails generate folio:search |
Adds search controller and components |
traco |
rails generate folio:traco |
Enables Traco for Folio models such as Pages |
ui |
rails generate folio:ui Alert |
Lightweight UI component scaffold |
cell |
rails generate folio:cell LegacyWidget |
Legacy Trailblazer Cell (avoid for new code) |
blog |
rails generate folio:blog |
Adds complete blog functionality (articles + authors + topics) including models, controllers and components |
assets |
rails generate folio:assets |
Adds default SASS, JS & images |
pg_search_index_migration |
rails generate folio:pg_search_index_migration |
Adds indexes for pg_search |
Run rails generate without arguments to see all generators and options.
Folio follows the standard Rails engine override approach:
- Create a file in
app/overrides/mirroring the path you want to override. - Define your subclass or module patch.
- Rails autoloader will pick your version first.
Example overriding Folio::User validations:
# app/overrides/folio/user.rb
Folio::User.class_eval do
validates :nickname, uniqueness: true, allow_blank: true
endPlace configuration tweaks in config/initializers/folio.rb (generated by folio:install). Keep everything in one file to ease upgrades.
Refer to each generator's USAGE file for detailed options.