Skip to content
Work

01 · Full-stack platform

Gumpun

One platform for a Muay Thai school's customers, staff, and visa cases.

In progress: Internal pilot

Customer chat

Do you offer training with visa support?

We do. Are you looking at an ED or a DTV visa?

  • searchKnowledge
  • createLead

Handed to staff for review

Staff workspace

  • New leadWebsite chatNeeds review
  • Visa caseED visaIn progress
  • Student recordTraining planActive

Escalations wait here for a person.

Illustration
Status
Internal pilot
Stack
  • Next.js
  • React
  • TypeScript
  • PostgreSQL
  • Drizzle ORM
  • Zod
  • Model Context Protocol
  • Stripe
  • Vitest
  • Playwright

Overview

Gumpun is a Muay Thai training and visa services business serving Thai and international customers. I have been developing its digital platform: a customer-facing site, and an internal system the staff use to run the school.

The platform covers training and visa service information, customer inquiries, student records, and case tracking for ED and DTV visa services, with AI-assisted customer support that is designed to hand off to staff rather than replace them.

It is currently running as a protected internal pilot and has not been launched publicly.

The problem

A school that trains students and also supports their visas has two jobs that share the same people and the same data. Customers need clear answers. Staff need one place to see who a student is, what they asked for, and where their case stands.

In practice that means handling inquiries from international customers, explaining training and visa requirements clearly, keeping customer information organised, tracking each customer through the stages of a service, and removing the repetitive part of customer service without removing the people.

Adding AI to that only helps if it is constrained: it has to answer from the business's real information, act only through approved operations, and know when to stop and ask a human.

Architecture

  1. Customer

    • Training information
    • Visa service information
    • Inquiries
    • AI-assisted support
  2. AI agent

    • Knowledge retrieval
    • Customer and case lookups
    • Controlled lead creation
    • Staff escalation
  3. Staff

    • Student records
    • Customer management
    • Visa case tracking
    • Dashboards and tasks
    • Human review
  4. Data

    • PostgreSQL
    • Drizzle migrations
    • Zod validation
Customer-facing services and staff operations share one application and one database. The AI agent reaches both only through a tool surface.

What the agent can touch

The agent's tools come in two kinds, kept apart on purpose. Read tools look things up. Action tools change something, and there are only three of them.

Can read

8 · Look things up

  • searchKnowledge
  • getCustomer
  • getVisaCase
  • getCustomerStage
  • getGym
  • searchGyms
  • getPricing
  • getBusinessInformation

Can change

3 · Controlled actions

  • createLead
  • createTask
  • requestHumanReview

What exists, and what doesn't

In the pilot

  • Next.js and TypeScript application on PostgreSQL, with the schema managed through Drizzle migrations
  • Customer-facing site for training and visa services, with inquiry capture
  • Internal administration for student records, customer management, and visa case tracking
  • Staff dashboards, task management, and human review workflows
  • A Model Context Protocol tool surface for the AI agent: eight read tools and three controlled actions, each group with its own tests
  • Automated tests with Vitest, plus acceptance scenarios and end-to-end browser tests with Playwright

Not built yet

  • Public launch, which is a separate decision from the pilot
  • Multichannel customer support beyond the website

My role

  • Product planning, feature specification, and system architecture decisions.
  • Design of the AI agent: what it may read, what it may do, and when it must escalate.
  • A deliberate split between the engineering agent that builds the platform and the customer-service agent that runs inside it.
  • UI and UX direction, testing requirements, and release planning.
  • Development orchestration. Implementation was done with AI coding agents working from my specifications. I reviewed the results, set the tests a change had to pass, and decided what was ready.

What I learned

Constrain the agent first

The useful design work was not the prompt. It was deciding the small set of operations the agent is allowed to perform, and making everything else impossible rather than discouraged.

A pilot is a product decision

Keeping the platform in a protected pilot until it has earned a public launch is slower, and it is the right call for a system that handles people's visa cases.

Next · 02

ERP AI

Ask a business question in plain language. Get an answer from the ERP.