0 m · surface

Join the crew

· Joshua Thijssen

30 m · sunlit zone

Building a browser engine is a large undertaking.

It requires much more than implementing an HTML parser or drawing a page on the screen. A modern browser engine combines networking, parsing, styling, layout, rendering, scripting, accessibility, security, process isolation, developer tooling, documentation, and many other areas.

We cannot build all of that alone.

Gosub is an open-source project, and we are looking for people who want to help us build an independent browser engine.

Who are we looking for?

Experienced developers

We are looking for developers who are comfortable working on complex systems and taking ownership of a problem.

Experience with Rust is useful, but browser experience is not required. Knowledge of graphics, networking, compilers, operating systems, security, language runtimes, or user-interface development can all be valuable.

Some of the areas we work on include:

  • HTML and CSS parsing
  • Style calculation and layout
  • Graphics and rendering
  • Networking and protocols
  • JavaScript integration
  • Browser process architecture
  • Sandboxing and process isolation
  • Developer tools
  • Accessibility
  • Testing and web-platform compatibility

You do not need to understand the entire engine. Most contributors work on one particular part of the system.

New and aspiring developers

You do not need to be a browser expert before contributing to Gosub.

However, building a browser engine involves difficult and sometimes poorly documented problems. Our ability to provide one-to-one mentoring is limited, so contributors should be comfortable researching problems, reading existing code, asking specific questions, and working independently.

We want to create suitable starter tasks and documentation for people who are still learning. These tasks should be meaningful without requiring a detailed understanding of the complete browser engine.

As the project grows, we hope to provide a clearer path from small introductory tasks to larger areas of responsibility.

Browser specialists

People with experience in browsers, web standards, rendering engines, or web-platform tests can help us make better architectural decisions and avoid mistakes that have already been solved elsewhere.

You do not necessarily need to write code. Reviewing designs, explaining edge cases, identifying missing standards, or participating in technical discussions can be just as useful.

Security researchers

A browser continuously processes hostile and untrusted input.

We need people who can help us reason about:

  • Process isolation
  • Sandboxing
  • IPC boundaries
  • Origin and site isolation
  • Cookie and credential handling
  • Network security
  • Parser vulnerabilities
  • Memory and resource limits
  • Threat modelling
  • Fuzzing and security testing

Security should not be something added after the engine works. It must influence the architecture from the beginning.

Designers and user-experience specialists

An engine eventually needs a usable browser around it.

We need help thinking about browser interfaces, developer tools, accessibility, error pages, settings, debugging interfaces, and the many small interactions that make a browser pleasant to use.

Writers, educators, and technical communicators

Browser engines are complicated, and explaining them clearly is valuable.

You can help by:

  • Improving documentation
  • Writing tutorials and technical articles
  • Explaining architectural decisions
  • Creating diagrams
  • Recording demonstrations
  • Helping new contributors find their way around the project

Community, marketing, and social media

A project cannot attract contributors, users, or funding when nobody knows it exists.

We need people who can help spread the word about Gosub through social media, conferences, meetups, articles, videos, podcasts, and conversations with other open-source communities.

This is not traditional product marketing. It is about explaining why independent browser engines matter, showing what we are building, and helping the right people discover the project.

Project and community organisers

There is also important work outside the codebase.

We need help organising discussions, coordinating contributors, preparing events, maintaining community spaces, finding funding opportunities, and building relationships with other organisations.

Focus groups

Not everybody needs to follow every part of the project.

We want to establish small focus groups around specific areas of the browser engine. These groups can investigate problems, review designs, coordinate work, and develop longer-term plans for their area.

Possible focus groups include:

Security and process isolation

Threat modelling, sandboxing, renderer isolation, IPC design, capabilities, sensitive data, and reducing the impact of compromised components.

Rendering and graphics

Layout, painting, compositing, fonts, GPU acceleration, rendering backends, and visual correctness.

HTML and CSS

Parsing, standards compliance, DOM behaviour, style calculation, selectors, and web-platform tests.

Networking

HTTP, caching, cookies, certificates, proxies, DNS, content decoding, privacy, and network-process architecture.

Scripting

JavaScript integration, event loops, DOM bindings, Web APIs, workers, and communication between the scripting environment and the rest of the engine.

Testing and compatibility

Web-platform tests, regression testing, fuzzing, screenshot comparison, interoperability, performance testing, and test infrastructure.

Community and outreach

Documentation, articles, talks, contributor onboarding, social media, demonstrations, and relationships with other projects.

These groups do not need to be formal committees. They can begin as small groups of interested people meeting periodically to discuss one area and decide what should happen next.

How you can contribute

There are several ways to get involved:

  • Work on an existing issue
  • Investigate a browser-engine problem
  • Review a design or pull request
  • Improve tests or documentation
  • Join a focus group
  • Propose an experiment
  • Help explain and promote the project
  • Help organise the community
  • Tell us what experience you have and where you would like to contribute

You do not need to make a large commitment immediately. A useful review, experiment, bug report, article, or technical discussion can already make a difference.

Finding the right place

When introducing yourself, tell us a little about:

  • Your background and interests
  • The areas of Gosub that interest you
  • Whether you want to write code, research, review, document, organise, or promote
  • How much time you roughly expect to have
  • Whether you are looking for a starter task or want to take ownership of a larger area

We can then help find a part of the project that fits your experience and interests.

Join the crew

Building an independent browser engine is ambitious, but that is also what makes it interesting.

Whether you are an experienced systems developer, a browser specialist, a security researcher, a designer, a writer, or someone who can help build the community around Gosub, there is a place where your knowledge can make the project stronger.

Come and talk to us on GitHub or in our Zulip chat, meet the people already working on Gosub, and help us decide what the next part of the engine should look like.

← Back to all posts