Romoc
Verified, trust-first roommate platform for India
Next.jsExpo SDK 52React NativeFastifyZodTurborepoDocker
4-app Turborepo monorepoUnified Expo/Next.js UIStrict bundle budgets
The problem
Finding a roommate in India involves massive trust gaps. Existing platforms lack rigorous verification and leave users open to fraud. The goal was to build a trust-first platform with robust KYC, automated verification, and a unified architecture across web, mobile, and admin surfaces.
Key decision
A pnpm workspace/Turborepo monorepo with `apps/{api,web,admin,mobile}` and shared `packages/*`. By bridging React Native primitives to the web via `react-native-web`, screens share components with mobile natively. Strict gzip/Hermes bundle-size budgets were enforced in CI.
How it works
The backend is powered by Fastify + Zod, running alongside Postgres (via Drizzle). The frontend consists of a Next.js App Router for web/admin, and an Expo (SDK 52) / React Native app for mobile using Expo Router.
Instead of tightly coupling vendor APIs, the architecture uses swappable provider adapters (packages/kyc-adapter, chat, push, analytics) allowing deterministic fakes in development and one-line swaps for production contracts.
Results
Delivered a scalable cross-platform architecture where the mobile, web, and admin dashboards share a unified design system and types. The entire stack is containerized via Docker Compose for easy local provisioning.
What went wrong
The biggest bottleneck was the Expo-Next.js code sharing via react-native-web. Trying to force mobile-first touch gestures to map cleanly onto desktop mouse hover states created a mountain of edge cases that we eventually solved, but it proved that write-once-run-anywhere always has hidden UI tax.
This project heavily relies on swappable provider fakes in development until vendor contracts (e.g. KYC, SMS) are finalized, demonstrating a highly decoupled and testable architecture.