Skip to content

Introduction ​

What is Bonds? ​

Bonds is a modern, self-hosted personal relationship manager (personal CRM). It helps you keep track of the people in your life — their birthdays, how you met, what you talked about, and everything that matters about your relationships.

Inspired by Monica, Bonds is a ground-up rewrite using Go and React instead of PHP/Laravel + Vue. It ships as a single binary with an embedded SQLite database, making deployment trivial.

Why Bonds? ​

Monica is a beloved open-source personal CRM with 24k+ stars. But as a side project maintained by a tiny team, development has slowed — 700+ open issues and limited bandwidth.

Bonds picks up where Monica left off:

  • Fast & lightweight — Single binary, starts in milliseconds, minimal memory footprint
  • Easy to deploy — One binary + SQLite. No PHP, Composer, or Node runtime required
  • Modern UI — React 19 + TypeScript with Ant Design, smooth SPA experience
  • Well tested — 585+ backend tests, 82 frontend tests, 104 E2E test cases
  • Community first — Built for contributions and fast iteration

Architecture ​

┌─────────────────────────────────────┐
│           Single Binary             │
│  ┌──────────┐  ┌──────────────────┐ │
│  │ Go API   │  │ Embedded React   │ │
│  │ (Echo)   │  │ SPA (Vite build) │ │
│  └────┬─────┘  └──────────────────┘ │
│       │                             │
│  ┌────┴─────┐  ┌──────────────────┐ │
│  │ GORM ORM │  │ Bleve Search     │ │
│  └────┬─────┘  └──────────────────┘ │
│       │                             │
│  ┌────┴─────┐                       │
│  │ SQLite / │                       │
│  │ Postgres │                       │
│  └──────────┘                       │
└─────────────────────────────────────┘
  • Backend: Go with Echo HTTP framework, GORM ORM, JWT auth
  • Frontend: React 19 + TypeScript + Ant Design v6 + TanStack Query v5
  • Database: SQLite (default) or PostgreSQL
  • Search: Bleve v2 with CJK tokenizer
  • Sync: CardDAV/CalDAV via go-webdav
  • Build: Single binary with go:embed — frontend is compiled into the Go binary

Credits ​

Bonds stands on the shoulders of @djaiss, @asbiin, and the entire Monica community. The original Monica remains available under AGPL-3.0 at monicahq/monica.

License ​

Business Source License 1.1 (BSL 1.1):

  • Individuals: Free for any non-commercial use
  • Organizations: Commercial use requires a paid license
  • Change Date: Each version automatically converts to AGPL-3.0 on the fourth anniversary of that version's first publicly available distribution
  • Contributions: Submitting a contribution means accepting the contribution terms, including waiving all ownership and other rights or claims in that contribution to the fullest extent permitted by law

Released under the BSL-1.1 License (each version converts to AGPL-3.0 four years after its first public release)