Yanyana
Social game platform for weddings, corporate events, and social gatherings. Supports P2P offline (2-10 players) and online event (50-500+ players) modes across Web (PWA), iOS, and Android. Built with React Native (Expo + CLI), Bun.js + ElysiaJS, Vue 3, and a pnpm workspaces monorepo with 4 apps + 4 shared packages. Features 12+ independent game engines, real-time WebSocket state sync, 39 shared Vue components as a design system, dual payment system (Paddle + In-App Purchase), and 130+ test files with 500+ tests including Stryker mutation testing.
The Challenge
Weddings, corporate events, and gatherings needed a social game platform that works both offline for small groups and online for hundreds of players, across web and mobile.
Our Solution
We built it on a pnpm monorepo (4 apps + 4 shared packages) with React Native (Expo + CLI), a Bun.js + ElysiaJS backend, and Vue 3: 12+ independent game engines, real-time WebSocket state sync, a 39-component design system, dual payments (Paddle + In-App Purchase), and 500+ tests with Stryker mutation testing.
Technologies
Related Work
Contentrain
AI-native content governance ecosystem. Contentrain lets teams extract, govern, and ship structured content straight from their codebase — a local-first, Git-native toolchain (CLI, MCP server, type-safe SDK) plus Contentrain Studio, a conversation-first, self-hostable CMS.
LineDiff
AI-powered text and document comparison platform. Local-first, offline-capable with client-side encryption for privacy. Supports 10+ file formats including txt, docx, pdf, json, xml, csv, md, html, and yaml. Built with Nuxt 4 + Vue 3, Firebase Firestore, and OpenAI API. Features IndexedDB primary storage with Firestore sync queue (local-first architecture), Web Workers for diff computation, Paddle subscription management, and integrations with Google Docs, Notion, and MS Word Add-in.
Visivi
Visivi is an HR platform with both mobile and web portals. We developed the mobile application with React Native, making it cross-platform for both iOS and Android. For the web portal, we used Nuxt.js and Vue.js.