Patterns
Create a project and its next action
Give a multi-step outcome a home, a clear name, and an actionable starting point.
On this page
User goal
Give a multi-step outcome a home, a clear name, and an actionable starting point.
Workflow
| Step | Expected behavior |
|---|---|
| 1 | Open New project from the creation entry point. |
| 2 | Name the outcome and describe what it should accomplish. |
| 3 | Choose an active Space using SpacePicker. |
| 4 | Provide a concrete next action where the creation form requests it. |
| 5 | Use the shared Create project / Cancel actions. The parent action owns authorization and persistence. |
| 6 | On the project page, add milestones, supporting resources, and scheduled time as needed. |
Decision rules
- A project is an outcome requiring multiple steps. A Space is an ongoing area of responsibility.
- An inbox task can remain unassigned until its context is clear. Do not force every captured action into a project.
- Project titles explain the outcome; task labels begin with a useful action.
- Use the existing form classes and field wrappers before defining new creation layouts.
Edge cases and recovery
- An empty or whitespace-only title must not create a meaningful project.
- No active Spaces needs a clear recovery route; the picker fallback is not a complete creation policy.
- Captured form drafts do not execute the server creation action.
- Pending, failure and retry behavior needs a shared async form contract before a team treats these forms as a complete reusable submission pattern.
Source references
| File | Responsibility |
|---|---|
| app/components/new-project-form.tsx | Project creation composition |
| app/components/space-picker.tsx | Responsibility selection |
| app/components/new-item-form-layout.tsx | Shared actions |
Examples from the app
Actual Radarist components with fictional data. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-07 · Revision 0103e2549959 · Documentation v0.1