Skip to main content

We use cookies for analytics. Privacy

Back to Work
Business SystemsCase study

ButlerCRM

Contacts, deals, email, calendar, and tasks in one app

Project Focus
ElixirPhoenixPhoenix LiveViewEctoPostgreSQLPhoenix ChannelsObanSurrealDB
View live project
ButlerCRM landing page — "Close the other four tabs", the all-in-one CRM built on Phoenix LiveView

Live landing page at butlercrm.com.

Elixir/Phoenix LiveView
Stack
BEAM fault-tolerant processes
Architecture
Phoenix Channels + Presence
Real-time
NestJS → Elixir/Phoenix
Migration
01

Challenge

Small teams run their pipeline across four disconnected tools — a spreadsheet for contacts, the inbox for email, a calendar for meetings, sticky notes for tasks — with no single source of truth. The first ButlerCRM build on NestJS then hit a wall the moment collaboration went multi-user: WebSocket connections buckled under load and Node's single-threaded model bottlenecked concurrent work.

02

Solution

Rebuilt ButlerCRM from the ground up on Elixir/Phoenix LiveView. Contacts, deals, email, calendar, and tasks live in one app, server-rendered with real-time updates pushed over the wire — no separate SPA to keep in sync. The BEAM VM gives per-user process isolation and fault tolerance, Phoenix Channels and Presence power live collaboration, and Ecto + PostgreSQL back a multi-tenant SaaS where every workspace gets its own subdomain. AI agents (with a SurrealDB memory layer) handle lead scoring and follow-up.

03

Results

  • Migrated off NestJS to a single Elixir/Phoenix LiveView codebase
  • Contacts, deals, email, calendar, and tasks unified in one app
  • Real-time collaboration via Phoenix Channels + Presence
  • Multi-tenant SaaS — every workspace on its own subdomain
  • AI agents for lead scoring and automated follow-up

System Architecture

Elixir/Phoenix LiveView architecture with multi-tenant, fault-tolerant real-time collaboration

frontend
backend
database
service
ai
LiveView socketPresenceEnqueue jobsAgent calls
LiveView UI
Server-rendered realtime
Phoenix App
Elixir contexts + LiveView
Channels + Presence
Real-time collaboration
PostgreSQL + Ecto
Multi-tenant data store
Oban
Background jobs & email
AI Agents
Lead scoring + SurrealDB memory

Elixir/Phoenix LiveView architecture with multi-tenant, fault-tolerant real-time collaboration

Facing Similar Challenges?

Every business is different, but the problems tend to rhyme. If someone sent you, get in touch and tell us about yours.

A conversation, not a pitch
No obligation
We reply when we can