01 · Full-stack platform
Gumpun
One platform for a Muay Thai school's customers, staff, and visa cases.
In progress: Internal pilotCustomer 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.
- 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
Customer
- Training information
- Visa service information
- Inquiries
- AI-assisted support
AI agent
- Knowledge retrieval
- Customer and case lookups
- Controlled lead creation
- Staff escalation
Staff
- Student records
- Customer management
- Visa case tracking
- Dashboards and tasks
- Human review
Data
- PostgreSQL
- Drizzle migrations
- Zod validation
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.