Pipeline kanban
Custom stages have open, won, and lost outcomes. Leads move across the board. One open lead per contact, pipeline, and program prevents duplicates.
Self-hosted · Single binary · Internal teams
Leap tracks contacts and leads for internal teams. It has a kanban pipeline, reminders, role-based access, and a full audit log. One Go binary and one PostgreSQL database are the whole deployment.
$ just docker-up ✓ postgres healthy ✓ pgweb http://localhost:8081 ✓ leap http://localhost:9000
dev login — admin@admin.com · admin

01 — Features
Custom stages have open, won, and lost outcomes. Leads move across the board. One open lead per contact, pipeline, and program prevents duplicates.
One record per client holds multiple phones and emails, tags, statuses, and notes. The app stores phone numbers in the international format. You can import and export contacts as CSV files.
Every lead has a timeline of tasks. A quick reply logs an outcome and can create the next task. Reminders use the nudge lead time and show overdue work.
Roles carry per-action permissions on contacts, leads, pipelines, users, and settings. Three protected roles are ready by default: superadmin, Sales, and Viewer.
The audit log records every change with the user, the time, and a JSON diff. The activity feed shows the whole team what happened, and when.
The Go backend embeds the Vue frontend and all migrations. You deploy one file and start it with one docker compose command.
02 — Inside the app



03 — Quickstart
One command starts Leap, PostgreSQL, and the pgweb database browser. The development stack includes an admin login.
You set real secrets in the env file. Leap does not start when a secret is a placeholder.
You generate a config, point it at PostgreSQL, and run the file. Migrations apply at startup.
$ cp docker/.env.example docker/.env $ docker compose -f docker/docker-compose.yml up -d ✓ leap http://localhost:9000
migrations run at startup — a restart is safe