More React, more app-like: GitHub engineer outlines future UI for its DevOps platform

More React, more app-like: GitHub engineer outlines future UI for its DevOps platform

A GitHub software engineer has described the past, present and future of UI (user interface) at GitHub, including increasing use of React and reference to Microsoft’s desire to enable (and possibly encourage) migration from Azure DevOps to GitHub.

Joel Hawksley is a staff engineer at GitHub, and has worked on the Primer Design System which is used for designing and building UI at GitHub. He spoke about his work at GitHub and the future direction of the site’s design, used daily by millions of developers, at the Vancouver Ruby group just over a week ago, and also at the Boulder Ruby group earlier this month.

The GitHub team said in 2023 that the site has always been a Ruby on Rails monolith and at that time had nearly two million lines of code. Hawkesley said that these days there are about 5,000 models, 4,000 routes that render UI, and 2,100 controllers, with around 650 developers contributing in any given month.

Hawkesley said that one of GitHub’s design goals is to be “more app-like”, citing a number of reasons including more dynamic UIs to bridge feature-gaps versus Azure DevOps, a Microsoft service with functionality that overlaps with GitHub but which already existed when GitHub was acquired in 2018. Other factors include competition from what Hawkesley sees as “more app-like competitors” such as Linear and Cursor; and increasing use of mobile devices for internet access. “If you use apps all day, websites are a step back,” he said.

This is driving GitHub towards increasing use of the React JavaScript framework. “Our current plan is to build new experiences in React, especially when they are app like,” he said, though he added “we are not doing a wholesale rewrite at this point.”

Primer Design System has specific support for React components, though the docs state that it is primarily focused on presentational components and not fetching and submitting data to/from APIs. 

We note that Rails creator David Heinemeier Hansson is encouraging developers to move away from heavy JavaScript frameworks that require a build step. He said in October 2023 that it was better to “lean on the fundamental progress in support for modern JavaScript and CSS to avoid compiling what browsers already know how to read.” The default front-end for Rails is Stimulus, described as a JavaScript framework with modest ambitions to augment HTML, and Turbo, which delivers page changes over WebSockets or in response to form submissions, without JavaScript.

The scale and complexity of GitHub is unusual; but nevertheless GitHub may be out of step with the direction of Rails in its move towards more React adoption. Microsoft on the other hand uses React extensively, including in Microsoft Office with React Native.

Developers discussing GitHub UI on Hacker News are unsure whether GitHub’s design is moving in the right direction. “GitHub has a terrible app that can’t do anything and even worse mobile view,” said one, complaining about lack of features versus the desktop site. Another felt that the GitHub UI used to be clean and simple, but “it’s started to get more and more feature bloat, to the point where it’s becoming less usable.” The debate centers around first, whether mobile should be a priority given that most developers work on desktop screens; and second, whether features of modern UI design that work well for general use are equally suitable for developers. 

Another topic mentioned by Hawksley will be noted by those wondering about the future of Azure DevOps, which has substantial enterprise use and is still actively developed. The product roadmap includes improvement to Azure Test Plans, a feature missing from GitHub. Azure Boards are more mature and feature-rich than GitHub projects, the nearest equivalent.

“When Microsoft bought us, they wanted to migrate customers from Azure DevOps,” said Hawksley in Vancouver. Hawksley later fixed what he described as a typo in his slides, which “should have said, ‘Microsoft wants [to] enable Azure DevOps customers to migrate to GitHub.'”

The pace of development of GitHub is higher than that of Azure DevOps, and while for the time being the two platforms co-exist, it is GitHub that seems to have the more secure future.