The open-source ClickFunnels alternative.
Self-hosted landing, checkout and upsell pages, generated from a prompt.
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.
The agent composes real components onto the canvas, generates the imagery, and leaves every edit as diffable JSON. No black-box HTML blob.
| 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
- Run it (about 2 minutes)
- Run it from source
- Configuration
- Deploy to Cloudflare Workers
- CLI
- Supported providers
- License
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.
curl -O https://raw.githubusercontent.com/autonnel/autonnel/master/docker-compose.yml
docker compose upOpen 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.comBoth 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.
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:latestTags: :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 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 devThe 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.
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 KVPayment 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).
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:cfAlso available: npm run dev:cf (dev server on the Workers runtime) and
npm run preview:cf (local preview via wrangler dev).
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'- 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)
Node.js (@astrojs/node) and Cloudflare Workers (@astrojs/cloudflare).
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.
- 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
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.
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.

