This is an overview of the changes to the Webflow APIs and related tools. To filter the list, select one or more tags.

Renaming exported components and props

DevLink now renames exported components and props to ensure that the generated React code has valid, collision-free identifiers. Here is a summary of the changes that it makes:

Components

DevLink sanitizes exported component names to handle:

  • Emojis and special characters: My πŸ˜€ Component β†’ MyComponent
  • Numbers at the start: 123 β†’ UnknownComponent123, 1Component β†’ UnknownComponent1Component
  • Reserved words: class β†’ UnknownComponentClass
  • Empty or whitespace-only names: "" or " " β†’ UnknownComponent
  • Collisions: Multiple components named MyComponent β†’ MyComponent, MyComponent2, MyComponent3

Props

DevLink sanitizes exported prop names to handle:

  • Emojis and special characters: πŸ˜€ β†’ unknownProp
  • Numbers at the start: 123 β†’ unknownProp123, 1prop β†’ unknownProp1Prop
  • Reserved words: return β†’ returnProp, private β†’ privateProp
  • React reserved props: key β†’ keyProp, ref β†’ refProp
  • HTML attributes for component props: class β†’ classProp, for β†’ forProp
  • Empty or whitespace-only names: "" or " " β†’ unknownProp

Note: HTML attributes like data-* and aria-* are preserved as-is and not sanitized.

What’s Fixed

This update fixes several critical issues in the previous system:

  • No more leading underscores: Previously, names starting with numbers like 123 would become _123 or __123, which violates JavaScript naming conventions
  • Better handling of reserved words: Component props named class or for now become classProp and forProp instead of _class and _for
  • React conflicts resolved: Props named key or ref now become keyProp and refProp to avoid conflicts with React’s special props
  • Fallback for invalid names: Empty or whitespace-only names now get meaningful fallback names instead of breaking

For more information, see What DevLink Exports.