Glossary

What are Bubble.io Option Sets?

Option Sets are Bubble.io's equivalent of database enums — predefined lists of values with optional attributes that are used throughout an application for dropdowns, status fields, categories, and configuration constants.

How They Work

Name-Value Pairs

Each option has a unique name (the stored value) and a display label shown to users in the UI.

Custom Attributes

Options can carry additional fields — colors, icons, numeric weights, or any metadata your app needs.

Display vs Stored Values

The internal name is stored in the database while the display value can be translated or formatted differently.

Referenced Everywhere

Option sets are used in data type fields, workflow conditions, dropdowns, and privacy rule expressions.

Common Uses

  • Status FieldsOrder statuses, subscription states, ticket priorities — any field with a fixed set of valid values.
  • Categories and TagsProduct categories, content types, and classification systems that rarely change.
  • Dropdown OptionsPopulating select inputs with consistent, validated choices across the entire application.
  • Configuration ConstantsFeature flags, plan tiers, permission levels, and other app-wide constants stored as option sets.

Migration Mapping

  • Database EnumsSimple option sets without attributes map directly to PostgreSQL or MySQL enum types.
  • Lookup TablesOption sets with custom attributes become reference tables with a foreign key relationship.
  • TypeScript EnumsThe option names become TypeScript enum members, with attributes as associated constants or maps.
  • Python ChoicesDjango's TextChoices or IntegerChoices classes mirror Bubble's option set structure cleanly.

Extraction Approach

  • Attribute DetectionRelis captures every attribute on each option, including type, default value, and display formatting.
  • Relationship MappingOption sets referenced in data type fields are linked to their usage context in the extraction output.
  • Enum Code GenerationExtracted option sets are converted into ready-to-use enum definitions for TypeScript, Python, or Ruby.
  • Usage Frequency AnalysisRelis tracks how often each option set is referenced to prioritize migration effort.

Related Terms

Data type extractionPrivacy rulesReverse engineeringNo-code debt

How Relis Extracts Option Sets

Relis extracts every option set from your Bubble application — names, display values, custom attributes, and all field references — and generates enum definitions and lookup table schemas ready for your target stack.