Self-hosted · Single binary · Internal teams

A pipeline CRM that ships as a single binary.

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.

  • 1binary to deploy — the frontend and migrations are embedded
  • 1dependency — a PostgreSQL 17 database
  • 3ways to run it — Docker (dev), Docker (production), a single binary
localhost:9000
The Leap dashboard with pipeline health and recent tasks

01 — Features

The features that a small team needs.

01

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.

02

Contacts

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.

03

Activities & reminders

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.

04

Role-based access

Roles carry per-action permissions on contacts, leads, pipelines, users, and settings. Three protected roles are ready by default: superadmin, Sales, and Viewer.

05

Audit log

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.

06

Single binary

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

The screens that your team uses every day.

The Leap leads kanban board
Pipeline board
The Leap contacts table
Contacts
Tasks and reminders in Leap
Tasks & reminders

03 — Quickstart

You can run Leap in minutes.

  1. dev
    Docker Compose, development

    One command starts Leap, PostgreSQL, and the pgweb database browser. The development stack includes an admin login.

  2. prod
    Docker Compose, production

    You set real secrets in the env file. Leap does not start when a secret is a placeholder.

  3. bare
    Single binary

    You generate a config, point it at PostgreSQL, and run the file. Migrations apply at startup.

Read the Quickstart
docker-compose.yml
$ 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

stack
  • Go 1.25
  • PostgreSQL 17
  • Vue 3
  • Vite
  • Tailwind CSS 4
  • Docker Compose