The State of Open edX Frontend - Open edX Conference 2022

Background

This talk, 2022’s The State of the Open edX Frontend, was given at the 2022 Open edX Conference by Adolfo Brandes, Principal Software Engineer at Axim (at the time known as tCRIL; prior to that, he worked for OpenCraft).

Video

 

https://www.youtube.com/watch?v=SfkaFHOGZxI

Glossary of Terms

See https://gist.github.com/brian-smith-tcril/f4fa43cb58beb3b918d3043d05c2c54f#file-state-of-frontend-glossary-md

Message @Sarina Canelake on Slack if you successfully convert this glossary from Markdown to Confluence Wiki language and you will receive endless emoji as reward

Notes: Feel free to add your own!

Meta

Date: April 27, 2022 15:00 UTC+1, Room -115

Presenters: Adolfo Brandes

The past

  • Inline <script> tags, JavaScript and CoffeeScript

  • LMS or Studio Theme-ing could only work with forking

  • BOM aka Ball of Mud

    • A project that follows expediency over design

Micro Front-ends

  • Instead of ripping everything out and changing it, we just added micro front-ends

  • Now, one of Open edX’s products IS the codebase, it needs to be better

Replatforming

  • Incrementally replace pages from HTML to React

  • But still, not all MFEs are using the most updated React, there are now around ~18 MFEs

    • However, only a few of them deploy with Tutor (~4?)

What’s Missing

  • Reasonable depreciation process

  • Better across the board i18n

  • Theming, branding, multi-tenancy

  • Run-time configuration

  • Stop ballooning build time and bundle size

  • MFE Directory

    • Which ones are getting ready to deploy? Which ones are out to prod?

  • Redux-less

    • Cannon that handles a mosquito, it handles state

    • If you only have 1-2 requests to the backend, it’s really not worth it

  • Documentation

What is the roadmap?

  • We want to know what MFE’s should do, how they should work?

  • There’s a big old document somewhere

Q/A

  • What about typescript?

    • There’s a discussion in GitHub, it’s usually good, but it might be had to be accessible to people just coming into the codebase

  • Do we have accessibility requirements? Or do we have annual audits?

    • Basically, the MFEs aren’t standardized, and if we were to standardize them, it would curb the customization and freedom given to them