OkaOne world family
Interactive prototype · prepared for Liran

The trust comes first. Then the door opens.

This is a working prototype of Oka — not a slide deck and not a set of screens. Pods, membership, credits, a credit-backed stay, the host’s human decision, the gift nudge, mutual reviews, Circles and the admin back office all run on one shared state model, with real transitions you can click through in about ten minutes.

L

Liran — everything below is clickable. Open the app, press Prototype demo in the bottom-right corner, and walk the seven chapters in order; or jump straight to any moment from the links on this page. You will also find yourself in the community — a member of the family with a room in Tel Aviv.

The Oka member home — credit balance, upcoming stay, gift nudge and the community feed
Member home — balance, the stay ahead, a gesture worth making, and the family’s day.
The same application at phone size
390×844 — same state, same flows.
01 · Walkthrough

Each chapter is a deep link. The presenter can open any one of them directly, in any order.

Seven chapters, one continuous state

Nothing here is a static mock-up. Enrolling in a Pod really changes what the account can do; a booking request really moves credits from available into locked; the host’s decision really settles them at check-in. Reset the demo at any point and the world returns to its starting state.

02 · Edge states

The hard moments, one click away — no need to replay the happy path first.

The states most demos skip

A product is judged by what it does when things go wrong. Each of these is a live state with its own copy, its own arithmetic and its own way out.

03 · Product model

Every number on screen comes from one ledger. Change it anywhere and it changes everywhere.

Credits are explainable, not abstract

The wallet separates available, locked and lifetime earned, and every movement writes a ledger line with a reason attached. These are the rules the prototype actually enforces.

RuleWhat the prototype does
1 credit = 1 night, or 1 hourNights are counted excluding the checkout date
Pod completion+3 credits after the membership checkout
Full profile+2 credits once the last field is filled in
Booking requestCredits move from available to locked, not spent
Host welcomes the guestLocked becomes spent; settlement stays pending
Check-inHost earns 1 credit per night — not a moment earlier
1:1 skill sessionGuest spends 1, facilitator earns 1
WorkshopsFree to attend; an approved host earns 2
Guest cancels 2–7 days out50% refund rounded in the guest’s favour; the rest stays with the host
Host cancelsFull guest refund and a 1-credit host penalty, with a reason in the audit trail
Admin adjustmentBlocked until a reason is written; then ledger and audit both record it
04 · Roles

Switching role changes permissions, tasks and navigation — not just the name in the corner.

Four people, four products

Free member

Reading the family

Browse people, homes and Pods. Booking, messaging and offerings are closed, and the sidebar carries an access state instead of a balance.

Full member · guest

Maya Chen

Credits, identity verification, the calendar, the request, the gift note and the review. Lisbon, 44, founder and somatic coach.

Full member · host

Elena Márquez

The request queue, the guest’s trust profile, a question before the answer, settlement at check-in and her own listing in My Offerings.

Admin

Operations

A denser environment in the same design system: Pods, approvals, members, credit adjustments, escalations, moderation and the audit trail.

The host decision screen — the guest's Pod, verification, intentions and gift offering
The host decision — everything Elena needs to say yes to a stranger, and a CTA in her own voice.
The Oka admin dashboard — approvals, Pods, members needing attention and the audit trail
Admin — the same brand, a different density.
05 · Honesty

What runs for real in this build, and what is deliberately simulated.

What is real here, and what is not

A prototype that pretends to be production is worse than useless in a build conversation. Here is the exact line.

Really running

  • A single state model behind every screen — role, timeline, credits, bookings, threads, ledger and audit trail
  • Persistence in local storage, so a walkthrough survives a reload, plus a full reset
  • Deep links to every chapter and edge state, so a presentation never depends on the previous click
  • Loading, empty, gated, success, validation and failure states on the main path
  • Responsive from 1440×900 to 390×844, with no horizontal overflow and 44px touch targets
  • Keyboard focus, ARIA labels, prefers-reduced-motion, and modals that return focus on close
  • Every photograph and script served from this origin — the demo does not depend on any third party

Deliberately simulated

  • Payments. Both checkouts are marked as prototype surfaces. No Stripe call is made and no card data leaves the page
  • Identity. The Stripe Identity flow is imitated end to end, including the failure and retry path. No document is ever requested or sent
  • Map. A stylised world map with real coordinates rather than a Google Places bill
  • Email and push. Represented in-app through the notification bell
  • People. A consistent, seeded demo world — no real member data anywhere
  • Assumptions we flagged rather than invented: the exact moment credits are granted, the definition of a complete profile, and coupon eligibility are shown as demo behaviour, not as settled rules
06 · Engineering

How this build is put together, and where it goes from here.

Built to become the real thing

The prototype is one declarative component tree over one state class, served by a small Node application. That is a deliberate choice: the same component and state boundaries survive the move to a real backend and, later, to React Native.

This deployment

  • Node and Express behind a CDN-free origin, gzip on, cache headers split between immutable assets and revalidated pages
  • Three surfaces: the overview, /app for the product, /mobile for the same product in a device frame
  • React runtime and all 43 photographs hosted locally; nothing on the demo path calls out to the internet
  • A build step that compiles the product template into the page shell, and a Playwright pass that walks the whole demo path checking for console errors, failed requests and layout overflow

The production path

  • API and database behind the same entity model: members, pods, listings, bookings, credits, offerings, circles, threads, audit
  • Stripe for Pod fees and membership, Stripe Identity for verification, both already shaped in the UI
  • Transactional email and push against the notification events the prototype already emits
  • Phase 2 React Native reusing this component and state model — the reason the prototype is structured this way rather than as flat screens
  • Admin, moderation and audit are first-class here because they are what makes a trust network operable at scale
Prepared for Liran

Ten minutes in the app will say more than any deck.

Start at chapter one and let it run. If anything reads differently from how you imagined Oka — the credit timing, the tone of the host’s decision, the shape of the admin queue — that difference is exactly the conversation worth having next.