← Back to work

In-house project

Musubi

A self-hostable calendar to tie shared time with your partner, family and friends.

Client
In-house project
Year
2026
Services
Mobile app · Web app · Open source
Stack
Expo SDK 55 · React Native · Express 5 · Better Auth · Postgres + Drizzle ORM · Server-Sent Events · Turborepo + pnpm workspaces
Screenshot of the Musubi GitHub repository

Musubi (結び) is the Japanese word for “knot” or “tie”. The app ties people’s schedules together through shared calendars — and eventually ties together the calendars you already use elsewhere, becoming a single point of view across Google, Apple and CalDAV.

Why we built it

Existing shared-calendar tools are either closed (Cozi, Family Wall) or declared enterprise products. For a small group — a partner, a family, a rugby team — there’s no self-hostable, simple option that respects your data.

We built Musubi as a reference for the stack we use for clients too: monorepo, Expo on mobile, Express on the backend, Drizzle on Postgres, real-time through Server-Sent Events.

What works today

  • Create, edit, delete calendars
  • Events can belong to multiple calendars at once
  • Share a calendar through a single link
  • Join and leave calendars
  • Real-time sync between connected clients
  • Auth via Better Auth

What Musubi says about how we work

  • Cross-platform mobile. One codebase ships to iOS and Android via Expo.
  • Own the backend. We avoid vendor lock-in whenever it makes sense.
  • Real-time. Server-Sent Events instead of polling — lighter than WebSockets.
  • Monorepo. Shared types, schemas and auth between client and server.
  • Open source. If we’re going to depend on something long-term, we want to understand the whole thing.

The hosted version lives at musubi.frgtn.dev, the code is on GitHub under MIT.