Designing Constraint in a Culture of Infinite Choice

A speculative UX system for serious dating
Concept Product · User Experience

Most dating platforms are designed around expansion. More profiles, more matches, more conversations. While this increases engagement, it also produces an environment where attention is fragmented and commitment becomes optional.

This project began with a behavioural observation:
it is not realistically possible to speak to dozens of people at once, yet digital dating encourages exactly that. We initiate multiple conversations, sustain few, and disengage without consequence. Ghosting and swipe fatigue are often framed as user failings, but structurally they are outcomes of unlimited choice.

 

Developed in response to a client request for a serious dating platform, this project explores

What if a dating app limited conversational capacity in order
to deepen connection?

 

Research and Behavioural Framing

Over the course of two months, the project involved:

– Competitive analysis of 30+ dating platforms
– Persona development
– User surveys and interviews
– Onboarding and profile-builder exploration
– Conversation behaviour mapping

What consistently emerged was not dissatisfaction with matching algorithms, but exhaustion from managing attention. Users described feeling overwhelmed by parallel conversations and uncertain about how to exit them without discomfort.

Instead of designing a more efficient way to meet more people, the project shifted toward designing a structure that regulated how many conversations could meaningfully exist at one time.

 

The Three-Slot Model

At the centre of the system was a constraint: each user could hold only three active matches at any given time. In order to initiate a new conversation, one of the existing matches would need to be consciously ended. Unmatching required selecting a reason, not as a punitive measure but as a gentle interruption that asked users to reflect on their decision.

The aim was not to restrict discovery, but to limit conversational capacity.

Instead of accumulating parallel exchanges or collecting dormant matches, users were required to engage intentionally with the connections they chose to initiate.

The logic behind this structure was grounded in real-world behaviour. In a physical space, it is socially and cognitively difficult to sustain multiple half-engaged conversations simultaneously, and walking away mid-sentence carries visible consequence. Digital environments remove that friction, enabling disengagement without acknowledgment. This design sought to reintroduce a measured form of accountability while preserving user autonomy.

 

Iteration One: Dynamic State-Based Navigation

The initial version of the UX architecture divided each conversational slot into evolving states: Discovery, Waiting, and Conversation. When a user sent a message request, a Discovery tab transitioned into a Waiting state, which included a 12-hour response window. Once accepted, the tab became a Conversation space. If the request expired, the slot returned to Discovery.

This structure created a clean visual metaphor in which each slot reflected a stage of engagement. However, once the logic was tested against technical constraints and user behaviour, several systemic problems became apparent.


If a user’s three slots were occupied, either in Waiting or Conversation, should their profile disappear from the system?

If no:
- Users might receive requests they cannot accept

If yes:
- The dating pool shrinks artificially
- Matching becomes a timing lottery
- Algorithmic recommendation becomes unstable


This created heavy logic dependencies.

The waiting state also created unintended inactivity. If all three slots were pending responses, users had nothing to do within the app. Idle time in social platforms often results in drop-off.

Additionally, time-bound requests assumed users would always respond within a narrow window, which failed to account for real-life schedules and risked eliminating potentially meaningful matches.

Through discussion with the developer, it became clear that while the constraint was conceptually strong, its implementation introduced algorithmic instability and excessive backend complexity.

 

Iteration Two: Structural Rebalancing

The second version removed the Waiting state entirely.

Instead:

- Slots are occupied only after a match is confirmed
- Discovery remains accessible until three conversations are active
- A separate Likes section displays all inbound interest
- Profiles in Likes section are marked as active (with available slots) or inactive (fully engaged).

This allowed:

- Ongoing discovery
- Visible availability
- Reduced timing dependency
- Thoughtful decision-making

Once three matches are active, Discovery locks.
But the system no longer hides users from the ecosystem.

This version maintained constraint while preserving algorithmic viability.

 

Technical Dialogue and System Constraints

Working closely with the developer reshaped the architecture in critical ways. The original tab-based system required complex logic to determine when profiles should surface, disappear, or re-enter the discovery pool. Matching risked becoming a matter of timing coincidence rather than behavioural alignment, introducing unnecessary algorithmic instability.

We also reconsidered the role of time-bound requests. If a message expired before a user saw the notification, a potentially meaningful connection would be lost, reinforcing urgency over intention. Replacing expiration-based waiting with a persistent inbound section allowed users to respond deliberately rather than reactively.

Mechanisms such as active and inactive indicators were adapted from familiar social platforms, but here they served a different purpose. Instead of driving engagement, they provided clarity around availability, preserving transparency without adding systemic complexity.

 

Outcome and Reflection

Although the client responded positively to the concept, she ultimately decided not to pursue such an experimental structure. The perceived market risk of introducing restriction into a landscape built on abundance felt too high. After extensive research and prototyping, the project shifted toward a more conventional model.

Despite not being realised, this project allowed me to examine how behavioural assumptions shape interface design and how structural decisions can influence user conduct more profoundly than visual adjustments alone. It pushed me to move beyond surface-level interaction patterns and consider the systemic implications of constraint, from algorithmic visibility to timing logic and notification dynamics.

The process also allowed me to experience the full cycle of iteration. An initially compelling concept required reassessment once technical realities and behavioural edge cases became clear. Through close collaboration with a developer, I gained a deeper understanding of how backend architecture and frontend experience must function together within complex systems.

While the original model did not launch, the exploration clarified how I approach UX design as a careful balance between behavioural insight, technical feasibility, and client readiness for innovation.

Previous
Previous

The Modist