Echomatch: Dating Without Swiping
About the Project
Inspiration
The current landscape of online dating is suffering from swiping fatigue. Users often treat dating apps like a game, resulting in superficial connections, ghosting, and a general lack of meaningful interaction.
I was inspired to create Echomatch to solve this by focusing entirely on deeper compatibility.
The core goal is simple: allow users to find their partners according to the interests they have inserted into their profile.
To ensure this focus, the app was designed with a key feature:
➡️ The photo sharing feature is locked and only unlocks after 1 hour of initial connection.
This shifts the focus from a rapid, visual-first assessment to the substance of shared passions—letting the conversation, not the photo, lead the way.
What it does
Echomatch is a lightweight, interest-driven dating application designed to foster meaningful connections by de-emphasizing physical appearance in the initial stages.
Interest-Based Matching:
Users input their hobbies and passions. The app’s core algorithm calculates a weighted Compatibility Score (C_s) to present the most relevant matches based on shared interests.Conversation-First Approach:
When a match is made, a secure chat is initiated, but all photo-sharing capabilities are locked for 60 minutes. This forces users to engage in substantive conversation, ensuring compatibility is established based on dialogue and shared values before physical attraction is introduced.Minimalist, Responsive UI:
The interface is clean and straightforward, presenting focused match lists instead of an infinite swipe deck, reducing decision fatigue and encouraging thoughtful interaction.
How we built it
Echomatch was built using only HTML, CSS, and vanilla JavaScript, demonstrating a robust and lightweight approach.
UI/UX:
The user interface (UI) is handled by semantic HTML and modern CSS (Flexbox & Grid) to ensure a mobile-first, fully responsive design.Core Logic:
The real intelligence of the app lies in vanilla JavaScript, which powers both the interest-based matching and the chat features:- Data & Input:
User profiles and potential matches are represented as JavaScript objects, containing arrays of user-inserted interests (e.g.,["hiking", "sci-fi", "jazz"]). Data is managed locally using localStorage. - Matching Algorithm:
When a user views their matches, a JavaScript function executes the compatibility scoring system:
C_s = Σ (w_n * M_n)k= number of matched interestsM_n= binary match (1 if matched, 0 if not)w_n= weight of that specific interest category- Chat Timer Logic:
The photo lock is enforced by client-side JavaScript.
When a conversation starts, a timestamp (startTime) is recorded.
The system checks ifcurrentTime > startTime + 60 minutes.
Until then, the photo-sharing button remains disabled, forcing conversation first.
- Data & Input:
Challenges we ran into
The main challenge was algorithmic design and enforcing conversational quality.
Data Storage:
Without a database, managing profile data and dynamic chat timers efficiently using only localStorage required careful structuring of the JavaScript objects. This enabled multi-criteria interest matching and persistent time-tracking.The 1-Hour Photo Lock:
Enforcing this feature was a major design challenge. It runs counter to the instant gratification culture of typical dating apps.
However, this deliberate friction was key to Echomatch’s mission.
I overcame this by clearly communicating why the photos were locked, turning a limitation into a core feature of trust and quality.
Accomplishments that we're proud of
We are most proud of successfully implementing a complex matching algorithm and a unique time-based feature using only vanilla JavaScript.
Algorithmic Utility:
Proved that a powerful, non-visual matching system can be built without heavy backend frameworks. TheC_scalculation successfully prioritizes matches based on weighted shared interests.The Feature of Friction:
The 1-hour photo lock became our defining accomplishment. It directly addresses swiping fatigue and structurally changes user behavior toward deeper, more invested interactions.Performance:
By leveraging purely client-side technologies (HTML, CSS, JS, localStorage), the app remains lightweight, fast, and accessible compared to resource-heavy alternatives.
What we learned
Building Echomatch with only HTML, CSS, and vanilla JavaScript was a deep dive into user experience design and client-side logic.
- Learned the critical importance of minimalist UI when handling complex data.
- Since users aren’t swiping, the system needed to present matches clearly and engagingly.
- Technically, gained significant experience in designing an interest-based matching algorithm without a backend—proving that high-utility features can be built lightweight.
What's next for Echomatch — Dating Without Swiping
The next steps for Echomatch involve moving beyond local-only data management and enhancing engagement:
Backend Integration:
Migrate from localStorage to a database like Firebase or MongoDB to handle live user data, chat histories, and real-time updates—enabling true multi-user interaction.Preference Filters:
Add granular filtering options (e.g., location, age range) to refine the matching process.Engagement Metrics:
Develop a scoring system based on conversation activity & responsiveness to further encourage non-ghosting, high-quality interactions.
Built With
- css
- css3
- html5
- javascript
- localstorage
Log in or sign up for Devpost to join the conversation.