Rova admin app
Designed and built the whole system in-house.
Six Rova Services brands were running bookings, price books and job dispatch out of separate spreadsheets and LINE chats, with no shared view of what was scheduled where.
One admin app covering bookings, a shared price book, dispatch and job status across all six brands, with per-brand permissions.
Runs today as the operational backbone for all six Rova brands — every booking, quote and job status passes through it.
TypeScriptNext.jsSupabasePostgreSQL
Rova sales assistant
Built and maintain the assistant engine and its price-book integration.
Sales questions came in on a website widget, a LINE official account and WhatsApp separately, each needing a person to answer the same questions about price and availability.
One AI sales assistant answering across all three channels from a single shared price book, with a clear handover to a human for discounts.
Answers day-to-day pricing and availability questions on the website, LINE and WhatsApp today, and hands off live chats to a person when a discount or edge case comes up.
Cloudflare WorkersClaude & OpenAI APIsLINE Messaging APIWhatsApp Cloud APISupabase
Six brand sites
Designed the shared system and built all six sites.
Six sister brands needed bilingual marketing sites without six separate design systems or six separate hosting setups to maintain.
Six bilingual EN/TH marketing sites sharing one design system, statically exported and deployed to the same shared hosting.
All six sites are live today, each with its own brand colours and copy on the same underlying components and deploy pipeline.
TypeScriptNext.jsGoogle Workspace
Guest messaging automation
Built the messaging automation end to end.
Airbnb hosts were sending check-in details and follow-ups manually, and messages got missed on the day of arrival.
Automated Airbnb guest messaging covering check-in details, timed follow-ups and escalation to a person for anything the automation can't answer.
Sends check-in and follow-up messages automatically for every Airbnb booking it's connected to today, and flags anything unusual to a person.
Cloudflare WorkersWhatsApp Cloud APISupabasen8n
Media pipeline
Built and run the generation and optimisation pipeline.
Every brand site needed a full, consistent image set, and producing and resizing photos by hand for six sites was slow and inconsistent.
A generated-and-optimised photo pipeline that produces each site's image set as WebP files in a size ladder for different screen widths.
Generates and optimises the image set for each of the six brand sites today, without a manual export step per image.
PythonTypeScriptClaude & OpenAI APIs
Invoice and quote tools
Built and maintain the internal tools.
The cleaning and laundry sides of the business were writing quotes and invoices by hand in chat and spreadsheets, with no shared record.
Small internal tools for generating quotes and invoices from the shared price book, used directly by the cleaning and laundry teams.
Used daily by the cleaning and laundry teams to generate quotes and invoices from the shared price book.
TypeScriptSupabaseXero & QuickBooks