{
"handle": "case_studies",
"fields": [
{ "handle": "client",
"type": "text" },
{ "handle": "body",
"type": "rich_text" }
]
}
Content management, the Rails way
Give Rails an editor.
Plum is the conventional content layer for Rails. Mount it when you already have an application. Start with it when content is the application.
Open source · Self-hosted · SQLite and PostgreSQL
See the whole loop
Define it once. Edit it clearly. Render it anywhere.
A Plum content type becomes an editor for people and structured data for the Rails application. No API synchronization sits between them.
Editors get a focused place to work.
<h1>{{ entry.title }}</h1>
{{ entry.data.body }}From model to published page
Content management without leaving the framework.
Plum turns the Rails conventions you already trust into a complete editorial workflow.
Model
Define structured content with content types, familiar fields, relationships, taxonomies, and reusable blocks.
Edit
Give editors a focused Hotwire control panel backed by your database, storage, jobs, users, and authorization.
Render
Publish through portable Liquid themes, or expose managed content wherever the host Rails application needs it.
Not a second application
Your Rails app remains the source of truth.
Plum uses host identity and authorization, while content sources make application data available to editors and themes without copying it into another CMS.
Plum.configure do |config|
config.current_site_resolver = ->(_) { Current.account.plum_site }
config.current_user_resolver = ->(_) { Current.user }
config.register_content_source :products do |context|
context.owner.products.published
end
end
Start from either side
One content system, two natural Rails workflows.
Plum is an engine when content joins an application and a foundation when content comes first.
Existing application
Mount the engine. Keep the host's users, policies, routes, records, and deployment. Add only the editorial layer you need.
Content-first site
Begin with Rails, Plum, SQLite, and a theme. Add ordinary models and controllers when the site grows into an application.
Agency fleet
Run independent client sites as portable containers with separate SQLite databases, assets, domains, and backups on one VM.
Start building
Keep content in Rails.
Give editors what they need while keeping the application simple, portable, and entirely yours.
Read the getting-started guide