Docs
/

Leumas iOS

@leumas/ios

Leumas iOS — a Capacitor shell over leumas-web. One codebase → web + iOS. Members get their own Leumas Studio in their pocket.

Leumas iOS — @leumas/ios

Mobile Leumas, focused on social. A Capacitor shell over leumas-web's social-only bundle. No product-local logic, ever.

appId: tech.leumas.app · Architecture: APPLIANCES.md §5


Core functionality

  1. Leumas Social on mobile — feed, reels, watch, stories, messenger, friends, groups, chatrooms,

discover, marketplace, random chat, sing, profiles, notifications.

  1. Account — login/signup, profile, membership status.
  2. Push & native shell — notifications, share sheet, camera/photo picker for posts, deep links.
  3. Central data, always — every byte comes from api.leumas.tech. No local database, nothing to

reconcile, no offline write path.

What it must never do

NeverBecause
Contain product logicit renders leumas-web. Any native capability another product could reuse becomes a shared/packages/* module
Ship the full hub bundleit currently does (webDir: "../leumas-web/dist"). W1 fixes this
Keep a local databasesocial is one central graph. An offline social network isn't one
Re-implement social UI@leumas/features/surfaces/social — identical to web

How it composes

products/leumas-web ──build social entry──-> dist/social/ ──Capacitor webDir──-> iOS app
                                                     │
                                              api.leumas.tech

Auth is free: the .leumas.tech cookie plus @leumas/api-client's credentials:'include' and Bearer fallback already work. Nothing to build.

File tree

products/leumas-ios/
├── package.json [done] @capacitor/{core,ios}; scripts: build:web · add · sync · open · dev
├── capacitor.config.json [partial] webDir → ../leumas-web/dist (must become dist/social)
├── README.md [done]
├── ios/ [todo] generated by `cap add ios` — not checked in yet
└── src/                        ✗ DOES NOT EXIST AND MUST NOT

Three files today. That is correct and should stay close to it.

Roadmap

[todo] I1 · Point at the social bundle (roadmap B4)

  • Status: todo — Wait on leumas-web W1 (the social.html entry)
  • Status: todo — capacitor.config.jsonwebDir: "../leumas-web/dist/social"
  • Status: todo — pnpm add → generate the ios/ native project, commit it
  • Status: todo — Verify the bundle has no three, no cinematic, no media globe

[todo] I2 · Native capabilities

  • Status: todo — Push notifications wired to the social notifications table
  • Status: todo — Camera / photo picker for posts — via a shared/packages/* module, not app-local code
  • Status: todo — Deep links: leumas://social/post/:id and universal links from leumas.tech
  • Status: todo — Share sheet

[todo] I3 · Release management (roadmap D3)

  • Status: todo — Control plane keeps an iOS release record: version, build, App Store state
  • Status: todo — Minimum-supported-version gate enforced by the API — ~20 lines, and the real lever
  • Status: todo — Decide OTA: Capacitor bundles webDir at build time; live updates need

@capacitor/live-updates or a remote server.url. Apple permits JS-only updates that don't change core functionality. A deliberate choice, not a freebie

[todo] I4 · Store presence

  • Status: todo — App Store Connect listing, screenshots, privacy nutrition labels
  • Status: todo — Age rating — social + random chat needs care
  • Status: todo — Moderation & reporting flows visible in-app (App Review requires them for UGC)

Run

pnpm --filter @leumas/ios sync
pnpm --filter @leumas/ios open

sync builds leumas-web first, then cap sync ios. Requires macOS + Xcode for open.

Generated from the Leumas repository. Every page cites the file it came from.leumas.techllms.txt