OpenFeaturelow

Node Based Salon Generator

#2Opened by SALDec 2, 2025, 12:29 PM
S
SAL
4 months ago

bases on vercel's workflow builder, inspired by vuo

2 Comments

PL
Peter Langmacher
4 months ago

lets go 🚀

S
SAL
about 1 month ago

**AI Analysis** (by Claude)

# Analysis: Node-Based Salon Generator

## 1. Root Cause Analysis

This is a feature request to build a visual node-based interface for generating salons, inspired by Vercel's workflow builder and Vuo (a visual programming environment). This would allow users to create salon websites through a drag-and-drop node system rather than traditional form-based builders.

**What needs to be built:**

- Visual node editor with drag-and-drop functionality

- Node types representing different salon components (services, staff, galleries, etc.)

- Connection system between nodes to define relationships

- Real-time preview generation based on node configuration

- Serialization/deserialization of node graphs

- Integration with existing salon template system

## 2. Affected Files

**New files to create:**

```

src/components/node-editor/

├── NodeEditor.tsx (main container)

├── Node.tsx (individual node component)

├── NodeCanvas.tsx (canvas with pan/zoom)

├── ConnectionLine.tsx (connecting lines between nodes)

├── NodeToolbox.tsx (available node types)

├── NodeProperties.tsx (property panel)

└── nodes/

├── ServiceNode.tsx

├── StaffNode.tsx

├── GalleryNode.tsx

├── ContactNode.tsx

└── LayoutNode.tsx

src/hooks/

├── useNodeEditor.ts

├── useNodeConnections.ts

└── useNodePreview.ts

src/types/

└── node-editor.ts

src/stores/

└── nodeEditorStore.ts

```

**Files to modify:**

```

src/app/dashboard/salons/new/page.tsx (add node editor option)

src/components/SalonBuilder.tsx (integrate node editor)

src/types/salon.ts (extend for node-based generation)

```

## 3. Resolution Approach

### Phase 1: Core Infrastructure

1. **Set up node editor foundation**

- Create NodeEditor component with @dnd-kit integration

- Implement basic canvas with pan/zoom using react-zoom-pan-pinch

- Add Zustand store for node state management

2. **Basic node system**

- Create base Node component with drag functionality

- Implement node selection and deletion

- Add node type registry system

### Phase 2: Node Types & Connections

3. **Define salon-specific nodes**

- ServiceNode: Configure services with pricing/duration

- StaffNode: Add team members with specialties

- GalleryNode: Image collections and portfolios

- ContactNode: Location, hours, contact info

- LayoutNode: Page structure and styling

4. **Connection system**

- Implement ConnectionLine component

- Add connection validation (type checking)

- Create data flow between connected nodes

### Phase 3: Preview & Generation

5. **Real-time preview**

- Build preview panel showing generated salon

- Implement live updates as nodes change

- Add responsive preview modes

6. **Integration with existing system**

- Convert node graph to salon configuration

- Integrate with current template system

- Add export to traditional builder option

### Phase 4: Polish & UX

7. **Enhanced features**

- Add node search/filter in toolbox

- Implement undo/redo functionality

- Add node grouping and commenting

- Create preset node templates

## 4. Complexity Estimate

**Complex** - This is a sophisticated feature requiring:

- **Technical complexity:** Building a full visual programming interface with drag-and-drop, connections, and real-time preview

- **Integration complexity:** Seamlessly connecting with existing salon builder, templates, and data models

- **UX complexity:** Creating an intuitive node-based interface that doesn't overwhelm users

- **Performance considerations:** Handling large node graphs and real-time updates efficiently

- **Testing complexity:** Comprehensive testing of visual interactions and edge cases

**Estimated timeline:** 4-6 weeks for full implementation

## 5. Dependencies

### Prerequisites:

- **@dnd-kit setup** - Already available in the codebase

- **Canvas rendering library** - Need to add react-zoom-pan-pinch or similar

- **Node positioning algorithms** - For auto-layout features

- **Existing salon template system** - Must be well-documented for integration

### Technical dependencies:

```json

{

"react-zoom-pan-pinch": "^3.0.0",

"react-flow-renderer": "^10.0.0", // Alternative approach

"dagre": "^0.8.5", // For auto-layout

"rough-js": "^4.0.0" // For hand-drawn node styling (optional)

}

```

### Blockers:

- **Design system decisions** - Visual style for nodes and connections

- **Node type specifications** - Detailed requirements for each salon node type

- **Data model finalization** - How node graphs serialize to salon configs

- **Performance requirements** - Maximum node count, update frequency limits

### Recommendations:

1. Start with a prototype using react-flow-renderer for faster initial development

2. Define clear node type interfaces before implementation

3. Create design mockups for different node types and connection styles

4. Consider implementing in phases with basic nodes first, advanced features later

Sign in to comment on this issue.

1
vote
Status
Open
Priority
low
Type
feature
Created
Dec 2, 2025