Yem

A shared-household app: recurring tasks, calendars, recipes, shopping lists and chat. Offline-first, and installable as PWA, or on iOS and Android from one codebase.

Made
Built with
  • Balsamiq
  • Figma
  • TypeScript
  • React
  • Tailwind CSS
  • React Router
  • Capacitor
  • Cloudflare
  • Posthog
  • Sentry
  • Claude Code
  • Hono
  • Bun
  • Stripe
  • TinyBase
  • Drizzle
  • Motion
Live
https://app.yemapp.com

Screenshots

Contents
  1. Introduction
  2. Links
  3. Features
  4. Technologies
  5. Design and UI
  6. Frontend
  7. Backend
  8. Infrastructure & CI/CD
  9. Documentation
  10. Marketing
Write-up

Introduction

Yem is a growing suite of household management tools. As an organization and productivity nerd, this was my dream project for many years - and is my biggest project to date. Building tools to help organize my personal life where the tools could communicate with each other and help reduce mental load was the inspiration for the project - and in January 2026 I started building it full-time.

The project is ongoing, and way too large for me to keep a full write-up up-to-date, so I will list out the features and technologies here for those interested.

Features

Last updated August 2026

  • Suite of tools
  • Task manager
  • Calendar system (compatible with the RFC 5545 iCalendar specification)
  • Household chat (one-to-one or group chats)
  • Shopping lists (private, shared, real-time updates)
  • Recipe book (with multiple import options; text, URL, photo)
  • Offline mode
  • Push notifications
  • Self-serve data export
  • Reminder system (in beta)
  • MCP connection (in beta)

Technologies

Design and UI

  • Original ideas wireframed in Balsamiq
  • Full design library in Figma with custom colors, fonts, sizings, etc.
  • 56 custom React UI components packaged as a shared library between codebases
  • Storybook setup with all base components, layouts and pages

Frontend

  • React 19 + React Router 7 (SSR) on Cloudflare Workers, wrapped as a native app via Capacitor
  • Offline-first CRDT data layer using TinyBase
  • Each user gets a merged store persisted to IndexedDB and synced over WebSocket to a server Durable Object
  • A centralized mutation queue handles optimistic writes, cross-tab coordination, mutation coalescing, and rollback with error classification
  • Bi-lingual UI (English / Norwegian) with translation keys

Backend

  • Hono on Cloudflare Workers
  • 169 OpenAPI endpoints
  • MCP server with OAuth (in Beta)
  • Postgres on Neon
  • Normalized database structure
  • RLS on tables where needed
  • 3 payment platforms (Stripe, Google Play, App Store) reconciled into one entitlement system

Infrastructure & CI/CD

  • Bun + Turborepo monorepo
  • Biome config with custom lint plugins
  • 8+ Github Actions workflows
  • Full testsuite (~1700 test cases)
  • TestFlight runner
  • Android internal track runner
  • Cross-repo branch resolution to avoid drift
  • 16 monitored cron jobs
  • Error monitoring through PostHog

Documentation

  • 89-page internal developer wiki built with Astro Starlight
  • 37 project-specific Claude Code skills

Marketing

  • Astro business site with tailored SEO/GEO
  • Playwright asset factory that generated ~70 store-ready screenshots across all platforms in 9 seconds

Back to all projects