weblo

MB作成者:Malte Budig
weblo — ビデオ通話、ジャーナル、チャットを備えたホーム画面

weblo は、2人が共通のプライベートな空間を共有するプラットフォーム横断型アプリ(モバイル、デスクトップ、Web)です。リアルタイムキャンバス(Yjs/Hocuspocus)を備えた共同ジャーナル、チャット、ビデオ通話(WebRTC)を提供します。主にカップル向けに作られています。バックエンドは Hono、Drizzle、Turso で構築され、セルフホスト可能です。

weblo: 2人のための共有空間 — モバイル、デスクトップ、Web を横断して

weblo は、2人が共通のプライベートな空間を共有するプラットフォーム横断型アプリです。共同ジャーナル、チャット、ビデオ通話を、モバイル、デスクトップ、Web で同期しながら利用できます。この空間は主にカップル向けに考えられています。

weblo ホーム画面 ホーム画面:ビデオ通話、ジャーナル、チャットへのクイックアクセス

私の役割

企画から実装まで一貫したソロプロジェクト — プロダクト、アーキテクチャ、プラットフォーム横断のフロントエンド(Expo、Electron、Web)、そしてリアルタイム同期を備えたセルフホスト可能なバックエンド。

weblo でできること

  • 共有ジャーナル — 2人がリアルタイムで編集する共同キャンバス付き
  • チャット — 2人の間でのやり取り
  • ビデオ通話 — 共有空間内で直接(WebRTC)
  • パートナーシップモデル — ちょうど2人を結ぶプライベートな空間(主なユースケースはカップル)
  • 多言語対応(ドイツ語、英語、日本語)およびライト/ダークテーマ

weblo ビデオ通話 通話コントロールを備えたビデオ通話画面

weblo アカウント作成 オンボーディング:アカウントを作成してパートナーとつながる

技術的な課題

  • リアルタイムコラボレーション — 共有キャンバスとジャーナルのドキュメントは、Yjs(CRDT)と Hocuspocus の WebSocket サーバーを通じて同期され、オフライン時や再接続時でも双方の変更が収束するようになっています。
  • 1つのプロダクト、3つのプラットフォーム — Expo のモバイルアプリ、Electron のデスクトップアプリ、そして Web を、コードベースを3つに分けることなく、共通の TypeScript 基盤で実現しています。
  • セルフホスト可能なバックエンド — Hono サーバー(Bun)に Drizzle/Turso を組み合わせ、ファイルアップロードは MinIO、認証は Better Auth で行っています。

技術スタック

  • フロントエンド: React、React Native(Expo)、Electron、TanStack Router、Tailwind、shadcn/ui
  • バックエンド: Hono(Bun)、Drizzle ORM、SQLite/Turso、Better Auth、MinIO
  • リアルタイム: Yjs(CRDT)+ Hocuspocus(WebSocket 経由)、ビデオ通話は WebRTC
  • モノレポ: Turborepo、加えて Astro/Starlight のドキュメント

ステータス

weblo は動作するプロトタイプで、現在は一時停止中です。ライブ版は weblo-webapp.vercel.app で公開されています。