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 Fields — Order statuses, subscription states, ticket priorities — any field with a fixed set of valid values.
- Categories and Tags — Product categories, content types, and classification systems that rarely change.
- Dropdown Options — Populating select inputs with consistent, validated choices across the entire application.
- Configuration Constants — Feature flags, plan tiers, permission levels, and other app-wide constants stored as option sets.
Migration Mapping
- Database Enums — Simple option sets without attributes map directly to PostgreSQL or MySQL enum types.
- Lookup Tables — Option sets with custom attributes become reference tables with a foreign key relationship.
- TypeScript Enums — The option names become TypeScript enum members, with attributes as associated constants or maps.
- Python Choices — Django's TextChoices or IntegerChoices classes mirror Bubble's option set structure cleanly.
Extraction Approach
- Attribute Detection — Relis captures every attribute on each option, including type, default value, and display formatting.
- Relationship Mapping — Option sets referenced in data type fields are linked to their usage context in the extraction output.
- Enum Code Generation — Extracted option sets are converted into ready-to-use enum definitions for TypeScript, Python, or Ruby.
- Usage Frequency Analysis — Relis tracks how often each option set is referenced to prioritize migration effort.
Related Terms
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.