weblo: A shared space for two — across mobile, desktop and web
weblo is a cross-platform app where two people share a private space together: a collaborative journal, a chat and video calls — in sync across mobile, desktop and the web. The space is designed mainly for couples.
The home screen: quick access to video call, journal and chat
My role
Solo project from end to end — product, architecture, the cross-platform frontend (Expo, Electron, web) and the self-hostable backend with real-time synchronization.
What weblo does
- Shared journal with a collaborative canvas that both people edit in real time
- Chat between the two people
- Video calls right inside the shared space (WebRTC)
- Partnership model — a private space that connects exactly two people (main use case: couples)
- Multilingual (German, English, Japanese) and with a light/dark theme
Video call view with the call controls
Onboarding: create an account and connect with your partner
Technical challenges
- Real-time collaboration — the shared canvas and the journal documents are synchronized via Yjs (CRDT) and a Hocuspocus WebSocket server, so that changes from both sides converge — even offline and across reconnects.
- One product, three platforms — a shared TypeScript base for the Expo mobile app, the Electron desktop app and the web, without splitting the codebase in three.
- Self-hostable backend — Hono server (Bun) with Drizzle/Turso, file uploads via MinIO and authentication via Better Auth.
Tech stack
- Frontend: React, React Native (Expo), Electron, TanStack Router, Tailwind, shadcn/ui
- Backend: Hono (Bun), Drizzle ORM, SQLite/Turso, Better Auth, MinIO
- Realtime: Yjs (CRDT) + Hocuspocus over WebSockets, video calls over WebRTC
- Monorepo: Turborepo, plus an Astro/Starlight docs site
Status
weblo is a working prototype and currently paused. A live version is available at weblo-webapp.vercel.app.


