Skip to main content
NEW · APP STORE Now on iOS · macOS · iPad Android & Windows soon GET IT
Prompts React Flow Node Component Generator

developer coding skill risk: low

React Flow Node Component Generator

The prompt instructs the model to create React Flow node components using provided templates, TypeScript type patterns, and specific integration steps for store, menus, and canvas…

SKILL 1 file

SKILL.md
---
name: antigravity-awesome-skills-react-flow-node-ts-f1db1aa1
description: "Create React Flow node components following established patterns with proper TypeScript types and store integration."
---
# React Flow Node

Create React Flow node components following established patterns with proper TypeScript types and store integration.

## Quick Start

Copy templates from assets/ and replace placeholders:
- `{{NodeName}}` → PascalCase component name (e.g., `VideoNode`)
- `{{nodeType}}` → kebab-case type identifier (e.g., `video-node`)
- `{{NodeData}}` → Data interface name (e.g., `VideoNodeData`)

## Templates

- assets/template.tsx - Node component
- assets/types.template.ts - TypeScript definitions

## Node Component Pattern

```tsx
export const MyNode = memo(function MyNode({
  id,
  data,
  selected,
  width,
  height,
}: MyNodeProps) {
  const updateNode = useAppStore((state) => state.updateNode);
  const canvasMode = useAppStore((state) => state.canvasMode);
  
  return (
    <>
      <NodeResizer isVisible={selected && canvasMode === 'editing'} />
      <div className="node-container">
        <Handle type="target" position={Position.Top} />
        {/* Node content */}
        <Handle type="source" position={Position.Bottom} />
      </div>
    </>
  );
});
```

## Type Definition Pattern

```typescript
export interface MyNodeData extends Record<string, unknown> {
  title: string;
  description?: string;
}

export type MyNode = Node<MyNodeData, 'my-node'>;
```

## Integration Steps

1. Add type to `src/frontend/src/types/index.ts`
2. Create component in `src/frontend/src/components/nodes/`
3. Export from `src/frontend/src/components/nodes/index.ts`
4. Add defaults in `src/frontend/src/store/app-store.ts`
5. Register in canvas `nodeTypes`
6. Add to AddBlockMenu and ConnectMenu

## When to Use
This skill is applicable to execute the workflow or actions described in the overview.

## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

INPUTS

NodeName REQUIRED

PascalCase component name

e.g. VideoNode

nodeType REQUIRED

kebab-case type identifier

e.g. video-node

NodeData REQUIRED

Data interface name

e.g. VideoNodeData

REQUIRED CONTEXT

  • node name and type identifiers

ROLES & RULES

  1. Use this skill only when the task clearly matches the scope described above.
  2. Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  3. Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

EXPECTED OUTPUT

Format
code
Constraints
  • replace placeholders {{NodeName}}, {{nodeType}}, {{NodeData}}
  • follow provided component and type patterns
  • include store integration and NodeResizer

EXAMPLES

Includes code patterns for a React Flow node component and TypeScript type definitions, plus a list of integration steps.

CAVEATS

Dependencies
  • Requires template files in assets/
Missing context
  • Actual contents of assets/template.tsx and assets/types.template.ts
  • Exact import paths or store method signatures
Ambiguities
  • 'established patterns' is referenced but not defined within the prompt
  • assets/ directory and template file contents are mentioned but not provided

QUALITY

OVERALL
0.77
CLARITY
0.78
SPECIFICITY
0.72
REUSABILITY
0.85
COMPLETENESS
0.75

IMPROVEMENT SUGGESTIONS

  • Embed the full template file contents instead of referencing external assets/
  • Add explicit success criteria or example output for a completed node

USAGE

Copy the prompt above and paste it into your AI of choice — Claude, ChatGPT, Gemini, or anywhere else you're working. Replace any placeholder sections with your own context, then ask for the output.

MORE FOR DEVELOPER