Hi everyone,

We here at Astronomer are thinking about what we'd next like to work on to 
improve Airflow, and one of the most visible ways we could improve Airflow 
would be to update the UI, and make it, well, more designed and less 
grown-over-time :)

A non-exhaustive list of things we'd like to fix/improve/add in the UI

- Making the UI more consistent. For example the actions you can take via the 
Browse pages are different to the ones you can take via the Task Instance 
modal, and none of those are visible when you're on any of the TI pages.
- Update the look and feel to be more modern. It's especially noticeable now 
that we've redesigned the project website.
- Improve the UX and "usefulness" of the UI. There's lots of power in there, 
but some odd quirks in to how information is presented that could be improved.
- Have "real time" updating of the UI. (This is a biiig chunk of work, 
especially the backend component for this and is a whole separate discussion, 
but we want to work on this.)

We build the UIs for Astronomer in React so we were thinking about using React 
again here on Airflow. There are a couple of ways we could do this:

- We could update/redesign/rebuild the existing mostly static pages in place 
(i.e. just change the templates/js/css)
- A hybrid approach where we could add react to chunks of the page, but keep 
parts of it server-rendered.
- A total re-write where the UI is react-only and the UI just speaks to an API 
server.

The main thing I'm conscious of is avoiding the "dual webserver" we had with 
the RBAC addition which caused all sorts of pain, both for development and for 
users. I want to avoid that pain again.

The other thing is that React has a higher learning curve, so if we do decide 
on React we should make sure that we have some clear guidelines on how to 
structure and test the code, and better yet machine-enforce rules.

Do people have opinions on React in general (I asked in #sig-ui on slack and 
the few people there were broadly positive of React) and the approach we should 
take specifically. Normally I'm a bit of a luddite when it comes to HTML+JS and 
I like things to be progressively enhanced buuut maybe that isn't a requirement 
here..

Thoughts?

-ash

Reply via email to