
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.
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.


The member onboarding user flow was broken down into 5 main sections:
Sign in (includes authentication, password creation, and reset flow)
Deposit payment - User must pay deposit upfront before moving forward in the process.
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.
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:
Membership Dashboard - I pulled in the member data from MongoDB and Stripe API to display interfaces for:
Since the mobile app lived in the Apple App Store, the founders wanted a lower-cost method for managing user subscriptions.



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.
Stripe Checkout Sessions
This feature was set up on a node server and used to trigger the Stripe checkout UI.
I used a one-off session for the deposit payment checkout and a subscription session for the membership checkout.

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

Checkout Session (metadata object) - The metadata object was useful for securely passing user data into checkout sessions from the frontend. Most data handling still occurred on the backend for security.
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.
The CLI and sandbox were intuitive. The integration reinforced the importance of frequent testing and systematic test data cleanup to maintain development efficiency.
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.