plutonium 0.50.0 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.claude/skills/plutonium/SKILL.md +85 -102
- data/.claude/skills/plutonium-app/SKILL.md +572 -0
- data/.claude/skills/plutonium-auth/SKILL.md +163 -300
- data/.claude/skills/plutonium-behavior/SKILL.md +838 -0
- data/.claude/skills/plutonium-resource/SKILL.md +1176 -0
- data/.claude/skills/plutonium-tenancy/SKILL.md +655 -0
- data/.claude/skills/plutonium-testing/SKILL.md +6 -5
- data/.claude/skills/plutonium-ui/SKILL.md +900 -0
- data/CHANGELOG.md +27 -2
- data/Rakefile +2 -1
- data/app/assets/plutonium.css +1 -11
- data/app/assets/plutonium.js +1009 -1214
- data/app/assets/plutonium.js.map +3 -3
- data/app/assets/plutonium.min.js +52 -51
- data/app/assets/plutonium.min.js.map +3 -3
- data/docs/.vitepress/config.ts +37 -27
- data/docs/getting-started/index.md +22 -29
- data/docs/getting-started/installation.md +37 -80
- data/docs/getting-started/tutorial/index.md +4 -5
- data/docs/guides/adding-resources.md +66 -377
- data/docs/guides/authentication.md +94 -463
- data/docs/guides/authorization.md +124 -370
- data/docs/guides/creating-packages.md +94 -296
- data/docs/guides/custom-actions.md +121 -441
- data/docs/guides/index.md +22 -42
- data/docs/guides/multi-tenancy.md +116 -187
- data/docs/guides/nested-resources.md +103 -431
- data/docs/guides/search-filtering.md +123 -240
- data/docs/guides/testing.md +5 -4
- data/docs/guides/theming.md +157 -407
- data/docs/guides/troubleshooting.md +5 -3
- data/docs/guides/user-invites.md +106 -425
- data/docs/guides/user-profile.md +76 -243
- data/docs/index.md +1 -1
- data/docs/reference/app/generators.md +517 -0
- data/docs/reference/app/index.md +158 -0
- data/docs/reference/app/packages.md +146 -0
- data/docs/reference/app/portals.md +377 -0
- data/docs/reference/auth/accounts.md +230 -0
- data/docs/reference/auth/index.md +88 -0
- data/docs/reference/auth/profile.md +185 -0
- data/docs/reference/behavior/controllers.md +395 -0
- data/docs/reference/behavior/index.md +22 -0
- data/docs/reference/behavior/interactions.md +341 -0
- data/docs/reference/behavior/policies.md +417 -0
- data/docs/reference/index.md +56 -49
- data/docs/reference/resource/actions.md +423 -0
- data/docs/reference/resource/definition.md +508 -0
- data/docs/reference/resource/index.md +50 -0
- data/docs/reference/resource/model.md +348 -0
- data/docs/reference/resource/query.md +305 -0
- data/docs/reference/tenancy/entity-scoping.md +361 -0
- data/docs/reference/tenancy/index.md +36 -0
- data/docs/reference/tenancy/invites.md +393 -0
- data/docs/reference/tenancy/nested-resources.md +267 -0
- data/docs/reference/testing/index.md +287 -0
- data/docs/reference/ui/assets.md +400 -0
- data/docs/reference/ui/components.md +165 -0
- data/docs/reference/ui/displays.md +104 -0
- data/docs/reference/ui/forms.md +284 -0
- data/docs/reference/ui/index.md +30 -0
- data/docs/reference/ui/layouts.md +106 -0
- data/docs/reference/ui/pages.md +189 -0
- data/docs/reference/ui/tables.md +117 -0
- data/docs/superpowers/specs/2026-05-09-typeahead-endpoint-design.md +203 -0
- data/docs/superpowers/specs/2026-05-12-skill-compaction-design.md +99 -0
- data/docs/superpowers/specs/2026-05-13-docs-restructure-design.md +186 -0
- data/gemfiles/rails_7.gemfile.lock +1 -1
- data/gemfiles/rails_8.0.gemfile.lock +1 -1
- data/gemfiles/rails_8.1.gemfile.lock +1 -1
- data/lib/generators/pu/core/update/update_generator.rb +0 -20
- data/lib/generators/pu/invites/install_generator.rb +1 -0
- data/lib/plutonium/definition/base.rb +1 -1
- data/lib/plutonium/definition/{views.rb → index_views.rb} +21 -20
- data/lib/plutonium/helpers/turbo_helper.rb +11 -0
- data/lib/plutonium/helpers/turbo_stream_actions_helper.rb +14 -0
- data/lib/plutonium/resource/controller.rb +1 -0
- data/lib/plutonium/resource/controllers/crud_actions.rb +19 -1
- data/lib/plutonium/resource/controllers/typeahead.rb +180 -0
- data/lib/plutonium/resource/policy.rb +7 -0
- data/lib/plutonium/routing/mapper_extensions.rb +15 -0
- data/lib/plutonium/ui/component/methods.rb +4 -0
- data/lib/plutonium/ui/form/base.rb +6 -2
- data/lib/plutonium/ui/form/components/json.rb +58 -0
- data/lib/plutonium/ui/form/components/resource_select.rb +62 -8
- data/lib/plutonium/ui/form/components/secure_association.rb +98 -22
- data/lib/plutonium/ui/form/concerns/typeahead_attributes.rb +83 -0
- data/lib/plutonium/ui/form/resource.rb +0 -4
- data/lib/plutonium/ui/grid/resource.rb +1 -1
- data/lib/plutonium/ui/layout/base.rb +1 -0
- data/lib/plutonium/ui/page/base.rb +0 -7
- data/lib/plutonium/ui/page/index.rb +4 -4
- data/lib/plutonium/ui/table/resource.rb +1 -1
- data/lib/plutonium/version.rb +1 -1
- data/lib/plutonium.rb +8 -0
- data/lib/tasks/release.rake +15 -1
- data/package.json +10 -10
- data/src/css/slim_select.css +4 -0
- data/src/js/controllers/slim_select_controller.js +61 -0
- data/src/js/turbo/turbo_actions.js +33 -0
- data/yarn.lock +553 -543
- metadata +44 -33
- data/.claude/skills/plutonium-assets/SKILL.md +0 -512
- data/.claude/skills/plutonium-controller/SKILL.md +0 -396
- data/.claude/skills/plutonium-create-resource/SKILL.md +0 -303
- data/.claude/skills/plutonium-definition/SKILL.md +0 -1223
- data/.claude/skills/plutonium-entity-scoping/SKILL.md +0 -317
- data/.claude/skills/plutonium-forms/SKILL.md +0 -465
- data/.claude/skills/plutonium-installation/SKILL.md +0 -331
- data/.claude/skills/plutonium-interaction/SKILL.md +0 -413
- data/.claude/skills/plutonium-invites/SKILL.md +0 -408
- data/.claude/skills/plutonium-model/SKILL.md +0 -440
- data/.claude/skills/plutonium-nested-resources/SKILL.md +0 -360
- data/.claude/skills/plutonium-package/SKILL.md +0 -198
- data/.claude/skills/plutonium-policy/SKILL.md +0 -456
- data/.claude/skills/plutonium-portal/SKILL.md +0 -410
- data/.claude/skills/plutonium-views/SKILL.md +0 -651
- data/docs/reference/assets/index.md +0 -496
- data/docs/reference/controller/index.md +0 -412
- data/docs/reference/definition/actions.md +0 -462
- data/docs/reference/definition/fields.md +0 -383
- data/docs/reference/definition/index.md +0 -326
- data/docs/reference/definition/query.md +0 -351
- data/docs/reference/generators/index.md +0 -648
- data/docs/reference/interaction/index.md +0 -449
- data/docs/reference/model/features.md +0 -248
- data/docs/reference/model/index.md +0 -218
- data/docs/reference/policy/index.md +0 -456
- data/docs/reference/portal/index.md +0 -379
- data/docs/reference/views/forms.md +0 -411
- data/docs/reference/views/index.md +0 -544
data/docs/.vitepress/config.ts
CHANGED
|
@@ -21,6 +21,7 @@ export default defineConfig(withMermaid({
|
|
|
21
21
|
["meta", { name: "twitter:image", content: "https://radioactive-labs.github.io/plutonium-core/og-image.png" }],
|
|
22
22
|
],
|
|
23
23
|
ignoreDeadLinks: 'localhostLinks',
|
|
24
|
+
srcExclude: ['superpowers/**'],
|
|
24
25
|
themeConfig: {
|
|
25
26
|
// https://vitepress.dev/reference/default-theme-config
|
|
26
27
|
logo: "/plutonium.png",
|
|
@@ -111,65 +112,74 @@ export default defineConfig(withMermaid({
|
|
|
111
112
|
]
|
|
112
113
|
},
|
|
113
114
|
{
|
|
114
|
-
text: "
|
|
115
|
+
text: "App",
|
|
115
116
|
collapsed: false,
|
|
116
117
|
items: [
|
|
117
|
-
{ text: "
|
|
118
|
-
{ text: "
|
|
118
|
+
{ text: "Overview", link: "/reference/app/" },
|
|
119
|
+
{ text: "Packages", link: "/reference/app/packages" },
|
|
120
|
+
{ text: "Portals", link: "/reference/app/portals" },
|
|
121
|
+
{ text: "Generators", link: "/reference/app/generators" },
|
|
119
122
|
]
|
|
120
123
|
},
|
|
121
124
|
{
|
|
122
|
-
text: "
|
|
125
|
+
text: "Resource",
|
|
123
126
|
collapsed: false,
|
|
124
127
|
items: [
|
|
125
|
-
{ text: "
|
|
126
|
-
{ text: "
|
|
127
|
-
{ text: "
|
|
128
|
-
{ text: "Query", link: "/reference/
|
|
128
|
+
{ text: "Overview", link: "/reference/resource/" },
|
|
129
|
+
{ text: "Model", link: "/reference/resource/model" },
|
|
130
|
+
{ text: "Definition", link: "/reference/resource/definition" },
|
|
131
|
+
{ text: "Query", link: "/reference/resource/query" },
|
|
132
|
+
{ text: "Actions", link: "/reference/resource/actions" },
|
|
129
133
|
]
|
|
130
134
|
},
|
|
131
135
|
{
|
|
132
|
-
text: "
|
|
136
|
+
text: "Behavior",
|
|
133
137
|
collapsed: false,
|
|
134
138
|
items: [
|
|
135
|
-
{ text: "
|
|
139
|
+
{ text: "Overview", link: "/reference/behavior/" },
|
|
140
|
+
{ text: "Controllers", link: "/reference/behavior/controllers" },
|
|
141
|
+
{ text: "Policies", link: "/reference/behavior/policies" },
|
|
142
|
+
{ text: "Interactions", link: "/reference/behavior/interactions" },
|
|
136
143
|
]
|
|
137
144
|
},
|
|
138
145
|
{
|
|
139
|
-
text: "
|
|
146
|
+
text: "UI",
|
|
140
147
|
collapsed: false,
|
|
141
148
|
items: [
|
|
142
|
-
{ text: "
|
|
149
|
+
{ text: "Overview", link: "/reference/ui/" },
|
|
150
|
+
{ text: "Pages", link: "/reference/ui/pages" },
|
|
151
|
+
{ text: "Forms", link: "/reference/ui/forms" },
|
|
152
|
+
{ text: "Displays", link: "/reference/ui/displays" },
|
|
153
|
+
{ text: "Tables", link: "/reference/ui/tables" },
|
|
154
|
+
{ text: "Components", link: "/reference/ui/components" },
|
|
155
|
+
{ text: "Layouts", link: "/reference/ui/layouts" },
|
|
156
|
+
{ text: "Assets", link: "/reference/ui/assets" },
|
|
143
157
|
]
|
|
144
158
|
},
|
|
145
159
|
{
|
|
146
|
-
text: "
|
|
147
|
-
collapsed: false,
|
|
148
|
-
items: [
|
|
149
|
-
{ text: "Interaction", link: "/reference/interaction/" },
|
|
150
|
-
]
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
text: "Views",
|
|
160
|
+
text: "Auth",
|
|
154
161
|
collapsed: false,
|
|
155
162
|
items: [
|
|
156
|
-
{ text: "
|
|
157
|
-
{ text: "
|
|
163
|
+
{ text: "Overview", link: "/reference/auth/" },
|
|
164
|
+
{ text: "Accounts", link: "/reference/auth/accounts" },
|
|
165
|
+
{ text: "Profile", link: "/reference/auth/profile" },
|
|
158
166
|
]
|
|
159
167
|
},
|
|
160
168
|
{
|
|
161
|
-
text: "
|
|
169
|
+
text: "Tenancy",
|
|
162
170
|
collapsed: false,
|
|
163
171
|
items: [
|
|
164
|
-
{ text: "
|
|
172
|
+
{ text: "Overview", link: "/reference/tenancy/" },
|
|
173
|
+
{ text: "Entity scoping", link: "/reference/tenancy/entity-scoping" },
|
|
174
|
+
{ text: "Nested resources", link: "/reference/tenancy/nested-resources" },
|
|
175
|
+
{ text: "Invites", link: "/reference/tenancy/invites" },
|
|
165
176
|
]
|
|
166
177
|
},
|
|
167
178
|
{
|
|
168
|
-
text: "
|
|
179
|
+
text: "Testing",
|
|
169
180
|
collapsed: false,
|
|
170
181
|
items: [
|
|
171
|
-
{ text: "
|
|
172
|
-
{ text: "Portal", link: "/reference/portal/" },
|
|
182
|
+
{ text: "Overview", link: "/reference/testing/" },
|
|
173
183
|
]
|
|
174
184
|
}
|
|
175
185
|
],
|
|
@@ -1,57 +1,50 @@
|
|
|
1
1
|
# Getting Started
|
|
2
2
|
|
|
3
|
-
Welcome to Plutonium
|
|
4
|
-
|
|
5
|
-
## What You'll Learn
|
|
6
|
-
|
|
7
|
-
- How to install Plutonium in a new or existing Rails application
|
|
8
|
-
- The basic concepts behind Plutonium's architecture
|
|
9
|
-
- How to create your first resource and connect it to a portal
|
|
3
|
+
Welcome to Plutonium.
|
|
10
4
|
|
|
11
5
|
## Prerequisites
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- **Ruby 3.2+** installed
|
|
7
|
+
- **Ruby 3.2+**
|
|
16
8
|
- **Rails 7.2+** (Rails 8 recommended)
|
|
17
9
|
- **Node.js 18+** (for asset compilation)
|
|
18
10
|
- Basic familiarity with Ruby on Rails
|
|
19
11
|
|
|
20
|
-
##
|
|
12
|
+
## Pick your starting point
|
|
21
13
|
|
|
22
|
-
### New
|
|
14
|
+
### New Rails app
|
|
23
15
|
|
|
24
|
-
|
|
16
|
+
The fastest way — use the application template:
|
|
25
17
|
|
|
26
18
|
```bash
|
|
27
19
|
rails new myapp -a propshaft -j esbuild -c tailwind \
|
|
28
20
|
-m https://radioactive-labs.github.io/plutonium-core/templates/plutonium.rb
|
|
29
21
|
```
|
|
30
22
|
|
|
31
|
-
This
|
|
23
|
+
This sets up Rails + Propshaft + esbuild + TailwindCSS + Plutonium in one shot, with Rodauth ready to go.
|
|
32
24
|
|
|
33
|
-
[
|
|
25
|
+
[→ Installation](./installation)
|
|
34
26
|
|
|
35
|
-
### Existing
|
|
27
|
+
### Existing Rails app
|
|
36
28
|
|
|
37
|
-
|
|
29
|
+
For pre-existing apps, use `base.rb` (not `plutonium.rb` — that one runs full app bootstrap and clobbers history):
|
|
38
30
|
|
|
39
|
-
|
|
31
|
+
```bash
|
|
32
|
+
bin/rails app:template \
|
|
33
|
+
LOCATION=https://radioactive-labs.github.io/plutonium-core/templates/base.rb
|
|
34
|
+
```
|
|
40
35
|
|
|
41
|
-
|
|
36
|
+
[→ Installation › Existing app](./installation#existing-application)
|
|
42
37
|
|
|
43
|
-
|
|
38
|
+
### Tutorial
|
|
44
39
|
|
|
45
|
-
|
|
40
|
+
Want to learn by building? The [8-step tutorial](./tutorial/) walks through a complete blog app — auth, authorization, custom actions, nested resources, multi-portal.
|
|
46
41
|
|
|
47
|
-
|
|
42
|
+
[→ Tutorial](./tutorial/)
|
|
48
43
|
|
|
49
|
-
After installation
|
|
44
|
+
## After installation
|
|
50
45
|
|
|
51
|
-
1. **Create
|
|
52
|
-
2. **
|
|
53
|
-
3. **
|
|
54
|
-
4. **Connect Resources** - Make resources accessible through the portal
|
|
55
|
-
5. **Customize** - Override defaults as needed
|
|
46
|
+
1. **Create resources** with `pu:res:scaffold` (see [Adding resources](/guides/adding-resources))
|
|
47
|
+
2. **Connect them to a portal** with `pu:res:conn`
|
|
48
|
+
3. **Customize** the definition, policy, controller as needed
|
|
56
49
|
|
|
57
|
-
|
|
50
|
+
Reference for each layer: [App](/reference/app/), [Resource](/reference/resource/), [Behavior](/reference/behavior/), [UI](/reference/ui/), [Auth](/reference/auth/), [Tenancy](/reference/tenancy/), [Testing](/reference/testing/).
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
# Installation
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
For full installation reference (configuration options, base classes, what `pu:core:install` creates), see [Reference › App](/reference/app/). This page covers the quickest path.
|
|
4
4
|
|
|
5
|
-
## New
|
|
6
|
-
|
|
7
|
-
The fastest way to get started is with our application template:
|
|
5
|
+
## New application
|
|
8
6
|
|
|
9
7
|
```bash
|
|
10
8
|
rails new myapp -a propshaft -j esbuild -c tailwind \
|
|
11
9
|
-m https://radioactive-labs.github.io/plutonium-core/templates/plutonium.rb
|
|
12
10
|
```
|
|
13
11
|
|
|
14
|
-
This
|
|
15
|
-
- Adds the Plutonium gem
|
|
16
|
-
- Configures TailwindCSS 4 with Plutonium's theme
|
|
17
|
-
- Sets up Rodauth for authentication
|
|
18
|
-
- Creates initial migrations
|
|
19
|
-
- Configures the asset pipeline
|
|
12
|
+
This sets up Rails with Propshaft, esbuild, TailwindCSS, and Plutonium — plus Rodauth auth, asset pipeline, and initial migrations.
|
|
20
13
|
|
|
21
14
|
After the template completes:
|
|
22
15
|
|
|
@@ -26,122 +19,86 @@ rails db:migrate
|
|
|
26
19
|
bin/dev
|
|
27
20
|
```
|
|
28
21
|
|
|
29
|
-
Visit `http://localhost:3000
|
|
22
|
+
Visit `http://localhost:3000`.
|
|
30
23
|
|
|
31
|
-
## Existing
|
|
24
|
+
## Existing application
|
|
32
25
|
|
|
33
|
-
|
|
26
|
+
::: danger Use `base.rb`, not `plutonium.rb`
|
|
27
|
+
The `plutonium.rb` template re-runs full app bootstrap (dotenv, annotate, solid_*, asset config) and creates generic "initial commit" commits that clobber history. For any pre-existing app, always use `base.rb`.
|
|
28
|
+
:::
|
|
34
29
|
|
|
35
|
-
|
|
30
|
+
### Option 1: Template
|
|
36
31
|
|
|
37
|
-
```
|
|
38
|
-
|
|
32
|
+
```bash
|
|
33
|
+
bin/rails app:template \
|
|
34
|
+
LOCATION=https://radioactive-labs.github.io/plutonium-core/templates/base.rb
|
|
39
35
|
```
|
|
40
36
|
|
|
41
|
-
|
|
37
|
+
### Option 2: Manual
|
|
42
38
|
|
|
43
|
-
```
|
|
44
|
-
|
|
39
|
+
```ruby
|
|
40
|
+
# Gemfile
|
|
41
|
+
gem "plutonium"
|
|
45
42
|
```
|
|
46
43
|
|
|
47
|
-
### Step 2: Run the Installer
|
|
48
|
-
|
|
49
44
|
```bash
|
|
45
|
+
bundle install
|
|
50
46
|
rails generate pu:core:install
|
|
51
47
|
```
|
|
52
48
|
|
|
53
|
-
|
|
54
|
-
- Creates the Plutonium initializer
|
|
55
|
-
- Adds required configurations
|
|
56
|
-
- Sets up the asset pipeline integration
|
|
57
|
-
|
|
58
|
-
### Step 3: Install Rodauth (Optional)
|
|
59
|
-
|
|
60
|
-
If you want Plutonium's built-in authentication:
|
|
49
|
+
## Optional: authentication
|
|
61
50
|
|
|
62
51
|
```bash
|
|
63
52
|
rails generate pu:rodauth:install
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
This creates:
|
|
67
|
-
- Rodauth configuration files
|
|
68
|
-
- Account model and migrations
|
|
69
|
-
- Email templates for authentication flows
|
|
70
|
-
|
|
71
|
-
### Step 4: Run Migrations
|
|
72
|
-
|
|
73
|
-
```bash
|
|
53
|
+
rails generate pu:rodauth:account user
|
|
74
54
|
rails db:migrate
|
|
75
55
|
```
|
|
76
56
|
|
|
77
|
-
|
|
57
|
+
For account options and customization, see [Reference › Auth](/reference/auth/) and [Guides › Authentication](/guides/authentication).
|
|
78
58
|
|
|
79
|
-
|
|
59
|
+
## Optional: assets toolchain
|
|
80
60
|
|
|
81
61
|
```bash
|
|
82
62
|
rails generate pu:core:assets
|
|
83
63
|
```
|
|
84
64
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
## Verifying Installation
|
|
65
|
+
Installs npm packages, creates `tailwind.config.js` extending Plutonium's config, imports Plutonium CSS, registers Stimulus controllers. Required if you want to customize the theme — see [Reference › UI › Assets](/reference/ui/assets) and [Guides › Theming](/guides/theming).
|
|
88
66
|
|
|
89
|
-
|
|
67
|
+
## Verify
|
|
90
68
|
|
|
91
69
|
```bash
|
|
92
70
|
rails runner "puts Plutonium::VERSION"
|
|
93
71
|
```
|
|
94
72
|
|
|
95
|
-
You should see the installed version number.
|
|
96
|
-
|
|
97
73
|
## Configuration
|
|
98
74
|
|
|
99
|
-
Plutonium is configured in `config/initializers/plutonium.rb`:
|
|
100
|
-
|
|
101
75
|
```ruby
|
|
76
|
+
# config/initializers/plutonium.rb
|
|
102
77
|
Plutonium.configure do |config|
|
|
103
|
-
# Load default settings for version 1.0
|
|
104
78
|
config.load_defaults 1.0
|
|
105
79
|
|
|
106
|
-
#
|
|
107
|
-
# config.development = true
|
|
108
|
-
|
|
109
|
-
# Cache discovery (defaults to true in production, false in development)
|
|
110
|
-
# config.cache_discovery = false
|
|
80
|
+
# config.shell = :classic # legacy chrome (only for upgrades)
|
|
111
81
|
|
|
112
|
-
#
|
|
113
|
-
# config.
|
|
114
|
-
|
|
115
|
-
#
|
|
116
|
-
# config.assets.
|
|
117
|
-
# config.assets.favicon = "custom_favicon.ico"
|
|
118
|
-
# config.assets.stylesheet = "plutonium.css"
|
|
119
|
-
# config.assets.script = "plutonium.min.js"
|
|
82
|
+
# Custom assets (after running pu:core:assets)
|
|
83
|
+
# config.assets.stylesheet = "application"
|
|
84
|
+
# config.assets.script = "application"
|
|
85
|
+
# config.assets.logo = "custom_logo.png"
|
|
86
|
+
# config.assets.favicon = "custom_favicon.ico"
|
|
120
87
|
end
|
|
121
88
|
```
|
|
122
89
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
For the best development experience:
|
|
90
|
+
Full configuration options: [Reference › App](/reference/app/#configuration).
|
|
126
91
|
|
|
127
|
-
|
|
92
|
+
## `bin/dev` for development
|
|
128
93
|
|
|
129
|
-
Plutonium
|
|
94
|
+
Plutonium ships a Procfile that runs Rails and the CSS watcher together:
|
|
130
95
|
|
|
131
96
|
```bash
|
|
132
97
|
bin/dev
|
|
133
98
|
```
|
|
134
99
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
### 2. Enable Reloading
|
|
138
|
-
|
|
139
|
-
In development, Plutonium automatically reloads definitions and policies when files change. This is controlled by `config.enable_hotreload` (enabled by default in development).
|
|
140
|
-
|
|
141
|
-
## Next Steps
|
|
142
|
-
|
|
143
|
-
Now that Plutonium is installed:
|
|
100
|
+
## Next steps
|
|
144
101
|
|
|
145
|
-
- [
|
|
146
|
-
- [
|
|
147
|
-
- [
|
|
102
|
+
- [Tutorial](./tutorial/) — build a complete blog application step-by-step
|
|
103
|
+
- [Adding resources](/guides/adding-resources) — create your first resource
|
|
104
|
+
- [Creating packages](/guides/creating-packages) — organize code into feature and portal packages
|
|
@@ -55,13 +55,12 @@ Create a second portal with different access levels for content authors.
|
|
|
55
55
|
### [8. Customizing the UI](./08-customizing-ui)
|
|
56
56
|
Customize forms, tables, and views to match your requirements.
|
|
57
57
|
|
|
58
|
-
## Getting
|
|
58
|
+
## Getting help
|
|
59
59
|
|
|
60
60
|
If you get stuck:
|
|
61
|
-
- Check the [Guides](/guides/) for detailed explanations
|
|
62
|
-
- Browse the [Reference Documentation](/reference/) for API details
|
|
63
|
-
- Visit our [GitHub Issues](https://github.com/radioactive-labs/plutonium-core/issues)
|
|
64
61
|
|
|
65
|
-
|
|
62
|
+
- Check the [Guides](/guides/) for task-oriented walkthroughs.
|
|
63
|
+
- Browse the [Reference](/reference/) for full API surface — [App](/reference/app/), [Resource](/reference/resource/), [Behavior](/reference/behavior/), [UI](/reference/ui/), [Auth](/reference/auth/), [Tenancy](/reference/tenancy/), [Testing](/reference/testing/).
|
|
64
|
+
- Visit [GitHub Issues](https://github.com/radioactive-labs/plutonium-core/issues).
|
|
66
65
|
|
|
67
66
|
[Begin Chapter 1: Project Setup →](./01-setup)
|