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 ships two ways: as a self-hostable application (Docker image, below) and as an Astro integration (npm package) you can drop into an existing Astro project.

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.

Use it as an Astro integration

If you already have an Astro project, install the package and register the integration:

npm install autonnel @astrojs/node @prisma/client prisma
// astro.config.mjs
import { defineConfig } from 'astro/config';
import autonnel from 'autonnel';
import node from '@astrojs/node';

export default defineConfig({
  output: 'server',
  adapter: node({ mode: 'standalone' }),
  integrations: [autonnel()],
});

The package's prisma/schema.prisma must be reachable by your project's Prisma client. The recommended pattern is a prisma.config.ts pointing schema at node_modules/autonnel/prisma/schema.prisma. Then npm run db:push and start your dev server. Full walkthrough: Manual integration.

npm create autonnel@latest my-funnel is also available. It clones this repository into my-funnel as a starting point, which is useful if you intend to modify Autonnel itself. For running Autonnel as a product, prefer the Docker path above; for embedding it in your own app, prefer the integration.

Configuration

import autonnel from 'autonnel';

autonnel({
  paymentProviders: ['paypal', 'stripe'],
  emailProvider: 'resend',
  ecommerceAdapter: 'shopify',
  hooks: {
    onOrderCreated: async (ctx, order) => {
      // ship to your downstream system
    },
  },
});

AutonnelOptions

Option Type Description
paymentProviders ('paypal' | 'stripe')[] Enabled payment providers
emailProvider 'smtp' | 'resend' Outbound email transport
ecommerceAdapter 'shopify' | 'woocommerce' Source of truth for products and orders
hooks Partial<Hooks> Lifecycle hooks (onOrderCreated, onSiteCreated, ...)

Advanced extension points such as custom auth are available through plugins (e.g. @autonnel/plugin-oauth2).

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 project that has autonnel installed (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 12

  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