Skip to content

Publishing ​

When you are ready to publish your extension, use the Export button at app.epos.dev dashboard to generate a standard extension package.

You do not publish the project folder itself. You publish the exported ZIP.

Before You Export ​

At minimum, provide these fields in epos.json:

  • name - The name of your extension as it appears to users.
  • version - The version number, which must be updated for each release.
  • description - A short and clear description of what your extension does.
  • icon - The icon for your extension.

Also review your permission fields:

  • permissions
  • optionalPermissions
  • hostPermissions
  • optionalHostPermissions

Make sure you do not provide permissions that your extension does not need, as this can lead to rejection during review.

Exporting ​

Open your project in app.epos.dev and click the Export button.

Epos generates a self-contained bundle for your project and downloads it as a ZIP file.

What the Export Contains ​

The exported bundle is a standard browser extension package. It includes:

  • A generated manifest.json.
  • Your project source files.
  • Your project assets.
  • The Epos engine code.

The export contains only the required Epos code. It does not include app.epos.dev dashboard or any other development functionality.

Test the Export ​

Before submitting to a store, it is a good idea to test the exported package. To install the exported extension:

  1. Open chrome://extensions.
  2. Enable Developer mode in the right-top corner.
  3. Drag and drop the ZIP onto the page.

Permission Justifications ​

When publishing to the Chrome Web Store, you may need to explain why some permissions are present. For the engine permissions, you can use these justifications:

  • alarms - Wake up the background worker for scheduled tasks.
  • offscreen - Use web APIs that are not available in the service worker.
  • unlimitedStorage - Prevent automatic browser cleanup from removing extension data.
  • declarativeNetRequest - Adjust headers to allow code injection to web pages.
  • scripting - Inject scripts to web pages.
  • tabs - Send and receive messages to and from web pages.
  • webNavigation - Detect CSP errors on navigation.
  • sidePanel - Render extension UI in the side panel.

If you have other project-specific permissions, you should provide your own justifications for those.