Home / Case Studies / myTerrace
Social CommerceWeb App2024Six hubs

A social commerce platform that brings six hubs, live messaging, and secure payouts into one connected web app.

myTerrace is a multi category social commerce platform where six distinct verticals share one feed, one inbox, and one wallet. Marketplace, Jobs, Rent, Events, Freelance, and Services all sit behind the same login, with real time chat on Firestore, payments and payouts on Stripe Connect, shipping labels from Shippo, and an in house helper called Myte AI for everyday tasks. We helped shape the hub based layout, the registration and onboarding flow, and the integrations that hold it all together so the same account can list a used phone, hire a freelancer, or rent out a spare room without juggling five separate apps.

myTerrace app hero
Client
myTerrace
Industry
Social Commerce · Multi vertical Marketplace
Surfaces
Buyer · Seller · Organizer
Timeline
12 months, ongoing
Outcome
Six hubs, one inbox, one wallet
The Problem

Six different markets, six different apps, and no shared trust.

Six Hubs
Marketplace · Jobs · Rent · Events · Freelance · Services
One Inbox
Live messaging for every transaction
One Wallet
Stripe Connect payouts built in

Selling a used phone, hiring a freelancer, renting out a room, and booking a gig usually means four or five different apps, four logins, and four different ways to pay. Each platform owns its own trust layer, its own messaging, its own dispute process, and its own idea of what a listing even is. People bounce between tools, copy the same bio and photos into each one, and give up before the deal closes.

Cross border peer to peer commerce makes this worse. A seller in one country and a buyer in another have no shared escrow, no shared shipping label, and no shared language. Trust ends up being decided by who blinks first in a chat window, and the platforms that should help stay out of the way.

myTerrace wanted one home for all of it. Six verticals under one roof, one inbox for every conversation, and a payment layer that holds funds in escrow until both sides are happy. That meant collapsing six very different mental models into a single hub based navigation without losing what made each one feel natural to its own users.

Challenges Solved

Six problems that had to be solved properly.

One Feed
Six hubs, one consistent discovery surface
Live Chat
Firestore subscriptions with offer semantics
Escrow Built In
Stripe Connect from the first login
  • Unifying six verticals without flattening them. Marketplace, Jobs, Rent, Events, Freelance, and Services each have their own data shape, filter set, and listing flow. We designed a hub based layout where every vertical inherits the same shell, from feed and filters to profile, chat, and wallet, but plugs into its own category tree, form fields, and detail layout. Adding a new hub becomes a configuration exercise instead of a redesign.
  • Keeping messaging instant without writing a chat server. Live conversations, typing indicators, read receipts, and offer and counter offer flows all run on Firestore subscriptions. Chat rooms are created the first time a buyer messages a seller and reused on every return visit, with commercial and personal threads separated by document type. The inbox stays in sync across tabs without any custom realtime code on our end.
  • Onboarding sellers into Stripe Connect without breaking the flow. The signup flow creates both a Stripe customer and a Stripe Connect express account before the user lands on the hub. Identity verification is delegated to Stripe so sensitive documents never touch our servers, and the user returns to the platform with payouts already wired up.
  • Shipping that does not require a logistics team. Package details, service selection, rate shopping, and label generation are wired through Shippo on a three step wizard. Sellers get real carrier rates, buyers get tracking, and the label itself is rendered as a QR code that can be scanned at drop off.
  • Discovery that works in any language. Every listing is tagged with the languages the seller can transact in, and every user picks their preferred ones in step two of registration. Filters, sort, and the recommendation surface all respect those tags so a buyer searching in Spanish never sees a listing the seller cannot actually deliver in Spanish.
Core Features

What ships in the product.

01

Six Hubs in One App

Marketplace, Jobs, Rent, Events, Freelance, and Services all live behind the same login. Each hub has its own feed, filter set, and listing wizard, but they share a common chrome, inbox, and wallet.

02

Hub Based Listing Wizard

A unified Add modal picks the hub first and then branches into the right form. Posts, events, rentals, jobs, freelance gigs, and services all flow through the same component without losing the fields that matter for each vertical.

03

Live Messaging with Offers

Chat rooms are created in Firestore the moment a buyer reaches a seller. Conversations support text, images, in chat offers, and counter offers, and stay tied to the listing that started them.

04

Myte AI Assistant

An OpenAI powered assistant lives as a third tab in the inbox. Buyers and sellers can ask product questions, draft messages, and get everyday help without leaving the conversation list.

05

Stripe Connect and Wallet

Sellers onboard through Stripe Connect Express during registration. A built in wallet supports top up, balance checks, withdrawals, and saved cards for both buyers and sellers.

06

Boosted and Promoted Listings

Posts flagged for promotion surface in a dedicated carousel on every hub. Each vertical has its own boost modal and a top up flow that pulls from the wallet.

07

Cart and Order Lifecycle

Buyers can save listings to a cart, check out with saved cards or wallet balance, and land on a confirmation screen that starts a structured order flow with returns and a rate seller screen at the other end.

08

Shipping with Shippo

A three step shipping wizard pulls real carrier rates, generates a label, and produces a QR code that can be scanned at drop off without a spreadsheet in sight.

09

Multilingual Discovery

Listings carry language tags from registration. Buyers filter by language, sort surfaces respect them, and badges appear on every card so users know who they can talk to and in what language.

Tech Stack

Built for a connected, multi hub marketplace.

Reactjs
Vite SPA with Recoil and React Query
Firebase
Firestore chat, storage, push notifications
Stripe Connect
Customer wallets and seller payouts

myTerrace is a single page application built on React 18 and Vite. Recoil drives the UI state, React Query owns the server cache, and the backend sits behind a REST API. Firestore handles the realtime layer for chat and presence, Stripe runs both customer payments and Connect payouts, and Shippo covers shipping rates and labels. The result is a fast, mobile first web app that behaves like a native marketplace across every hub.

ReactjsViteTailwind CSSRecoilReact QueryReact RouterFormikFirebase FirestoreFirebase StorageFirebase MessagingStripe ConnectShippoOpenAIGoogle MapsLeaflet
App Screens

myTerrace across hubs.

Six verticals, one inbox, one wallet. A closer look at how the core flows come together.

myTerrace features overview
Build with us

Building something like myTerrace?

myTerrace brings six marketplaces, live chat, AI assistance, and secure payouts together under one product. Send us a brief and we will scope it within 24 hours.

Book a Free Strategy Call →Estimate Project Cost