I have shipped multiple projects using Flower, and it has been very useful for monitoring and managing Celery workloads.
One limitation I have encountered is the lack of UI customization and branding options. When Flower is deployed as part of an internal platform or a customer-facing application, I would like the Flower UI to feel like a native part of that platform.
Branding
It would be useful to have configuration options for:
- Logo
- Primary/secondary colors
- Theme
- Application name/title
- Favicon
- Basic UI styling
- Custom CSS
Ideally, these should be configurable without maintaining a custom fork of Flower.
Table and Dashboard Customization
I would also like more control over the tables displayed throughout Flower.
For example:
- Customize which columns are displayed
- Reorder columns
- Rename columns according to application requirements
- Add filters to individual columns
- Configure sorting
- Persist table preferences
- Customize the data shown in different views
Currently, the Task pages offer some column customization, but the Worker page doesn't offer similar customization.
It would be useful to have a consistent table customization mechanism across Flower, including:
- Tasks
- Workers
- Queues
- Other relevant views
Host/Worker Tabs
It would also be useful to have better customization of host/worker navigation, including the ability to:
- Configure which host tabs are displayed
- Rename tabs where appropriate
- Organize/group hosts according to application requirements
- Potentially customize the information displayed for each host
The overall goal is to make Flower more flexible when it is embedded into an existing application or platform while keeping the existing default behavior for users who don't need customization.
Planned Implementation
I would like to explore implementing UI customization as an optional configuration layer.
1. Branding Configuration
Introduce a centralized branding configuration supporting:
- Application name/title
- Logo
- Favicon
- Primary color
- Secondary color
- Theme
- Custom CSS
The configuration could potentially be exposed through CLI options, environment variables, or a configuration file.
Example:
FLOWER_BRAND_NAME=My Platform
FLOWER_BRAND_LOGO=/path/to/logo.svg
FLOWER_BRAND_FAVICON=/path/to/favicon.ico
FLOWER_BRAND_PRIMARY_COLOR=#xxxxxx
FLOWER_BRAND_SECONDARY_COLOR=#xxxxxx
FLOWER_CUSTOM_CSS=/path/to/custom.css
Additional Context
The main use case is deploying Flower as part of a larger application or internal platform where Flower should visually and functionally integrate with the surrounding application.
The desired solution should ideally be:
- Configuration-driven
- Backward compatible
- Docker-friendly
- Production-ready
- Easy to configure
- Consistent across different Flower pages
- Not dependent on maintaining a custom Flower fork
The table customization is particularly important because different teams may need different subsets of task and worker information.
I would also be interested in contributing to the implementation if there is interest in this feature.
I have shipped multiple projects using Flower, and it has been very useful for monitoring and managing Celery workloads.
One limitation I have encountered is the lack of UI customization and branding options. When Flower is deployed as part of an internal platform or a customer-facing application, I would like the Flower UI to feel like a native part of that platform.
Branding
It would be useful to have configuration options for:
Ideally, these should be configurable without maintaining a custom fork of Flower.
Table and Dashboard Customization
I would also like more control over the tables displayed throughout Flower.
For example:
Currently, the Task pages offer some column customization, but the Worker page doesn't offer similar customization.
It would be useful to have a consistent table customization mechanism across Flower, including:
Host/Worker Tabs
It would also be useful to have better customization of host/worker navigation, including the ability to:
The overall goal is to make Flower more flexible when it is embedded into an existing application or platform while keeping the existing default behavior for users who don't need customization.
Planned Implementation
I would like to explore implementing UI customization as an optional configuration layer.
1. Branding Configuration
Introduce a centralized branding configuration supporting:
The configuration could potentially be exposed through CLI options, environment variables, or a configuration file.
Example:
Additional Context
The main use case is deploying Flower as part of a larger application or internal platform where Flower should visually and functionally integrate with the surrounding application.
The desired solution should ideally be:
The table customization is particularly important because different teams may need different subsets of task and worker information.
I would also be interested in contributing to the implementation if there is interest in this feature.