Open edX 2019 Theming Dev Summit discussion
Format
We had perhaps 20-30 people in attendance. We went around the room with each person talking about:
The ways in which their company "themes" edX
Any particular pain points they experience.
I attempted to record everything that was said as a series of bullet points for each person. To get the following lists, I then bucketed those bullet points roughly by the sub-type of "theming" that they seem to represent. (I didn't think too hard about which bucket things belong in; deciding how each of these should be handled is its own exercise.)
Some Takeaways
The big one is that people keep trying to do things that would better be handled by a third-party CMS.
Branding is obviously very prevalent, but:
Sometimes it gets used to do things that should probably be configuration.
Getting consistent styling between Open edX and third-party pages is hard.
Using the server-side configuration/flags sounds difficult.
i18n not fully solved
Not too much talk about comprehensive theming - "Make the common things easy, make the uncommon things possible."
Branding
Visual tweaks
Branding / SASS
SASS variable overrides
Cosmetics
Hiding things purely with CSS
colors and fonts
styling changes
font changes
Modifying stylesheets at runtime
Certificate branding
consistent branding between open edX/other things
Styling consistency with custom pages and platform pages
REM size difference issues
Multi-tenancy branding
Configuration
Have things defaulted off
discovery of configuration settings is hard
Django admin for waffle flags: table is empty
Want config by site
Remove stuff from UI
what params exist in python/waffle?
favicon in studio
header changes
Modify blocks via site configuration
Themes based on ansible variables (logo, CSS, images)
Settings/site configuration unclear
Multi-tenancy hiding/showing elements
Marketing URLs and marketing URLs linkmap (?)
Customization
Hooks to modify things in base files
Hooks in templates at places they're needed
Overriding headers / footers
Course page overrides
Course catalog layout overrides (sections)
Customizations should generally be configurations
i18n
i18n
localization
Semantic strings as i18n keys, not english strings (fixed in MFEs)
Intl for custom code / new content pages
multi-lingual
Plugins
Want program manager to experiment without working with a developer
System to let users inject stuff
Template changes, want info from context: date, user, etc.
CMS
Wordpress
Wordpress/CMS
CMS
landing pages
Theming home page
Terms of service x3