> ## Documentation Index
> Fetch the complete documentation index at: https://docs.formae.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Register an organization

> Create an organization on the formae hub and verify the domain your plugins publish under.

Publishing a plugin to the [formae hub](https://hub.platform.engineering)
requires an organization. An organization owns a domain that you control, and
every plugin you publish lives under that domain, for example
`your-domain.com/my-plugin`. Because the hub verifies that you own the domain,
anyone browsing the hub can trust that a plugin genuinely comes from you.
Browsing the hub is open to everyone; only publishing needs an organization.

<Steps>
  <Step title="Sign in with your GitHub account">
    The hub identifies you through GitHub. Open
    [hub.platform.engineering](https://hub.platform.engineering), select
    **sign in**, and choose **continue with GitHub**.

    <Frame>
      <img src="https://mintcdn.com/platform-engineering-labs/CeFHkIMyr22FubhV/images/plugin-development/hub/register-your-org/01-sign-in.png?fit=max&auto=format&n=CeFHkIMyr22FubhV&q=85&s=6029e4c292f270ea83d11796083e2fa1" alt="The formae hub sign-in page with a continue-with-GitHub button" width="2880" height="1800" data-path="images/plugin-development/hub/register-your-org/01-sign-in.png" />
    </Frame>

    On the GitHub screen that follows, authorize the formae/hub application.
    Authorizing lets the hub read your GitHub identity so it can sign you in. It
    does not grant access to any of your repositories. That access is requested
    later, and only for the specific repository you choose to publish.

    <Frame>
      <img src="https://mintcdn.com/platform-engineering-labs/CeFHkIMyr22FubhV/images/plugin-development/hub/register-your-org/02-authorize-github.png?fit=max&auto=format&n=CeFHkIMyr22FubhV&q=85&s=02b5d5c7b1c3dc4278952c8a5e06658b" alt="GitHub authorization screen for the formae hub application" width="3748" height="1965" data-path="images/plugin-development/hub/register-your-org/02-authorize-github.png" />
    </Frame>
  </Step>

  <Step title="Create your organization">
    A new account does not belong to any organization yet, so your dashboard
    shows a prompt to create one. Select **create organization**.

    <Frame>
      <img src="https://mintcdn.com/platform-engineering-labs/CeFHkIMyr22FubhV/images/plugin-development/hub/register-your-org/03-dashboard-empty.png?fit=max&auto=format&n=CeFHkIMyr22FubhV&q=85&s=eae287977e893ba59a0c29b073250005" alt="An empty hub dashboard prompting to create an organization" width="2880" height="1800" data-path="images/plugin-development/hub/register-your-org/03-dashboard-empty.png" />
    </Frame>

    Enter a display name and the domain you control. The display name appears on
    your plugin pages and in search results. Each domain maps to a single
    organization, and any hostname works, including a subdomain such as
    `demo.example.com`.

    <Frame>
      <img src="https://mintcdn.com/platform-engineering-labs/CeFHkIMyr22FubhV/images/plugin-development/hub/register-your-org/04-create-org.png?fit=max&auto=format&n=CeFHkIMyr22FubhV&q=85&s=006be59dc0d66764684ce9592cce7e86" alt="The create-organization form with display name and domain fields" width="2880" height="1800" data-path="images/plugin-development/hub/register-your-org/04-create-org.png" />
    </Frame>
  </Step>

  <Step title="Verify that you own the domain">
    The hub requires proof that you control the domain before it will publish
    plugins under it. When you create the organization, the hub shows a DNS TXT
    record to add.

    <Frame>
      <img src="https://mintcdn.com/platform-engineering-labs/CeFHkIMyr22FubhV/images/plugin-development/hub/register-your-org/05-domain-pending.png?fit=max&auto=format&n=CeFHkIMyr22FubhV&q=85&s=9fc9d9bf1c6f0a6ac62e332877e9e115" alt="Domain verification pending, showing the DNS TXT record to add" width="2880" height="1800" data-path="images/plugin-development/hub/register-your-org/05-domain-pending.png" />
    </Frame>

    Create that record with your DNS provider using the values shown:

    | Field | Value                                |
    | ----- | ------------------------------------ |
    | Name  | `_formae-verification.<your-domain>` |
    | Type  | `TXT`                                |
    | Value | `formae-verification=<your-token>`   |
    | TTL   | `300`                                |

    The hub re-checks the record every 30 seconds and marks the domain verified
    once it resolves. Propagation can take a few minutes, depending on your
    provider's TTL. Until the domain is verified, the organization cannot publish
    plugins.

    <Frame>
      <img src="https://mintcdn.com/platform-engineering-labs/CeFHkIMyr22FubhV/images/plugin-development/hub/register-your-org/06-domain-verified.png?fit=max&auto=format&n=CeFHkIMyr22FubhV&q=85&s=243e28035cae13d25599f3cf5845079e" alt="Domain verification succeeded, with the organization marked verified" width="2880" height="1800" data-path="images/plugin-development/hub/register-your-org/06-domain-verified.png" />
    </Frame>
  </Step>
</Steps>

Your organization is now verified and ready to publish plugins.

## See also

* [Publish a plugin](/plugin-development/guides/publish-a-plugin): register a plugin from a GitHub repository under your organization.
* [Release a version](/plugin-development/guides/release-a-version): publish a version by pushing a git tag.
