Frontend Development / Open Source / Software Development

Igalia: the Open Source Powerhouse You’ve Never Heard of

29 Jul 2022 4:00am, by
Igalia

Earlier this year Mozilla decided to stop development on its mixed reality browser. Rather than shuttering the project completely, it passed the source code to open source consultancy Igalia, which is using it to build the Wolvic browser. If you’ve been following browser and JavaScript development closely, then you may know about Igalia. Chances are though, you’ve never heard of them. Yet you’re almost certainly using something that Igalia helped build.

That includes big-ticket items like CSS Grid and dozens of other improvements, optimizations and even foundational web features.

Key Igalia Contributions 

Igalia was involved in the arrow functions and destructuring that were standardized in ECMAScript 2015; major features now used universally. It worked on generators and the async functions in ECMAScript 2017, that offer cleaner, less verbose execution for what developers previously had to do with manual promise chains. It also worked on async await (which Igalia implemented in V8 and JavaScript Core for WebKit) and top-level await.

For BigInt, Igalia was involved in the spec and testing and implemented the feature in both SpiderMonkey and JavaScript Core. Igalia contributors are working on Class Fields, a long-awaited approach that will make plain JavaScript classes powerful enough to express the constructs developers currently need for internal proprietary class systems for, the “universally adored” Temporal replacement for the JavaScript Date field, and more speculative features like type annotations and erasable types. It’s also on track to finally produce a MathML Core specification that browsers will adopt, resolving a process that predates the W3C.

“Igalia is the premiere web standards consultancy and their mission is to improve the commons.”

Rob Palmer, Bloomberg

In 2019, Igalia was the second largest contributor to both Chromium (after Google) and WebKit (after Apple), as well as a major contributor to Mozilla’s Servo. “Igalia has contributed to many efforts in the web platform, including moving standards forward, implementing missing features, and fixing bugs that positively impact both web developers and browser users,” the Microsoft Edge team told us when we asked how a browser maker views their work.

It’s not just browsers. The consultancy is also involved with projects like Node.js and Wayland, and Igalia’s work also shows up on the Steam Deck because of its contributions to graphics libraries like Mesa and Vulkan.

But who is Igalia and how can it make such significant contributions to the web (and related platforms)?

Expertise and Connections

“Igalia is the premiere web standards consultancy and their mission is to improve the commons,” said Rob Palmer, head of Bloomberg’s JavaScript Infrastructure and Tooling team and co-chair of the TC39 ECMAScript standardization committee.

It’s not a typical consultancy and much of its success comes from how different it is: “We are a worker-owned cooperative,” explains Brian Kardell, a developer advocate at Igalia known for his work on the Extensible Web Manifesto and HitchJS. “We have a flat structure. There are no bosses, there are no shareholders. It’s our lives, our company and we want to work on something that is valuable.” For Igalia, that means focusing on open source and free software almost exclusively, and on filling gaps: “we try very hard to improve what we think are failures in the status quo and create a system that is healthier for everyone”.

Although the company is based in Spain and the pay may not match Silicon Valley, being able to work fully remote on technology they view as significant allows Igalia to hire an almost unique combination of experts.

“We have a flat structure. There are no bosses, there are no shareholders. It’s our lives, our company and we want to work on something that is valuable.”

Brian Kardell, Igalia

“Because the mission is so attractive, you get top tier candidates, people who have worked directly on the engines for the browsers and other projects but choose to work for Igalia because they believe in that fundamental mission to improve the web and improve the commons for all,” Palmer suggests.

Calling Igalia influential and well respected in the browser development community is almost an understatement. In recent years, a number of senior developers have moved to Igalia from the browser engineering teams at Apple, Firefox, Google and other projects, giving the company expertise in codebases like WebKit, Gecko, Servo, SpiderMonkey, V8, Chromium and Blink; along with excellent connections to those projects, often with commit rights and membership of organizations like Blink API owners (which makes decisions about which developer-facing features become available in Chromium).

That means Igalia has the technical ability to work on significant features (which isn’t necessarily rare) and can also help get the code to deliver them into multiple browsers at almost the same time (which is rare).

“Igalia brings expertise in standardization,” Palmer explains. “Consensus building, having the relationships and the expertise to engage and to make forward progress, which is a very tough thing to do in this world because we’re trying to get many disparate parties to all agree. But also, they’re not just doing the standardization, they’re also doing things like implementation and test: the full end to end story of what is required.”

All the major web browser engines are open source and, in theory, anyone can contribute to the underlying projects. But not everyone can invest the necessary time; plus, those projects have a core group of maintainers who decide what code goes into them. “For Chromium, the Chrome API owners have to agree that it’s something that largely fits the architecture and principles of the web,” Kardell points out. “Not every contribution would be accepted.” But Igalia’s contributions almost always are.

“We have expertise. We belong to all the standards bodies, we have good relationships with people in all the standards bodies, we belong to a lot of working groups with members who are actively involved and we do implementation work. We are core contributors, API owners, reviewers for all kinds of things in all those browsers,” he explains.

Open Source without Burnout

Part of what attracts browser engineers with this level of expertise is Igalia’s funding approach, which avoids common problems of burnout and unsustainable business models, Kardell says.

“Open source is great in many ways. You can take software and try it out, inspect it, you can mold it and fork it and help evolution happen. You can create a startup very quickly. There are all kinds of things I love about open source, but what I don’t love is that it can become a source of burnout and non-compensation.”

“There are all kinds of things I love about open source, but what I don’t love is that it can become a source of burnout and non-compensation.”

Brian Kardell, Igalia

Igalia does work directly for paying clients, encouraging them to use open source and contribute the technology it builds to the commons. It also works with sponsors like Bloomberg, Salesforce and the AMP Project (which is part of the OpenJS Foundation). And most recently it experimented with fundraising from smaller organizations and individual web developers, to have the web community rather than a single paying client drive the implementation of a missing feature.

Even organizations that don’t sponsor any work through Igalia welcome its contributions. “We believe that the evolution of the web is best served through open debate from a wide variety of perspectives, and we appreciate the perspective that Igalia and others bring to standards discussions and the Chromium community,” Microsoft told us.

Unblocking Progress for the Commons

A single organization might sponsor a feature but that ends up with something that’s useful for a lot of web developers, even — or especially — when the different priorities of the browser makers mean there hadn’t been significant progress before.

“We helped unblock container queries, which was the number one ask in CSS forever,” Kardell told us. “We unblocked has(), which is now in two browsers.” The has() selector had been in the CSS spec since the late 1990s and was also a top request from developers, but it was a complex proposal and so browser makers were concerned it would affect performance. Kardell tried to make progress on it in the CSS working group: “every year or two I would say ‘let’s do something about this, it’s a big deal’ and we just could not make it happen.”

When Eyo, the company behind AdBlock, sponsored Igalia to work on it so they could use CSS for their rules, they were able to get past what he terms a ‘nuclear standoff’. “With a little investment and research showing that it could work, and it could be performant, once we did that Apple said ‘we can do that’ and they did it and in fact they landed it already.”

Some browser engineers say that if it wasn’t for Igalia, CSS Grid might not have become widely available.

It’s a similar story with CSS Grid, which lets developers achieve much more advanced and custom layouts than Flexbox: Palmer calls it “a huge feature that’s loved by developers”. But some browser engineers say if it wasn’t for Igalia, it might not have become widely available. Microsoft started work on what became the original CSS Grid Layout specification, shipping the prefixed version in IE10 in 2012: Google started to add support for CSS Grid to WebKit in 2011 but then forked WebKit to create Blink in 2012, while Mozilla didn’t adopt it because it was focused on its own XUL grid layout.

Bloomberg uses web technologies both for serverside operations and rendering on the Bloomberg terminal, which Palmer describes as “a data-intensive real-time rendering system that really pushes the limits of Chromium”; in 2013, it sponsored Igalia for a multi-year project to work on a new approach to CSS Grid, which it implemented in both Blink and WebKit.

“It’s in our interests, to truly become successful, for us to build amazing fast and rich applications for our users,” Palmer told us. “But when we can do more [with web technologies], the world can do more as a result. We run into bottlenecks that we find are worth optimizing that maybe not everyone runs into, and when we fund those optimizations, everyone benefits, because everyone’s browser goes a little bit faster.”

“If there is any uncertainty about whether there is demand, about whether everyone will step forwards together, we can help provide that push. We can say ‘these two browsers are moving ahead [with a feature] because it’s the top of their priority list and this one is not, so we should fund the one that is behind, we should fill that gap’. And by achieving that completeness, everyone moves forward.”

He refers to the work Bloomberg and Igalia do as “pipe cleaning a process,” because it isn’t just getting a new feature into browsers or the JavaScript runtime: Igalia also works on the toolchain required to use it and develops test suites to help drive interoperability between different browser engines. Sometimes it can also lead to more significant features in future.

BigInt in ECMAScript was a sponsored improvement that Bloomberg wanted for working with numbers bigger than can be expressed with IEEE double precision variables; BigInt means they can ergonomically pass those around. But the precedent of adding a new numeric type to JavaScript may make it easier to add the decimal numbers everyone uses in daily life. Bloomberg wants that because financial market data is often supplied as 64-bit decimal numbers, but it would also help any developer who finds simple arithmetic — like adding up 0.1 and 0.2 (which doesn’t equal 0.3 in any language that uses IEEE numbers) — counterintuitive in JavaScript. “This would solve one of the most frequently reported problems with the language,” Palmer suggested.

Resources are Finite, Prioritization Hard

It’s clear how important Igalia’s contributions are to the web platform, but there’s sometimes confusion over why they come from Igalia — although the occasional misunderstanding or controversy is often for political rather than technical reasons. It may seem odd that, for example, both Google and the web community effectively pay Igalia to work on features in WebKit that Apple hasn’t prioritized. While Apple has been hiring well-respected developers to expand the Safari team and is now adding key features after a period of underinvestment, it’s also salutary to note how many more web platform features (both experimental and stable) are unavailable only in Safari.

Historically, browser makers like Apple, Firefox, Google and Microsoft have acted as what Kardell terms “stewards of the web,” with pressure from the broader web community pushing them to implement W3C standards. But while the commons of the web has become fundamental to systems far beyond the browser, in everything from TVs to cars, adopting those standards is still completely voluntary.

Different browsers have their own different priorities — and even the largest budget has limits.

“It’s not great that we’ve set up a system in which everything is dependent on the completely voluntary budget and participation of what is effectively three organizations. It’s great that we’ve gotten it this far: it’s open and we have multiple contributors.” But different browsers have their own different priorities — and even the largest budget has limits.

With the web platform being at least as large and complex as an operating system, building a browser takes a wide range of expertise. Inevitably, even though browser makers want to be competitive by pushing the web platform forward (or at least not being the last browser to implement a feature), their priorities and commitments dictate what gets implemented and what doesn’t.

The strength of the W3C is the breadth of who is involved beyond the browser makers — there are over 500 members, although many are involved with a single working group rather than contributing broadly — but that also leads to what Kardell characterizes as “potentially long, difficult, incredibly complex discussions, that can take an extraordinary amount of time from your limited resources”.

“A lot of things just don’t move forward because implementers are in the critical path, it’s completely voluntary, and it’s independently prioritized by them. Getting all those stars to align is really, really, really hard.”

That’s the problem Igalia is so good at unblocking.

Cross-Browser Compatibility 

Most web developers care less about the priorities of individual browsers and more about not relying on features that aren’t supported across all browsers. Normally, Palmer notes, “new features turn up in all the browsers and that’s what makes things wildly adoptable and it’s easy to think that this is a natural flow — a fountain of features where the platform just gets better and all by itself”.

Actually, it takes a lot of hard work and funding and time: not just writing the code, but getting it reviewed, tested for compliance, put through QA and accepted into multiple codebases.

“It’s almost a superpower that Igalia has,” says Palmer: “to work across browsers and help everyone move forward in consensus-based lockstep.”

That’s something individual browser makers, with their individual priorities and expertise in their own specific codebase, find difficult to do.

“If you come to us and you have a reasonable case, if we think there is some ‘there’ there that we can help you with, then you can pay us and we can help you,” Kardell explains. “We can be the implementor that you need to have to move the conversation.”

“It’s almost a superpower that Igalia has, to work across browsers and help everyone move forward in consensus-based lockstep.”

Rob Palmer, Bloomberg

Even if a feature is a high priority for all the browser makers, it can also be more difficult to implement a feature in one browser than it is in another: “what it will cost to do it for Chrome isn’t what it will cost to do it for Safari and isn’t what it will cost to do it for Firefox,” he notes. Standards require multiple implementations, which means a significant commitment from multiple browser makers, which is where some proposals get stuck.

The shortage of people with the deep expertise to build browsers results in the kind of nuclear standoff that held up has(), he explains. “Where there’s something that’s going to be hard and potentially expensive and we don’t know how valuable yet because we haven’t had the discussion, we just know we can’t afford to do it because doing it means not doing something else. So it gets to where nobody’s willing to be the first one to pull the trigger and you have these things that linger for lots and lots and lots of years. They can’t get past go. But once someone gets passed go, suddenly people are like, ‘okay, I guess we’re going to have to figure this out’ and Igalia plays that role sometimes.”

In some cases, a feature is important for one particular use case — like embedded systems — and mainstream browser makers don’t see it as a priority even though they would benefit from it.

While Apple controls the way WebKit powers Safari, WebKit-based browsers on PlayStation, Epiphany and embedded devices like smart TVs and refrigerators, digital signage and in-vehicle displays use WPE WebKit, which Igalia maintains. Appliance makers like Thermomix (which uses the embedded browser for the screen of its smart food processor) and set-top box manufacturers come to Igalia for help with it; and their investment has driven major improvements in Canvas and SVG hardware acceleration.

Despite having developed for the web since the mid-90s, even Kardell didn’t expect JavaScript’s Off-Screen Canvas to be relevant to him. “The number of times that I have ever professionally programmed against Canvas is zero — but I use Canvas every single day without realizing it and I have used libraries that use Canvas to do things.” Maps, blob databases and Google Docs all use Canvas and the way Canvas blocked the main thread, so everything else in the browser was interrupted while you pan or zoom, might be bearable on a high-end device, but was a significant problem for performance on resource-constrained embedded devices. Fixing that improves the experience for everyone.

That’s a clear example of why prioritizing features in browser development is so hard, he suggests. “When you ship Off-Screen Canvas, a whole bunch of the world will say: why don’t you do this instead? This is clearly more important — but the problem is it’s all the most important.”

Who Should Fund the Web

Rather than letting anyone “buy a standard”, sponsorship is a way to get responsible development of features that browser developers are asking for that involves collaboration and co-design with different browser makers and thorough testing with developers, without expecting developers to work for free.

Kardell understands the concern because he felt it himself before learning more about Igalia, but he’s clear that it doesn’t work like that. “If we agree to work with you, it’s because we think there’s a chance of us helping you do something valuable. What you can buy is us championing [your feature] and the priority of someone who has implementer experience and implementer credibility, who has the right skills and ability to help move that forward.”

“They don’t just do anything that is asked of them: they consider the impact, whether it is good for the community, whether it’s the right thing for the platform,” Palmer agrees.

“Because all the work is open anyway, you can’t just subvert it by saying ‘I want my pet feature in the web platform’. It always involves going through that consensus-building committee process.”

In fact, this is an advantage of having an open ecosystem rather than centralized decision-making, he suggests. “You can spin this either way. On one hand, you can say, why is the trillion-dollar company not moving things forward themselves? But the other way of looking at it is, wow, these browsers are open source and we’re able to contribute the features that we want.”

“This is the opportunity given by open source, let’s celebrate that. Let’s encourage more people to get involved and contribute, let’s encourage more people to fund that style of development, because it means that then the priorities can be more and more set by the community and a large, wide base of developer interests.”

“Companies like Igalia can help bring attention to new customer problems that aren’t already being discussed by browser vendors.”

Microsoft representative

Having Igalia work on a particular web feature doesn’t guarantee that it will happen but it’s a signal to browser makers that the feature is worth taking seriously. “Companies like Igalia can help bring attention to new customer problems that aren’t already being discussed by browser vendors,” Microsoft told us.

In a way, Igalia can act as a filter for all the requests that browser makers get, Kardell suggests. “The trouble with being at the core of everything in the whole world is that everybody can see very clearly the problem that they have, and they send it into the bucket — but the bucket is the size of an ocean.

He also hopes the Open Prioritization experiment can help with highlighting what organizations like Igalia should work on. The idea came from the question: why do we need single, very, very rich companies to fund something? “It would be great if we had diversity of funding that would help the web last, that would help it reach its potential.”

That could be smaller companies or working groups or even individuals. “It could be all of us or a few of us that sponsor the work and unblock it and make the thing happen, and then we control the priority.”

“Why couldn’t a million developers democratically decide ‘this is worth a dollar’ and if you collected a million dollars in funding, then you could do a million dollars’ worth of work and that’s amazing.”

Feature image via Shutterstock.