Skip to content
View autonnel's full-sized avatar

Block or report autonnel

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
autonnel/README.md

Autonnel

The open-source ClickFunnels alternative.
Self-hosted landing, checkout and upsell pages, generated from a prompt.

License: Apache-2.0 npm Docker image Docs

Website · Quick start · Docs · Why not ClickFunnels · Discussions


Autonnel is a funnel builder you run yourself. It renders the whole money path - landing page, order form, order bumps, one-click upsells, thank-you page - runs A/B tests across entire funnels, sends server-side conversion postbacks that survive iOS tracking loss, and writes every order back to Shopify, WooCommerce or Picocart.

Apache-2.0, no commercial-use carve-out, no per-contact fee, no per-funnel fee. Your orders and customer data live in a Postgres database you control.

Describe a page, get a page

Typing a prompt in the Autonnel editor and watching it compose a landing page from real components

The agent composes real components onto the canvas, generates the imagery, and leaves every edit as diffable JSON. No black-box HTML blob.

Wire the funnel, publish it

Building a multi-step funnel in the Autonnel editor and publishing it

Why people switch

Autonnel Hosted funnel platforms
Licence Apache-2.0, OSI-approved, no agency restriction Proprietary
Price $0 self-hosted. Managed cloud from $29/mo + 1% GMV $97-$297/mo, per-contact limits
Where orders live Your Postgres Their platform
If you stop paying Nothing stops - it is the same code Funnels go offline
Ad attribution Server-side postbacks, click id carried through checkout Pixel and integration based
Agents MCP server + Claude skills in the box: an agent can read and write funnels, pages and orders Not exposed
Catalog Shopify, WooCommerce or Picocart as source of truth Built into their platform

Longer, and more honest about where the hosted platforms win: Autonnel vs ClickFunnels · vs CartFlows · vs systeme.io · licences compared

Table of contents

Autonnel is a self-hostable application. Run the Docker image (below) if you just want the product, or clone the repository if you intend to modify Autonnel itself and deploy it to Node or Cloudflare Workers.

Run it (about 2 minutes)

curl -O https://raw.githubusercontent.com/autonnel/autonnel/master/docker-compose.yml
docker compose up

Open http://localhost:4321 and complete the /setup wizard to create the admin account. That is the whole setup.

The compose file starts Postgres, applies the schema, and runs Autonnel. You do not need Node, an external database, an S3 bucket, an email provider or a store connected to boot it. Those are configured later in the admin UI under Settings, and only for the features that use them:

You want Configure in Settings
Product and order data Ecommerce: Shopify, WooCommerce or Picocart
Taking payments Payments: Stripe or PayPal
Media uploads Storage: any S3-compatible bucket (R2, S3, MinIO, ...)
Receipts, recall emails Email: SMTP, Resend or AWS SES
AI page generation LLM: any OpenAI-compatible endpoint

Before putting it on a public host, set your own secrets in a .env file next to docker-compose.yml:

AUTH_SESSION_SECRET=$(openssl rand -hex 32)
CREDENTIALS_ENCRYPTION_KEY=$(openssl rand -base64 32)
ADMIN_DOMAIN=admin.example.com

Both are required whenever NODE_ENV is not development/test, which is the case inside the published image. The compose file ships insecure development defaults so that the first run needs zero configuration. Generate each value once and keep it stable: rotating them invalidates sessions and makes stored provider credentials unreadable.

Container image

Multi-arch images (linux/amd64, linux/arm64) are published to GHCR:

docker run -p 4321:4321 \
  -e DATABASE_URL="postgresql://user:pass@host:5432/autonnel" \
  -e ADMIN_DOMAIN="admin.example.com" \
  -e AUTH_SESSION_SECRET="$(openssl rand -hex 32)" \
  -e CREDENTIALS_ENCRYPTION_KEY="$(openssl rand -base64 32)" \
  ghcr.io/autonnel/autonnel:latest

Tags: :latest (most recent stable), :1.3.0 (exact version, recommended for production), :1.3 (auto-update on patches), :1 (auto-update on minor and patches). The container listens on 4321 and has a HEALTHCHECK against /api/health (database plus cache connectivity).

Schema changes ship with the image. After pulling a newer tag, apply them with:

docker compose up -d           # the one-shot `schema` service re-runs on every up
# or, for a plain `docker run` setup:
docker run --rm ghcr.io/autonnel/autonnel:latest \
  node_modules/.bin/prisma db push --schema=./prisma/schema.prisma \
  --url "postgresql://user:pass@host:5432/autonnel"

The image does not ship prisma.config.ts, so Prisma reads the datasource from --url rather than from DATABASE_URL.

Run it from source

Use this path when you intend to modify Autonnel itself, or want to deploy to Cloudflare Workers. Requires Node 22+ and a PostgreSQL database.

npm create autonnel@latest my-funnel   # clones this repository, drops git history
cd my-funnel
cp .env.example .env                   # set DATABASE_URL and ADMIN_DOMAIN
pnpm install                           # this repository is pnpm-managed
npm run db:push
npm run dev

The repository ships pnpm-lock.yaml and pins dependency overrides in pnpm-workspace.yaml, so install with pnpm 10+. npm install resolves a different tree and ignores those pins.

For running Autonnel as a product, prefer the Docker path above: it needs no Node toolchain and no external database.

Configuration

Autonnel reads two kinds of configuration. Environment holds only operational settings; everything else lives in the admin UI and is stored in the database.

DATABASE_URL="postgresql://user:password@host:5432/db"  # required
ADMIN_DOMAIN="admin.example.com"      # hostnames serving the admin UI
AUTH_SESSION_SECRET="..."             # required in production, openssl rand -hex 32
CREDENTIALS_ENCRYPTION_KEY="..."      # required in production, openssl rand -base64 32
CRON_KEY="..."                        # optional, protects the HTTP cron endpoints
LOG_LEVEL=info                        # optional: debug | info | warn | error
DEFAULT_CURRENCY=USD                  # optional storefront fallback
REDIS_URL="redis://..."               # optional, Node only; Workers use KV

Payment providers, email transport, ecommerce adapter, S3 storage, LLM keys, ad platforms, branding and domains are all configured under Settings in the admin UI, per install. Full reference: Configuration.

Custom auth and OAuth ad flows are available through plugins (e.g. @autonnel/plugin-oauth2, @autonnel/plugin-ads).

Deploy to Cloudflare Workers

Static assets are unmetered on Workers, so typical funnels run within Cloudflare's free tier. The repository ships the full Workers toolchain: a worker entry with the cron scheduled handler (src/cf-worker.ts), wrangler.toml generation, KV cache wiring and Hyperdrive for Postgres.

npx wrangler login
npx wrangler kv namespace create CACHE_KV
npx wrangler hyperdrive create autonnel-db --connection-string="postgresql://..."
# .env: set CF_WORKER_NAME, CF_KV_NAMESPACE_ID, CF_HYPERDRIVE_CONFIG_ID
npx wrangler secret put DATABASE_URL
npx wrangler secret put AUTH_SESSION_SECRET
npx wrangler secret put CREDENTIALS_ENCRYPTION_KEY
npm run deploy:cf

Also available: npm run dev:cf (dev server on the Workers runtime) and npm run preview:cf (local preview via wrangler dev).

CLI

Run these from inside a source checkout (they use that project's .env and database):

npx autonnel admin:create <email> <password>      Create (or grant) a full-access admin user
npx autonnel password:reset <email>               Reset a user's password (auto-generated)
npx autonnel authorize                            Authorize this machine against the marketplace
npx autonnel orders                               List purchased plugins and template packs
npx autonnel install <item>                       Download and install a purchased pack
npx autonnel --version / --help

In a Docker deployment, run them inside the container:

docker compose exec app node dist/cli/index.js admin:create you@example.com 'a-strong-password'

Supported providers

  • Payments: PayPal, Stripe
  • Email: SMTP, AWS SES, Resend
  • E-commerce: Shopify, WooCommerce, Picocart (Autonnel's own self-hostable commerce backend, a drop-in alternative to Shopify/WooCommerce)

Runtime support

Node.js (@astrojs/node) and Cloudflare Workers (@astrojs/cloudflare).

Agents and the MCP server

Autonnel exposes its own surface to agents rather than hiding it. A scoped Bearer key plus the built-in MCP server lets an agent list funnels, create and edit pages, and read orders directly; the SKILL.md files ship in the box so Claude picks up the workflows without extra prompting.

Project family

  • autonnel - this repository, the funnel builder
  • picocart - open-source headless commerce backend, Shopify-API compatible
  • plugin-oauth2 - OAuth/OIDC login provider
  • plugin-ads - ad-platform OAuth connectors

Contributing

Issues and pull requests are welcome. Start with CONTRIBUTING.md, and use Discussions for questions and ideas. If Autonnel is useful to you, a star helps other people find it.

License

Apache-2.0, see LICENSE. No commercial-use restriction and no separate agency tier: run it for yourself, for clients, or inside a paid service.

Popular repositories Loading

  1. autonnel autonnel Public

    The open-source, AI-native upgrade to ClickFunnels, build funnels with checkout, upsells & ad attribution.

    TypeScript 14

  2. picocart picocart Public

    Open-source, self-hostable headless commerce backend: products, orders, and customers with an admin UI and a Shopify-compatible Admin API. Runs on Node and Cloudflare Workers.

    TypeScript 2

  3. create-autonnel create-autonnel Public

    1

  4. autonnel-skills autonnel-skills Public

  5. awesome-copilot awesome-copilot Public

    Forked from github/awesome-copilot

    Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.

    Python

  6. extensions extensions Public

    Forked from OpenHands/extensions

    Public registry for OpenHands extensions.

    Python