System overview

How Memoria works

The platform connects four kinds of people — bereaved families, funeral homes, fulfillment partners (florists and others), and platform staff — through five applications that share one backend. Below, watch how an order moves from a memorial page to a delivered arrangement.

ACTORSAPPSAPIDATAFamily / Customerbereaved, buyersFuneral home staffowner · admin · staffFloristowner · staffNon-florist partnerkeepsake · print · gift · …Platform staffsuper · support · financeTenant memorial sitesrunifc.com/{slug} (memoria-web)Funeral home portalrunifc.com/adminFlorist portalrunifc.com/floristVendor portalplanned — gapPlatform portalrunifc.com/platformCustomer portalplanned — order trackingmemoria-api · api.runifc.comNestJS modular monolithauthtenancyrbacmemorialscmscatalogcartcheckoutorderspaymentsfulfillmentsettlementmediaaiauditPostgresshared, tenant-scopedRedissessions · cacheStripepayments · payoutsNotificationsresend · emailReporting / BIplanned — Phase 51. Browse memorial2. Cart · Checkout3. Order created · Assignment routed4. Florist sees it5. Accept · Prepare · Deliver

Order flow

Family browses, buys, partner fulfills

Condolence & memorial

Family-facing content lifecycle

Settlement

Money moves to partner and funeral home

Reading this diagram

  • Solid boxes are production today.
  • Dashed boxes are planned or missing — gaps in the platform.
  • Pulsing dots on the lines represent live data — orders, payments, and events — flowing between components.

Known gaps

Visible as dashed boxes above. Each is a real product surface that doesn’t exist yet.

  • Partner portals for non-florists

    KEEPSAKE, PRINT, DIGITAL, GIFT, SPECIALTY partner types have no operator UI. Their orders sit in PENDING_ACCEPTANCE with no one to accept them.

  • Customer self-service

    Buyers can’t log in to check order status. Customer entity is platform-global but has no portal.

  • Analytics / reporting

    Funeral home owners can’t see revenue, top products, or florist performance. Listed as Phase 5 in the roadmap.