Moko: Customer Support Platform
Moko is a modern customer support workspace. We designed and built it end to end: a keyboard-first inbox, a ticket detail with macros and an AI summary, a customers CRM with the full profile, a knowledge base for agents and the public help centre, a reports dashboard with live charts, and a customer portal. Eight surfaces, one design system, one team.

Moko replaces the day-to-day surfaces a support team lives in. Inbox, ticket detail, customers, knowledge base, reports, macros, settings, and customer portal. The brief was to ship every surface at the same level of finish, with a design system that holds the whole product together and an interaction quality that does not collapse the moment the agent reaches for the keyboard.



The inbox is the single most important page. The composer toggles between public reply and internal note with a colour change that makes the mode unambiguous before send. Status changes are optimistic with rollback. Tags and priority are edited inline, never in a dialog. An AI summary card sits above threads with three or more messages and surfaces sentiment, plan context, and a suggested next step. A one-click refresh re-rolls the suggestion when the agent wants a different angle.


Customers carry their own history with them. The 360 profile pairs a stats strip with the full ticket list and a custom-fields editor that adds, edits, and removes inline with optimistic feedback. The same shape powers the inbox drawer, so an agent who opens a conversation already sees the customer's plan, location, lifetime CSAT, and last few tickets without leaving the thread.
The knowledge base is two products in one. The admin is a CMS for support content with categories, drafts, and published states. The public side, served at /help, is a marketing-style layout with hero search, category cards, and per-article TOC. Both sides read from the same data.


Macros are not a quick-reply menu, they are a lightweight templating system. Variables resolve from the live ticket and customer when the agent inserts the macro, so the same template feels written for the person on the other side. The combination of macros, the AI summary, and inline edits is what turns the inbox from a list into a workspace.


Every surface ships in light and dark from the first commit. The whole product is token-driven: no hardcoded colour, no hardcoded font weight, no inline style. The design system carries the palette, the type scale, the radii, and the elevations across both themes. Charts and badges read from the same tokens as the buttons, so a theme switch never lies about what is interactive.
What the work delivered, in numbers and in posture.
By the numbers
- 8Surfaces shipped end to endInbox, tickets, CRM, KB, reports, macros, settings, portal
- 5Keyboard shortcutsPower-user inbox with help overlay
- 4Chart typesAll tied to design system tokens
- 0Hardcoded valuesEvery colour and style flows through tokens
Stack
- Next.js16
- React19
- TypeScript
- TanStack Query
- recharts
- react-markdown
Moko is the level we ship at.
If you are building a SaaS that needs the same care across every surface your customers and your team touch, that is the conversation we are after.
Start a conversation