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