Component Publishing¶
Overview¶
ARD uses an immutable component system with a publishing workflow to ensure data integrity, enable seamless collaboration, and maintain complete version history. This approach means you'll never lose data and teammates can work simultaneously without conflicts.
Component Immutability¶
Core Principle¶
Every component in the system is immutable. Once created, a component can never be modified. Any change to a component creates a new version with the changes applied.
Why Immutability?¶
- Data Preservation: You never lose previous configurations. Every version is permanently stored.
- Conflict-Free Collaboration: Multiple users can work on the same component simultaneously without overwriting each other's work.
- Simulation Reproducibility: If you need to reference a vehicle from a previous simulation, it will always be available exactly as it was.
Cascading Updates¶
When you edit a component, the immutability principle cascades upward through the component hierarchy:
graph TD
A[Edit Chassis] --> B[New Chassis Created]
B --> C[New Vehicle Created]
C --> D[Vehicle References New Chassis]
%% Dark-mode friendly styles
style A fill:#2f5d8a,stroke:#9fbce0,color:#e6eef7
style B fill:#1f6f5b,stroke:#7fd1bd,color:#e8f6f2
style C fill:#1f6f5b,stroke:#7fd1bd,color:#e8f6f2
Example: If you edit a chassis component: 1. A new chassis component is created with your changes 2. A new vehicle component is automatically created 3. The new vehicle references the new chassis 4. The original chassis and vehicle remain unchanged in the system
This automatic "bubble up" behavior occurs when you click Save.
Publishing Workflow¶
Published vs Unpublished Components¶
Due to immutability, you will in turn start to create many components. To help manage all of this, we've come up with the publishing system. The publishing system manages which components appear in your setup selector and helps teams coordinate on stable configurations.
Published Components: - Appear in the component setup selector by default (you can filter to show all unpublished components too) - Signal to your team: "This is a version I'm happy with" - Serve as reference points - Indicated by a green ID badge
Unpublished Components: - Created automatically when you edit a published component - Work-in-progress versions - Not shown in the setup selector by default (but accessible via version history or altering the search filters) - Indicated by an orange ID badge
Reading the ID Badge
The ID badge next to each component name visually encodes three states: color (green = published, orange = unpublished), border style (solid = latest version, dashed = older version), and an "A" suffix for archived components. Hover over any badge for full details.
Publishing Options¶
When you're ready to publish a component, you have two options:

Option 1: Publish to Same Branch¶
Publishes your changes under the existing component name.
graph LR
A[ARB Stiff<br/>PUBLISHED] --> B[Edit]
B --> C[ARB Stiff<br/>UNPUBLISHED]
C --> D[Publish to<br/>Same Branch]
D --> E[ARB Stiff<br/>PUBLISHED<br/>new version]
style A fill:#2f5d8a,stroke:#9fbce0,color:#e6eef7
style C fill:#1f6f5b,stroke:#7fd1bd,color:#e8f6f2
style E fill:#1f6f5b,stroke:#7fd1bd,color:#e8f6f2
Result: - Keeps the same component name - Unpublishes the previous published version (still accessible in history) - Your new version becomes the published version
Use when: You're iterating on the same configuration and want to update the team's default version.
Option 2: Create New Branch¶
Publishes your changes as a new component with a new name.
graph LR
A[Chassis v1<br/>PUBLISHED] --> B[Edit]
B --> C[ARB Stiff<br/>UNPUBLISHED]
C --> D[Publish to<br/>New Branch]
D --> E[ARB Stiff<br/>PUBLISHED<br/>still published]
D --> F[ARB Soft<br/>PUBLISHED<br/>new component]
style A fill:#2f5d8a,stroke:#9fbce0,color:#e6eef7
style C fill:#1f6f5b,stroke:#7fd1bd,color:#e8f6f2
style E fill:#1f6f5b,stroke:#7fd1bd,color:#e8f6f2
style F fill:#1f6f5b,stroke:#7fd1bd,color:#e8f6f2
Result: - Creates a new published component in the setup selector - You choose the name for the new branch - Original published component remains published and unchanged
Use when: You're creating a variant configuration that should coexist with the original.
Version History Access¶
Every published component includes a version history dropdown showing all previous versions (both published and unpublished).
Components are identified by their ID, which is displayed next to each version in the history. If you know you want to return to a specific configuration, remember its ID.

Collaborative Workflows¶
Scenario: Two Teammates Editing Simultaneously¶
If two teammates wish to edit the same vehicle at once, this is totally okay.
Key Points: - Each teammate creates their own unpublished version of the vehicle - No conflicts or overwriting occurs - First to publish updates the main branch - Second person can publish to new branch or choose to publish over the first person's version
Initial Component State¶
When you load a vehicle from a template: - All components start as published - They appear immediately in the setup selector - Any edits will create new unpublished versions
Best Practices¶
Organization¶
- Use descriptive branch names when creating new branches
- Remember significant IDs if you frequently reference specific versions
- Publish regularly to communicate stable configurations to your team
Publishing Strategy¶
- Publish to same branch for iterative improvements to a single concept
- Create new branches for distinct setup philosophies or track-specific configurations
- Don't over-publish - it's okay to work on unpublished versions until you're confident
Team Coordination¶
- Published components signal readiness - treat them as team-approved configurations
- Communicate before publishing over a teammate's recent work on the same branch
- Use new branches when exploring different directions to avoid conflicts
Version Management¶
- Don't worry about clutter - the system handles all versions efficiently
- Use version history to compare changes and understand evolution
Common Workflows¶
Making a Quick Adjustment¶
- Load your vehicle from the setup selector
- Edit the component (creates unpublished version)
- Test the changes
- Publish to same branch when satisfied
Creating a Track-Specific Variant¶
- Load your base vehicle configuration
- Edit components for track requirements
- Publish to new branch with descriptive name (e.g., "Monza Low Drag")
- Both variants now available in setup selector
Recovering a Previous Configuration¶
- Open the component in setup selector
- Click the version history dropdown
- Find the version by ID or position in history
- Load that version
- Optionally publish it to make it active again
Next Steps¶
- Review Component Hierarchy to understand parent-child relationships
- Explore the Setup Selector for managing components
- Learn about Tags to organize your library