Skip to main content

CompleteStatus: Built. Completed as far as its page describes, and not being developed further now.

Every project’s status →

01.32Hackathon app

Bpai Dûay Gan (Go Together)

A hackathon app co-built by AR Labs that pairs Thai locals with nomads in Chiang Mai for events and skill swaps, with chat translated by Claude.

Source · public repositoryrichardmthompson / bpai-duay-gangithub.com (opens in a new tab)
American and Soviet engineers gather round the Apollo-Soyuz docking mechanism after a test, 1974
On this page
  1. What it does
  2. How it works
  3. Decisions
  4. What exists today

Bpai Dûay Gan (ไปด้วยกัน, "go together") is a mobile web app that AR Labs helped build in two days at the Claude Community Hackathon in Chiang Mai, Thailand, on 26 and 27 September 2026. It pairs Thai locals with the city's digital nomads and expatriates, so that nobody has to walk into an event alone and both sides have something to offer the other. A team of six built it, among them Richard M. Thompson, who founded AR Labs, and we host the source code, which is public under the MIT licence.

What it does

  • Events in your language. Local Thai events and nomad workshops in one list, shown in Thai or English.
  • Event buddy. Pick an event, tap "Need a buddy", and get matched with someone from the other community who also wants to go.
  • Skill swaps. Everyone lists what they can give and what they want to learn. Locals might offer the northern Thai dialect, street food knowledge or help with paperwork; visitors might offer English conversation or technical help. Matches run both ways.
  • Chat across the language line. Each person writes in their own language. The other person reads it in theirs, translated with attention to politeness and cultural context, and sometimes with a one-line note explaining an idiom or nuance they would otherwise miss.

How it works

FIG. 01
flowchart LR
  W["Web app (Next.js PWA)"] -->|"HTTPS /v1"| A["Node API"]
  W <-->|"WebSocket"| A
  A --> DB["PostgreSQL"]
  A -->|"after the send"| C["Claude Haiku translates"]
  C --> A

The front end is a Next.js progressive web app (PWA), a website that can be installed on a phone's home screen like an app. Every visible string exists in English and Thai, and the Thai strings are type-checked against the English ones, so a missing translation fails the build. A Node.js API serves the data over HTTPS and pushes chat messages in real time over a WebSocket, with PostgreSQL for storage. Sign-in uses one-time email links.

Decisions

  • Translation never blocks a message. When someone sends a chat message, the original is stored and delivered at once. The API then asks Claude Haiku for the translation and pushes it when it arrives, so a slow translation costs the reader a moment of "translating…", never a stuck send.
  • The translation prompt was built from failures it had to fix. A set of test phrases was run through the real translation function, and every rule in the prompt answers a specific mistake seen there. Thai politeness particles leaked into English lines. Thai counts evening hours on its own scale, so สี่ทุ่ม (10 pm) came back as "4 PM". "My Thai isn't very good yet" was turned into a question about the other person's Thai. Pronouns did not match the speaker's gender. Well-known Chiang Mai places were transliterated literally instead of using the names Thai people actually use. The prompt states each rule plainly and keeps the examples in the test set, so it stays short enough to read at a glance.
  • A mock back end for the demo. With no API configured, the web app runs against an in-browser mock seeded with demo profiles. Each browser tab signs in as a different person and real-time messages pass between tabs, so a two-person chat can be demonstrated on one laptop without a server.

What exists today

The app was deployed to a single server for the hackathon and pitched at the end of the weekend, with seeded demo accounts for the demonstration. The repository holds the full source, the deployment scripts and the team's pitch deck. It was built as a hackathon entry and has not been developed since.

In the same week we also contributed product design and engineering to a separate team entry in a local builders' competition: a marketplace connecting households in Chiang Mai with air-conditioning technicians, whose first version was designed as a service run by hand through a messaging app before any dispatch software was built.