Skip to main content

Getting Started

Introduction

HexaJS is a framework for building efficient, scalable, and browser-agnostic extensions. It is built with TypeScript and leverages modern programming paradigms to bring a structured and maintainable architecture to the world of browser extensions.

Under the hood, HexaJS provides an abstraction layer over the standard WebExtensions APIs, allowing developers to write code that is portable across different browsers like Chrome, Firefox, and Safari.

HexaJS gives developers the freedom to build their UI with any framework (like React, Vue, or Angular) by supporting both a fully managed, zero-config UI mode and an external mode for pre-built user interfaces.

Extension Platform Support

HexaJS targets Manifest V3 (MV3) browser extensions.

  • MV3 is fully supported across HexaJS tooling and generated manifests.
  • Manifest V2 (MV2) is not supported.
  • During builds, framework-owned manifest fields always enforce manifest_version: 3.

Philosophy

HexaJS exists because browser extensions stop feeling like simple scripts the moment they span multiple runtime contexts, messaging boundaries, background orchestration, storage, and UI surfaces.

Instead of leaving that complexity to ad-hoc conventions, HexaJS treats extensions as structured applications with explicit runtime boundaries, compile-time analysis, and generated wiring.

Read Philosophy for the full framework thesis and the trade-offs HexaJS makes.

What you'll learn in this section

By following the guides in this "Getting Started" section, you will learn how to:

  • Install the HexaJS CLI
  • Scaffold a new extension project
  • Run the development build and load the extension into your browser
  • Understand the generated project structure