Aha! Develop trials are currently invitation-only. If your team is interested, apply for early access now.

Aha! Develop | Create an extension

At its simplest, an extension is made up of at least two files:

  • package.json — a configuration file that declares the contributions in the extension.

  • a JavaScript source code file containing the code for the extension contributions.

More complex extensions may contain many separate source code files and may include other file types like TypeScript, JSX, or CSS.

The Aha! Develop CLI can create the skeleton of an extension, making it easier to get started.

Click any of the following links to skip ahead:

Install the Aha! Develop CLI

Before you can create an extension, you first need to install the Aha! Develop CLI, using:

$ npm install -g aha-cli


Create a template extension

Now you are ready to create an extension.

$ aha extension:create

Give your extension a human readable name: my-awesome-extension
Who are you? Your personal or organization GitHub handle is a good identifier: aha-app
Each extension must have a universally unique identifer that is also a valid NPM package name.
Generally a good identifier is <organization-name>.<extension-name>.
Extension identifier: aha-app.my-awesome-extension
Creating... Extension created in directory 'my-awesome-extension'

This will create a new directory containing a simple package.json and the skeleton implementation of each type of contribution.

When you have your first set of changes and want to see them on Aha! Develop, run extension:install to install it:

$ aha extension:install
Installing extension 'aha-app.my-awesome-extension' to 'https://my-account.aha.io'
contributes views: 'samplePage'
contributes commands: 'sampleCommand'
Compiling... done
Uploading... done


Update an extension

Finally, once an extension is installed, run extension:watch to quickly iterate on it:

$ aha extension:watch
Watching for changes in the current directory ...
... detected file change: src/commands/sampleCommand.js
Installing extension 'aha-app.my-awesome-extension' to 'http://my-account.aha.io'
contributes views: 'samplePage'
contributes commands: 'sampleCommand'
Compiling... done
Uploading... done

extension:watch will automatically upload changes to your account and will automatically update the page with your changes so they take effect immediately. This makes it very fast to make small changes and see the result.


Related articles

Aha! Roadmaps
Aha! Ideas
© 2021 Aha! Labs Inc.All rights reserved