Skip to content

Quickstart

From nothing to a deployed change.

  1. Terminal window
    curl -fsSL https://docs.polymesa.com/install.sh | sh
    Terminal window
    polymesa --version

    Other platforms and manual downloads: Install.

  2. Terminal window
    polymesa auth login --url https://api.polymesa.com

    Opens a browser, then stores the token under the default alias. Confirm:

    Terminal window
    polymesa auth whoami
  3. Terminal window
    polymesa retrieve ./my-workspace
    cd my-workspace

    You now have entities/, guest_files/, automations/, groups/, share_rules/, and email_senders/. This is a good moment to git init — configuration is code, and deploys are much less frightening with history.

  4. Terminal window
    polymesa types .

    Writes entity definitions into .polymesa/ so your editor can autocomplete against your actual schema.

  5. Create automations/Issue/ApplyDefaults.ts:

    import { BeforeInsert, BeforeResult } from "platform:triggers";
    import { Issue } from "platform:entities";
    export default class ApplyDefaults implements BeforeInsert<Issue> {
    beforeInsert(newRecords: Issue[]): BeforeResult<Issue> {
    for (const issue of newRecords) {
    issue.priority ??= "P3";
    issue.status ??= issue.assignee_id ? "assigned" : "new";
    }
    return newRecords;
    }
    }

    Note the array. Triggers are always bulk.

  6. Terminal window
    polymesa deploy . --dry-run

    Reports what would change per folder, without writing anything. Read it before every real deploy — this is where an unintended delete shows up.

  7. Terminal window
    polymesa deploy .

    Create an issue in the app and confirm the defaults applied.