Skip to content

Projects

You connected an extension and want to know what the platform now holds for it. A project is one browser extension: the builds, releases and store submissions that come out of one manifest.

console.extension.dev/<workspace>/<project>

Two repositories

A project binds a source repository to a mirror repository:

RepositoryOwnerJob
SourceYouThe code, the commits, the history
MirrorThe platformWhere builds actually run

Every build runs in the mirror, on the platform's GitHub org, so Actions minutes burn on the platform's account and never on yours. The mirror follows the source; you never push to it.

What a project owns

ThingWhere it lives
Builds, one artifact set per commitBuilds
Release channels and the build each holdsReleases
Store credentials and submission historyStores
Environment variables, production and stagingProject settings, Environment
Access tokens for CI and agentsProject settings, Access tokens

Settings sections

SectionControls
GeneralName, description, project identity
TeamWho can act on the project
EnvironmentVariables in production, staging, or all channels
BuildBuild command, output directory, browsers to build
DeploymentProduction branch, pull request builds, how a push dispatches
GitHubSource repository connection and App installation
ChannelsRelease channels and their environment bindings
StoresStore credentials, one set per store
VisibilityPublic or private
Access tokensTokens for CI and agents
DangerTransfer and deletion

Visibility and share tokens

A project is public or private, nothing in between. There is no unlisted.

A new project starts with the visibility of the source repository it came from: a public repository makes a public project, a private one makes a private project. Change it later in Project settings, Visibility, which workspace owners and admins can do.

Only a project declared public is served to a stranger. Making it public exposes its listing page and released builds, never build logs, credentials, or environment variables. A private project can mint scoped share tokens instead, which open exactly the surface the token names and nothing else. See Public project pages.

When it fails

  • A push landed but no build started. Check the branch first. When Project settings, Deployment names a production branch, only pushes to that branch build; a push to any other branch is skipped by design and spends nothing. Clear the field to build every branch you push. If the branch matches or the field is empty, check Project settings, GitHub: the App must still be installed on the source repository's owner. The last cause is the push ceiling, 25 builds from a push a month on free. Click Build in the console to run the same commit now, free, and see CI and releases.
  • You named a production branch and the month still ran out. Pull requests spend the same allowance. A pull request opened, reopened or updated builds and spends one push build, and the production branch never filters it, because a pull request's head is a feature branch. Turn off Build pull requests in Project settings, Deployment to keep the allowance for pushes. It is on until you turn it off, so every project you already have builds them.
  • You are worried about the Actions bill. Builds run in the mirror on the platform's org. Your GitHub account is never charged a minute for them.
  • A reviewer outside the workspace cannot open the project. Mint a scoped share token from Project settings, Access tokens, or share the build itself, see Share an unpublished build for review.
  • The build runs but produces the wrong artifact. The command and output directory in Project settings, Build were inferred at import. Correct them per browser, the defaults are dist/chrome, dist/edge, dist/firefox.
  • Safari is enabled and no Safari artifact appears. Safari builds only on a paid plan. A free workspace has the Safari leg dropped from the dispatch and the other browsers still build, so the setting looks on and the artifact never arrives. On a paid plan the default output directory is dist/safari, and the build emits the payload only; the Mac app is assembled at submit time.

Next

Extension.dev sponsors Extension.js, the open source framework it builds on.
Privacy · Terms · Cookies