Chrome
- Format
- Manifest V3
- Compatibility
- Primary Chromium target
- Validate
- Chrome Web Store policy and target-browser tests
Draft 0.1 — 2 August 2026
The channel order in this document is a product strategy, not a commitment that every adapter ships in the first release.
ANUKA should not require a company to migrate its stack before receiving value.
The shared core remains one system. Installation adapters bring that system into the tools companies already use.
One project identity, one capability model, many installation channels.
Every adapter MUST connect to the same ANUKA project, permission model, event vocabulary, and Presence Protocol. An adapter must not create a separate shadow profile merely because it was installed through a different platform.
The extension makes ANUKA available to the participant across the web.
Primary jobs:
Recommended implementation baseline:
WXT states that it supports Chrome, Firefox, Edge, Safari, Chromium browsers, Manifest V2 and V3, TypeScript, and automated publishing. It is an implementation choice, not an ANUKA protocol dependency.
The GTM template makes ANUKA an official owner-installed part of the website without requiring a product-code release.
Primary jobs:
dataLayer values;Google describes custom templates as a safer, permission-centric alternative to Custom HTML and custom JavaScript variables because they run in sandboxed JavaScript and request explicit permissions.
The public gallery requires a GitHub repository containing the exported template.tpl, metadata.yaml, LICENSE, and README.md, with version updates tied to commit SHAs.
The recommended rollout sequence is based on distribution leverage, implementation cost, and the amount of owner trust required.
A prospect enters a domain and previews an example Backstage without installing code.
The demo MUST not represent inferred data as owner-approved or verified.
A small loader installed with one script tag.
Best for:
Offer two release channels:
Best for:
Initial launch may provide Custom HTML instructions, but the strategic artifact is a Community Template Gallery submission.
Best for:
Packages:
Record at a glance
| Field | Example value | Why it matters |
|---|---|---|
| Canonical shared implementation | The base contract used by all thin adapters. | |
| Embeddable web surface | Direct integration for website experiences. | |
| Framework adapters | Thin framework-native bindings over core. | |
| Site-framework adapters | Integration for server-rendered web products. |
Framework packages SHOULD remain thin adapters over @anuka/core rather than independent implementations.
Candidates:
Prioritization should be based on actual resident demand and distribution access, not a desire to display a long integrations list.
Candidates:
These integrations expand evidence and automation but require stronger data governance than the public widget.
skill.md packages;Agents MUST use the same permissions and audit model as human clients.
| Browser | Initial format | Notes |
|---|---|---|
| Chrome | Manifest V3 | Primary Chromium target and Chrome Web Store policy baseline |
| Microsoft Edge | Chromium-compatible package | Microsoft says Chrome extension APIs and manifest keys are largely code-compatible, with testing and store-specific packaging still required |
| Firefox | WebExtensions package | Test permissions, APIs, manifest behavior, and restricted domains separately |
| Safari | Safari Web Extension | Apple supports common JavaScript, HTML, CSS, and extension formats, but packaging and App Store distribution require Apple tooling |
| Brave and other Chromium browsers | Chromium package where supported | Test rather than assume full compatibility; store and update channels differ |
One source repository does not mean one untested binary.
Channel comparison
Each browser channel needs its own package, policy check and compatibility validation; compatibility is never assumed from shared source code alone.
Request only capabilities required for the extension shell:
activeTab;scripting if injection is needed after invocation;Do not request <all_urls> at installation merely for future features.
Persistent host permissions may be offered when the participant explicitly enables features such as:
The permission prompt MUST explain the immediate benefit and affected origins.
Managed-browser policies may permit organization-controlled installation and permissions. Enterprise deployment is a separate mode and must not weaken the public-store privacy model.
The first template SHOULD expose a small configuration surface:
| Field | Purpose |
|---|---|
projectId | Connects the site to one ANUKA project |
environment | Production, staging, or development |
modules | Widget features enabled by the owner |
position | Badge or launcher placement |
language | Interface language or automatic selection |
consentMode | Basic policy for nonessential collection |
dataLayerMapping | Explicit mapping of allowlisted business events |
debug | Preview logging without production noise |
The template MUST NOT accept arbitrary executable JavaScript.
A template requests permissions based on the sandbox APIs it uses. Permissions should be as narrow as possible.
Expected permission classes may include:
Every new permission is a product decision and a trust cost.
The GTM adapter should live in its own public repository, for example:
Record at a glance
| Field | Example value | Why it matters |
|---|---|---|
| sergous/anuka-gtm-template | Public, independently releasable adapter. | |
| template.tpl · metadata.yaml | The installable template and its declared capabilities. | |
| LICENSE · README.md | Reuse terms and usage guidance. | |
| tests/ | Evidence that the adapter continues to work as promised. |
Release procedure:
template.tpl;metadata.yaml;Google’s Gallery terms state that user licenses for submitted templates are provided under Apache License 2.0. The exact terms must be reviewed when the repository is prepared.
Illustrative loader:
<script src="https://cdn.anuka.network/widget/0.1.0/widget.js" data-anuka-project="prj_01H..." data-anuka-modules="feedback,roadmap,opportunities" integrity="sha384-..." crossorigin="anonymous" defer></script>The loader SHOULD:
@anuka/core SHOULD contain:
@anuka/widget SHOULD contain the embeddable user interface.
Framework adapters SHOULD provide idiomatic mounting, lifecycle, and type integration while preserving core behavior.
Every official adapter MUST pass a common test suite covering:
A resident company SHOULD be able to:
Track by channel:
Do not optimize installation volume at the expense of permission trust, data quality, or product utility.
The first commercially useful release should include:
activeTab;Firefox and Safari should remain explicit targets, but shipping dates should follow tested product readiness.