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

Built with
ElixirPhoenixPhoenix LiveViewEctoPostgreSQLPhoenix ChannelsObanSurrealDB
View live project

Inside the project

01 / 08

A customer record brings the activity timeline, notes and linked deal into one relationship view.

Actual ButlerCRM application views use fictional demonstration data, captured September 5, 2026. The public landing-page capture is shown separately.

ButlerCRM1 / 8

ButlerCRM customer timeline and linked deal with fictional records

A customer record brings the activity timeline, notes and linked deal into one relationship view.

The brief

A problem worth
building around.

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. ButlerCRM brings those records and the next action into a shared application workspace.

Our approach

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.

The experience

What it lets
people do.

The capabilities that turn the underlying engineering into a usable product.

  1. 01

    Keep the relationship together

    Contacts, companies, deals and activity history share a workspace. A team can follow a customer relationship without reconstructing it from separate email, calendar and task tools.

  2. 02

    Move from conversation to follow-up

    Email, calendar and task workflows connect communication to the next action. Pipeline views keep the deal context available while the team works through its day.

  3. 03

    Put assistance inside the workflow

    Lead scoring and follow-up assistance sit alongside the CRM records they relate to. The Elixir/Phoenix rebuild provides the application foundation for those connected workflows.

Project record

What came out of it.

  • 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

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

Under the hood

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. Get in touch and tell us about yours.

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