CarpeDM Dating - Membership Onboarding Flow & Dashboard

CarpeDM Dating - Membership Onboarding Flow & Dashboard

2026-03-01

Consulting Work (Real World Project)

I worked on this project under my consultancy - Digital Anthro

Lifestyle | Professional Black Women | Dating | DC | Community

View App


Role & Impact


Tech & Project Type


Context Overview

CarpeDM Dating is a DC-based, exclusive, member-only, video-first dating app and personalized matchmaking service designed for professional Black women and those seeking to date them. As a consultant brought on during their initial stages, I helped scope out the UX and lead the development of their web-based member onboarding process and membership dashboard.


Technical Details on Contribution

👁️ UI/UX Advisory

Partnered with a two-person design studio, Talooka Studio, to advise on the design strategy and UX architecture of the member onboarding and membership dashboard.

👥 Member Onboarding & Dashboard User Flow

Diagram of the membership funnel user flow

Data Flow Diagram of Onboarding Flow → Membership Dashboard → Stripe/Rewardful Integration

The member onboarding user flow was broken down into 5 main sections:

  1. Sign in ( Includes the authentication, password creation and reset flow )

  2. Deposit payment - User must pay deposit upfront before moving forward in the process.

    1. At this point a one-time stripe checkout session was needed.
    2. A user object was created in DB with a reference to the deposit checkout session id
  3. Deposit Success Page - After a successful deposit payment, users were redirected to a Deposit Success page that functioned as a transitional waiting state. This interface initiated the background check process while guiding users to the next step. A call-to-action allowed them to schedule a meeting with their matchmaker during the review period.

  4. Membership Options Page - Once the background check was successful, a CarpeDM rep would reach out to the user and notify them to continue the membership process. When a user signed back in, they would be redirected to the membership options page. This interface displayed all the membership plans. Once the user selected a membership plan, they were routed to another Stripe checkout session, which did the following:

    1. Created a subscriptions object in Stripe, which stored payment and metadata.
    2. Added the membership session checkout id to the DB so it could reference the Stripe customer object
    3. After the checkout was successful, the user became an official “member”.
  5. Membership Dashboard - I pulled in the member data from MongoDB and Stripe API to display interfaces for:

    1. Updating profile information
    2. Changing subscription type
    3. Accessing reward points
    4. Deleting member account
    5. Contacting the user’s personal matchmaker

    Since the mobile app lived on the Apple store, the founders wanted to create a low cost method for managing user subscriptions.

Member Onboarding Login Page

Membership Options Interface

Membership Dashboard

💰 Integrating Stripe API

Stripe integration represented a significant portion of the development effort. Its robust and opinionated API required deep research to properly implement payment flows, subscription management, and webhook handling within the membership portal architecture.

There were 3 main Stripe API features that I used heavily throughout the application.

  1. Stripe Checkout Sessions

    1. This feature was set up on a node server and used to trigger the Stripe checkout UI.

    2. I used a one-off session for the deposit payment checkout and a subscription session for the membership checkout.

      Subscription checkout session

  2. Webhooks - Webhook events were called during checkout sessions to pass data to MongoDB and the Stripe Dashboard.

    List of a few webhook events

  3. Checkout Session (Metadata object) - The metadata object was extremely useful for securely passing user data into the checkout session from the frontend. Most of the data handling occurred on the backend for security reasons, but it worked well for frontend session data.

⚡ Challenges

Bringing the onboarding and member dashboard flows to life required aligning asynchronous backend processes, payment state management, third party integration, and user-facing feedback into an overall experience.

  1. Testing Stripe Checkout - Stripe provides a robust testing environment, which allowed me to simulate complex billing scenarios, subscription lifecycle events, and webhook triggers before deploying to production.

The CLI and testing sandbox environment were very intuitive. The integration reinforced the importance of implementing a structured strategy for frequent testing and systematic test data cleanup to maintain development efficiency.

  1. Startup Decision Shifts - Since this was an early-stage startup, there were some ambiguity and uncertainty on features of the application. Since the team was so close knit and I worked 1:1 with the founders of the company, we were able to come to understandings through frequent communication, constructive meetings, and empathy.

I developed detailed technical documentation and recorded test sessions to maintain transparency, reduce ambiguity, and create a shared understanding of the technical aspects and behaviors of the system.

Copyright © 2026

Built with Next.js, MUI, Three.js & Vercel