Skip to content

PlutoniumShip Rails Apps 10x Faster

Build production-ready Rails applications in minutes, not days. Convention-driven, fully customizable. Built for the AI era.

Plutonium

The Old Way vs The Plutonium Way

Without Plutonium

app/controllers/posts_controller.rb
app/controllers/comments_controller.rb
app/views/posts/index.html.erb
app/views/posts/show.html.erb
app/views/posts/new.html.erb
app/views/posts/edit.html.erb
app/views/posts/_form.html.erb
...12 more files
~200 lines30+ minutesNo auth yet

With Plutonium

bash
rails g pu:res:scaffold Post \
  title:string body:text

rails g pu:res:conn Post \
  --dest=admin_portal
2 commands30 secondsAuth included

Built for the AI Era

Plutonium is the first Rails framework designed from the ground up for AI-assisted development. Every pattern, every convention, every file structure is optimized for AI comprehension.

🧠

Claude Code Skills

20+ built-in skills teach AI assistants your app's patterns. Resources, policies, definitions, interactions - Claude understands them all.

Predictable Patterns

Convention-heavy architecture means AI can accurately predict file locations, naming, and relationships. Less hallucination, more precision.

🔄

Generate & Iterate

Tell Claude what you need. It generates the scaffold, policy, and definition. You refine. Ship in minutes what used to take hours.

You say:

"Add a blog with posts and comments. Posts belong to users. Only authors can edit their posts. Add a publish action."

Claude generates:

Model, migration, policy, definition, interaction, and connects it to your portal. Ready to customize.

Everything You Need, Nothing You Don't

Resources Are Your Foundation

Just ActiveRecord. Associations, scopes, validations you already know. No new ORM to learn.

ruby
class Post < ApplicationRecord
  include Plutonium::Resource::Record

  belongs_to :author, class_name: "User"
  has_many :comments

  scope :published, -> { where.not(published_at: nil) }
  scope :drafts, -> { where(published_at: nil) }
end

Definitions Control UI

Declare how fields render. Add search, filters, scopes. Custom actions. All in one place.

ruby
class PostDefinition < ResourceDefinition
  input :body, as: :markdown

  search do |scope, query|
    scope.where("title ILIKE ?", "%#{query}%")
  end

  scope :published
  scope :drafts

  action :publish, interaction: PublishPost
end

Interactions Encapsulate Logic

Complex actions become simple classes. Validated inputs. Clear outcomes. Easy to test.

ruby
class PublishPost < ResourceInteraction
  attribute :resource
  attribute :publish_at, :datetime

  def execute
    resource.published_at = publish_at
    if resource.save
      succeed(resource).with_message("Published!")
    else
      failed(resource.errors)
    end
  end
end

Policies Control Access

Define who can do what. Attribute-level permissions. Automatic scoping. No more if current_user.admin? scattered everywhere.

ruby
class PostPolicy < ResourcePolicy
  def update?
    record.author == user || user.admin?
  end

  def permitted_attributes_for_create
    %i[title body]
  end
end
📦

Modular Packages

Split your app into Feature Packages and Portals. Each isolated, testable, and reusable.

🔐

Auth Built In

Rodauth integration with login, registration, 2FA, and password reset. Ready in one command.

🏢

Multi-Tenancy

Entity scoping works out of the box. Path-based or custom strategies. Data isolation guaranteed.

🎨

Fully Customizable

Override any layer. Custom views with Phlex. Your CSS. No black boxes.

Ready to Build Faster?

Get a complete admin interface running in under 5 minutes.

Released under the MIT License.