Admin system
eSIM back office
The operations side of the same store: products, pricing, orders, refunds, suppliers and payments in one place. It actively surfaces problems like "paid but never fulfilled" instead of waiting to be asked.
What this system does
- Orders, revenue, unpaid and unfulfilled counts at a glance
- AI pricing suggestions and bulk listing changes
- Refund review, low-data alerts and a report of searches that found nothing
- Roles, permissions, audit trail and a login allow-list
Inside the product
Live screens. Fields containing customer data are masked. Tap a screenshot to see it full size.

Dashboard: today’s orders, revenue, unpaid, and an alert for paid-but-unfulfilled orders. 
Orders: status, payment and provisioning progress on one row. Customer data masked. 
Products: listing state, price and the matching supplier plan. 
AI pricing: suggested prices from cost and competitors, applied in bulk.
More work
Cases from the same service come first.

E-commerce
eSIM 226 storefront
A travel eSIM store in eight languages with multi-currency pricing and two Taiwanese payment gateways. Paid orders are provisioned with the upstream supplier automatically and the install email goes out on its own.
- Eight locales and multiple display currencies, so Japanese buyers see yen
- Automatic provisioning across two suppliers, with failover
Next.js · PostgreSQL · Keycloak · ECPay/NewebPay · Kubernetes

Harness / internal tools
v-terminal developer platform
Our own browser-based platform for building and operating software: terminals, Kubernetes, Helm GitOps deploys, CI, registry and an AI coding agent in one screen. This website was shipped from zero using it.
- Git push to self-hosted runner to Harbor to Helm sync, one pipeline
- AI console: send a task from your phone, the agent reads the spec, edits and tests
Next.js · Node.js · SQLite · Kubernetes client · Claude Agent SDK
See insideHarness
LINE bot support
AgentHub support and CRM
Multi-channel AI support: LINE, a website widget and email land in one inbox. The bot answers first and hands over to a human when it cannot. Flows are drawn, not coded.
- LINE, web widget and email in a single conversation thread
- Drag-and-drop flow editor, so changing a flow is not a deploy
Next.js · LINE Messaging API · PostgreSQL · Claude/Gemini
See insideLINE bot support