Skip to content

When the templates run out.

Automeer is templateless automation. Real code, real containers, any API you can reach — and none of it running on your infrastructure.

Currently in private beta. Join the waitlist for priority access when we launch.

The ceiling

Every automation tool works until it doesn't.

You didn't pick a drag-and-drop builder because you couldn't code. You picked it because it was faster, and for a while it was. Then one of these happened.

  • The branch you can't express.So now there are four near-identical flows, and a change means editing all four and hoping you didn't miss one.
  • The integration that isn't in the catalogue.Everything you need is behind an API you can reach in ten lines, and you're building it out of generic HTTP actions and JSON parsing steps instead.
  • The step that needs a real runtime.A library, a specific version, thirty seconds of actual compute — and the platform gives you a text box that runs a sandboxed snippet with a timeout.
  • The automation nobody can review.It isn't in Git. It can't be diffed. It can't be rolled back. When it broke last Tuesday, the only record of what changed is somebody's memory.

You don't need a better builder. You need to write it down.

Worked example

A notification, three ways.

The job

Form submissions land in a Cloudflare D1 table. When one arrives, the team should see it in Teams. That's the whole requirement.

The version that hit the ceiling

There is no D1 connector. So it becomes a scheduled HTTP action against a worker endpoint, a JSON parse step, a loop, a condition to skip the ones already sent, and a Teams post — six steps of glue, none of them the actual work. The schedule is a floor, so “when one arrives” quietly becomes “within five minutes, most of the time”. The credentials live in the tool. Nothing is in Git.

The version that runs on Automeer

pipelines/notify-team.yml yaml
resource_types:
  - name: d1-query
    type: registry-image
    source: { repository: ghcr.io/autyra/d1-query-resource, tag: "1.2" }

  - name: teams-webhook
    type: registry-image
    source: { repository: ghcr.io/autyra/teams-webhook-resource, tag: "1.0" }

  - name: git
    type: registry-image
    source: { repository: ghcr.io/autyra/git-resource, tag: "1.14" }

resources:
  - name: automations
    type: git
    source:
      uri: [email protected]:autyra/automations.git
      private_key: ((github.deploy_key))

  - name: form-submissions
    type: d1-query
    source:
      account: ((cloudflare.account_id))
      token: ((cloudflare.api_token))
      database: formzero
      query: SELECT * FROM submissions WHERE notified = 0

  - name: teams
    type: teams-webhook
    source:
      webhook: ((teams.power_automate_url))

jobs:
  - name: notify-team
    plan:
      - get: automations
      - get: form-submissions
        trigger: true

      # adaptive-card.yml declares inputs: [form-submissions], outputs: [card]
      - task: build-card
        file: automations/tasks/adaptive-card.yml

      - put: teams
        params:
          card: card/payload.json

      - put: form-submissions
        params:
          mark_notified: card/ids.json
Three resources and one job. It triggers on state, not on a clock. d1-query is a resource type we wrote ourselves in an afternoon, because the platform lets you bring your own rather than waiting for a catalogue. The secrets are references, not values. The whole thing lives in a repo, so it diffs, it reviews, and it rolls back.There is no build step anywhere in that pipeline. This is the other thing worth noticing: automation and CI are the same machinery, and you only need one of them.
What the platform does

Triggers off real state, not a schedule

A pipeline watches a database, an S3 prefix, a release feed, a webhook, a Git branch — anything you can write a resource for. It runs when the thing actually changes, and it knows what changed, because the payload comes with it.This is the difference between automation and a cron job that checks. Polling every five minutes is not an event; it’s a guess that costs you five minutes.

Resource types in use today. Every one of them user-written:

  • d1-query
  • s3-prefix
  • github-release
  • teams-webhook
  • git

Usage-based, not user-based

You pay for compute that runs. Not for names on a roster, not a flat fee that lands whether you shipped this month or not.Bursty workloads stop subsidising idle seats — and when nothing is running, nothing is billed.
AUD $150/month platform fee, then AUD $0.05622 per vCPU-hour. See pricing

Reproducible, because nothing is shared

Every step runs in its own container with no implicitly shared state. The hundredth run behaves like the first.No snowflake agents, no “works on the build box”, no drift you discover during an incident.

Genuinely concurrent

across and in_parallel execute concurrently by default, not as an optimisation you opt into after something gets slow.Fan out over a matrix of inputs and the steps run at the same time, because that’s the obvious reading of what you wrote.
- across:
    - var: region
      values: [ap-southeast-2, us-east-1]
  task: deploy
  file: automations/tasks/deploy.yml
In progress

Pipelines that write pipelines

Configuration will be generated programmatically instead of copied between repositories. One definition, applied consistently across every team.When the standard changes, it changes in one place.

All features, and what is not shipped yet

Early access

Ship it as code.

We're onboarding teams in private beta. Tell us roughly what you're running and we'll follow up with next steps.

Thanks. We will be in touch.

Something went wrong. Please try again.

We respect your privacy. No spam, ever.