← Projects
Web development

Axiom CRM Dashboard

A real-time lead management dashboard that gives Axiom Web Solution's team a single place to view, triage, and track leads coming in from their website forms and WhatsApp conversations.

Axiom CRM dashboard, leads list view

The problem

Before this build, Axiom had no centralized system for tracking leads. Submissions from their website (contact form, SEO audit popup) had no destination beyond an email inbox, and leads generated through WhatsApp existed only inside individual conversations on the team's phone. There was no shared view of who had submitted, what stage they were at, or who on the team was handling them, no status tracking, no assignment, no reporting on where leads were coming from or how they converted.

What I built

A dashboard, deployed at crm.axiomwebsolution.com, backed by Supabase. Website form submissions post directly into the CRM's database the moment they're submitted, and the leads table updates live using Supabase Realtime, no refresh needed. WhatsApp leads are added manually through an in-dashboard form, since automating that number would disrupt the team's daily use of it. Every lead has a detail page with source-specific data, an editable status, and a notes log. Admins can assign leads to team members, and role-based access is enforced at the database level so agents only ever see leads assigned to them.

Inside the dashboard

Axiom CRM sign-in screen

Sign-in

Email/password authentication with no public signup; admins add accounts manually, keeping the CRM closed to the two or three people who actually use it.

Axiom CRM leads list, realtime table

Leads list (Realtime table)

Shows all leads newest-first, filterable by source and status, with search and inline status editing, so the team can triage without opening every record.

Axiom CRM lead detail page

Lead detail page

Displays only the fields that source actually captures, plus a running notes log, so reps have full context on a lead without digging through raw form data.

Axiom CRM add lead form

Add lead (manual entry)

Lets the team log WhatsApp-originated leads by hand, since WhatsApp intentionally isn't auto-synced, keeping the number usable for daily manual chatting.

Axiom CRM analytics page

Analytics page

A lead-volume-over-time chart broken out by source, a conversion funnel using the CRM's actual status stages, and KPI cards, giving Axiom visibility into which channels are actually producing.

Axiom CRM admin and users page

Admin & users page

Admins can create accounts, deactivate/reactivate them, or delete them outright, without needing direct Supabase access for routine team changes.

Lead assignment

Admins can assign any lead to a specific team member; agents only see leads assigned to them, so ownership is clear and no lead gets worked twice.

Password reset

A self-service password reset flow with transactional email delivery via Brevo SMTP, so a locked-out team member doesn't need an admin to get back in.

WordPress lead capture

Contact Form 7 submissions on axiomwebsolution.com post straight into the CRM in real time, so no lead sits in an inbox waiting to be manually entered.

Tools used

HTML/CSS/JavaScript Supabase (Postgres) Row Level Security Supabase Realtime Supabase Auth Edge Functions Chart.js WordPress / Contact Form 7 Brevo SMTP
Joseph Nyakobi, CEO of Axiom Web Solution
Joseph Nyakobi
CEO · Axiom Web Solution

“awaiting review”

Discuss your project