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:

  1. The ways in which their company "themes" edX
  2. 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