Online Dating, Liberated.
World-wide-web Universal Human Connection System (a.k.a. Dating App) Operators Manual
- Conventional dating app imagery included to imply a generally improved post-download lifestyle.
- Humans pictured are not real Mullet Maters users, and may or may not have been artificially generated to save on time-to-production costs.
Just download the app from the App Store, and we’ll take it from there. No manual required. Wait…
Go to App Store ↗Alternatively, you may pull the source code from GitHub and build the Mullet Maters iOS client yourself. Mullet Maters is not available on Android, yet. Web is not planned.
Discover, Match, Chat, Meet — Unenshitified. (DMCM-U)
3.1 Definitions (In-context)
- Discover — a method of choice used to discover other humans (e.g. “swiping”)
- Match — a mutual indication of interest between two or more humans
- Chat — communication between two or more humans
- Meet — a gathering between humans, usually physical; generally considered a desirable terminal state
- Ruin — human-induced termination of an otherwise viable interaction, sometimes accidental
- Enshittification — the gradual degradation of a digital platform or service, typically driven by the pursuit of increasing profits for its owners or shareholders
- Unenshittification — the absence, prevention, or reversal of enshittification
- Trust Me, Bro — an informal assurance offered in lieu of independently verifiable evidence
- WTAF — “What The Actual Fuck”; an expression of simultaneous dissatisfaction and confusion
- $$$ — the forfeiture of legal tender
- Chitchat — communication between two or more humans of limited substance or consequence
3.2 Industry Standard Protocols (Non-comprehensive)
Numerous online dating protocols are currently in use across the dating app industry. None should be considered universally optimal, nor a substitute for offline dating, including the Mullet Maters protocol. Table 3.2.1 covers some of the most widely adopted protocols below in order to better contextualize how Mullet Maters operates.
Scroll horizontally to view the full table. ↔
| Protocol | Diagram / Synopsis |
|---|---|
| Discover, Match, Chat, Meet — Variable Enshittification Layer (DMCM-VEL) | DISCOVER ──→ MATCH ──→ CHAT ──→ MEET
↑ ↑ ↑
PREMIUM PREMIUM PREMIUM
VISIBILITY ACCESS FEATURE
$ $ $
└──────────────── VEL ───────────────┘
|
| AI, Match, Meet — Proceed to Checkout (AIMM-PC) | ┌───────────────────┐
HUMANS ───→ AI ──→ MATCH ──→ $$$ ──→ MEET
└───────────────────┘
│
TRUST ME, BRO
|
| Basically Broken or a Scam (BBS) | ┌──→ $$$ ──→ WTAF
HUMAN ──→ PLATFORM PROMISE ─┤
└──→ WTAF
|
| Discover, Chat, Meet — Fully Browsable Database (DCM-FBD) | ┌───────────────────────────────────────────┐
│ HUMANS │
│ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ │
└───────────────────────────────────────────┘
↑ ↓ ↓ ↓
CHITCHAT ← CHAT CHAT CHAT ──→ MEET
|
| Human Matchmaking Service (HMS) | ┌───────────────────────┐
HUMANS ───→ HUMAN MATCHMAKER ──→ MEET/DATE
└───────────────────────┘
│
$$$
|
- The above dating app “protocols”, to our knowledge, have not been formalized in any meaningful way, nor recognized by any regulatory or governing body. They are merely used here for illustrative purposes, and may or may not contain bias.
3.3 The Mullet Maters Online Dating Protocol
Mullet Maters implements a swipe-based, unenshitified variant of the Discover, Match, Chat, Meet protocol (DMCM-U). Like all DMCM-derived implementations, Mullet Maters also fully supports the Discover, Match, Chat, Ruin, Repeat protocol extension (DMCRR). See Figure 3.3.1 for an enhanced visualization of the Mullet Maters online dating protocol.
Scroll horizontally to view the full figure. ↔
- Please note “RUIN” may still occur during the “MEET” stage; however, such a transition falls outside the scope of the DMCRR protocol extension.
A simple, timeless, and transparent approach to discovering humans.
4.1 “The Algorithm”
All dating apps necessarily have an algorithm—a step-by-step process—to determine who the dating app operator will see and, inversely, who will see the operator while using the app. Mullet Maters is no exception. The Mullet Maters Discovery Feed primarily considers operator-selected preferences and filters, geographic proximity, and recent platform activity when determining which profiles to present. Figure 4.1.1 illustrates this process more precisely below.
Scroll horizontally to view the full figure. ↔
4.2 What the Algorithm Does NOT DO
- Compatibility, desirability, or attractiveness scoring
- Behavioral learning from likes, passes, matches, or conversations
- Popularity-based ranking
- Paid boosts, priority placement, or premium visibility
- Factor in visible or hidden likes
- Optimization of Discovery Feed ordering for engagement, advertising revenue, or time spent on the platform
- Filter results based on whether the operator’s mother would approve
Because “hey cutie :)” probably isn’t something you’d want passed around on the internet in plaintext… that would just be embarrassing.
5.1 End-to-End Encryption (E2EE) — The Basics
End-to-end encryption (E2EE) keeps a conversation private between its endpoints. Messages are encrypted on the sender’s device (one “end”) before transmitting, and remain encrypted until reaching the intended recipient(s)’ device(s) (the other “end(s)”). Systems between these endpoints—including Mullet Maters infrastructure—do not possess the information required to reconstruct the message plaintext.
Analogously, E2EE can be thought of as sending a message inside a locked container. The sender locks the container before handing it off for delivery, and only the intended recipient(s) possess what is required to unlock it. Along the way, the container may pass through numerous third parties responsible for transporting, storing, or otherwise handling it; none need access to its contents to perform those functions.
Figures 5.1.1 and 5.1.2 serve to illustrate the fundamental difference between messaging services/platforms with E2EE, and those without E2EE.
Scroll horizontally to view the full figure. ↔
Scroll horizontally to view the full figure. ↔
5.2 An Overview of E2EE on Mullet Maters
- Mullet Maters uses a custom E2EE protocol based on the OpenPGP standard (RFC 9580) for end-to-end encryption of chat messages
- All chat messages are always end-to-end encrypted — there is not an optional E2EE mode, secret chat mode, or otherwise downgraded chat experience available on the platform
- All chat messages and conversations are encrypted at rest when stored locally and are persisted upon first discovery to provide the enhanced security properties of record pinning, with improved offline availability as an additional benefit
- Only message content (e.g. “hey cutie :)”) and information necessary to secure it are end-to-end encrypted on Mullet Maters; message metadata (user identifiers, timestamps, etc.) is not end-to-end encrypted and remains readable to the Mullet Maters messaging service
- For moderation purposes, Mullet Maters uses a technique known as message franking to authenticate message plaintext voluntarily disclosed by a recipient when filing a report — this allows Mullet Maters to verify the authenticity of a reported message without knowing its plaintext before it was voluntarily disclosed
- All push notification data not required for delivery or routing is also end-to-end encrypted on Mullet Maters, including application-level metadata (event types, user identifiers, etc.); this applies to all push notification events, not only chat messages
5.3 E2EE Endpoints
End-to-end encryption protects messages between endpoints; it does not protect an endpoint that has itself been compromised. If a device is compromised—such as when a device gets infected with malware or stolen—while message plaintext or the cryptographic material required to recover it is accessible, E2EE cannot prevent that information from being obtained.
Likewise, E2EE cannot prevent the participants in a conversation from sharing messages they have received. A sender or recipient may copy, capture, or otherwise disclose message plaintext, including when a recipient voluntarily discloses a message to Mullet Maters through the reporting process.
5.4 Conversation Security Codes
End-to-end encryption protects messages between cryptographic endpoints, but encryption alone cannot establish that an endpoint belongs to the person a user believes it does. If an incorrect or substituted identity key were presented for another user, messages could be encrypted securely to the wrong cryptographic endpoint.
Mullet Maters provides conversation security codes in-app to close this verification gap. A conversation security code is a human-verifiable fingerprint representing the cryptographic identities of everyone participating in a conversation and can be compared through a trusted channel outside Mullet Maters—or in person—to independently confirm that all participants observe the same code (see 5.5).
Conversation security codes must match exactly. If even a single character differs, the cryptographic identities represented by the codes are not identical and the conversation should not be considered secure until the mismatch has been resolved.
Figure 5.4.1 below shows an example of what a conversation security code looks like in the Mullet Maters app.
7A3F 91C2 0B84 D6E1 48AF 02C7 91BE 663A A219 F40D 73C8 5E11 9B60 4AD2 C817 3F05
5.5 Best Practices — E2EE & Mullet Maters
- Security-code verification presents an unusual problem on a dating app: everyone basically starts as a stranger — comparing cryptographic fingerprints through an independently trusted channel is a longstanding practice in end-to-end encrypted messaging, which is why Mullet Maters provides security codes. Unlike traditional messengers, however, Mullet Maters generally introduces people who have no preexisting trusted channel through which to perform that comparison. Meaningful out-of-band verification may therefore be impractical until participants meet in person or otherwise establish an independently trusted means of identifying one another
- Do not move conversations off Mullet Maters solely to compare security codes — a second messaging service does not independently establish another participant’s identity when the contact information used to reach them was itself obtained through Mullet Maters
- Share meetup plans out-of-band with someone you trust before meeting another user in person; provide a trusted person who is not attending with relevant details including who you are meeting, when and where you expect to meet, and any other information appropriate to the circumstances; this is particularly important on Mullet Maters because end-to-end encryption prevents Mullet Maters from retaining a readable history of conversations from which meetup details could later be recovered in theory
- The Mullet Maters “Share My Date Plans” feature is provided as a convenience, not as a replacement for out-of-band sharing — meetup plans can be shared through Mullet Maters-generated links, but sharing the same information independently ensures that someone you trust retains the information outside Mullet Maters
Categorically speaking, dating apps are some of the most unprivate and safety-hazardous apps out there. The rest is just damage control.
6.1 Privacy (Such as It Is)
By their very nature, dating apps are hardly private in terms of the amount of personal information that must be shared with the app for it to work with any degree of efficacy. After all, how is one human to know if they want to romantically engage with another human if they know nothing about what they look like or who they are? While Mullet Maters may provide end-to-end encryption for chat messages—a decidedly privacy-conscious feature—it is a dating app first, and thus no exception to this privacy conundrum.
Table 6.1.1 summarizes the information explicitly provided to Mullet Maters by users and how that information may subsequently be made available to others. It is not intended as a complete inventory of information collected by Mullet Maters; for that, see the Mullet Maters Privacy Policy.
Scroll horizontally to view the full table. ↔
| Private between you & M.M. | Visible to select M.M. users | Visible to all M.M. users | Publicly Available |
|---|---|---|---|
|
|
|
|
- Phone numbers are also necessarily shared with Mullet Maters’ SMS OTP provider (see §6.2).
- Meetup plans shared with Mullet Maters, unlike all other records, do not require any authorized credentials to access; access is granted to anyone who possesses the meetup plan URL.
- Information visible to M.M. users is not freely browsable or searchable; Mullet Maters does not provide a general-purpose profile lookup or user-directory facility and is designed to make systematic enumeration of its userbase difficult.
6.2 — Phone Numbers
Mullet Maters requires a phone number to be provided by users during registration for account access purposes as well as user integrity purposes.
Mullet Maters does not share users’ phone numbers with any other person or organization, other than its SMS OTP (one-time passcode) provider, Google (Firebase Authentication). In turn, based on Google’s published privacy and data-processing commitments, Google does not share phone numbers with other parties, other than phone carrier networks as required to deliver OTP messages.
When a Mullet Maters account is deleted, Mullet Maters immediately deletes the associated phone number from its systems. Google subsequently removes the phone number from its infrastructure within 180 days, in accordance with its published data-retention policy.
Phone numbers associated with prohibited accounts (users who have been banned) are handled differently. Mullet Maters stores an HMAC-SHA-256 hash of the phone number in an effort to anonymize phone-number data away from Mullet Maters while still allowing account prohibitions to be enforced. However, because the range of possible phone numbers is comparatively small, these hashes remain vulnerable to hash enumeration (guess-and-check) and therefore cannot be considered fully anonymized from Mullet Maters.
6.3 — Advertising (Done Properly)
Mullet Maters has server bills. Mullet Maters is antithetically opposed to all forms of user-payment-based revenue models inside of online dating. Mullet Maters, therefore, serves advertisements in-app to generate revenue.
To make for a better in-app operator experience, Mullet Maters tries to make advertising a reasonably civilized experience, and not a complete privacy disaster. Ads in Mullet Maters are clearly marked, minimally invasive, fully integrated into the Discovery Feed, and do not know where the dating app operator has been on the internet or outside the app in general.
Mullet Maters does not request or use persistent advertising identifiers intended to recognize an operator across unrelated apps and services (on Apple devices, this is known as the Identifier for Advertisers, or IDFA), nor does Mullet Maters request permission to track operators across other companies’ apps and websites.
This does not mean advertisements operate without data altogether. Mullet Maters’ ad provider, Google AdMob, may independently collect limited information from the device. Collected information may include a non-persistent app-install identifier (known as an Identifier for Vendors, or IDFV on Apple devices), user interactions with advertisements, basic app-performance data, and rough location data inferred from network information. In addition, Mullet Maters may also provide a user’s age bracket and gender to AdMob and advertisers to improve advertisement relevance; though, Mullet Maters will provide users with a chance to opt-in or opt-out of age bracket and gender sharing before sharing any information provided by users with AdMob and advertisers.
Mullet Maters does not provide AdMob and advertisers with any other information maintained by its dating service that is not mentioned above — phone numbers, dates of birth, precise locations, profiles, likes, matches, chat records, etc. are all not shared with AdMob and advertisers.
6.4 — Data Retention
Mullet Maters does not retain any data on former users. When a Mullet Maters account is deleted, the account and all information associated with it are immediately deleted from Mullet Maters’ systems. This includes profile information, photos, location data, likes, matches, conversations, messages, meetup plans, blocked-user records, reports, and all other information maintained in association with the account.
Phone-number handling represents the sole exception where complete deletion may not occur, as described in §6.2.
6.5 — Operator Safety
Mullet Maters is designed to introduce people who, in all likelihood, have never met before. Privacy and safety features can help reduce some of the risks involved, but no dating app can make interacting with or meeting a stranger entirely risk-free. Most risks involved are inevitably left to be navigated and mitigated by the dating app operator, you. The following bullets detail some best practices when it comes to safely dating online and on Mullet Maters:
- Meet in public — For a first date, choose somewhere public with other people around. Plan your own transportation to and from the date beforehand.
- Communicate plans out-of-band — Tell a friend where you’ll be on your dates, over a channel outside the app. You can share your plans with Mullet Maters too, if you’d like.
- Never send money or financial info — Never exchange anything regarding account details, card numbers, payment apps, cryptocurrency, etc. — never. Never trust any financial or investment advice you receive from a match.
- Keep personal details private — Don’t share your address, workplace, or online social accounts until you fully trust someone.
- Report anything that feels off — Encryption limits what Mullet Maters can see, so reports are important to how Mullet Maters catches bad actors. You can optionally include messages in plaintext to help Mullet Maters moderate more effectively.
Not for folks with mullets. But also, not not for folks with mullets? It’s complicated.
Frankly,
early feedback on the name Mullet Maters was quite bad. Our highly unscientifically sampled control group mostly disliked it, found it confusing, or assumed it was a joke. In fact, the name was so poorly received by nearly everyone we asked that, after a while, it just started to become downright impressive. The mullet: it’s the one haircut your parents have strong opinions on, your barber/stylist asks “are you sure?” about, and polite society has spent decades snickering at (except Australia—they understand), but you get one anyway, on principle. It also happens to be the name of a fish that lives in coastal marine waters, estuaries, and sometimes fresh water, but that’s not the point. The point is, we like to think of downloading Mullet Maters, our dating app, as a little bit like getting a mullet haircut: among other things, a modest act of liberation. Or something like that, anyway.
We
may not know how to fix online dating. We don’t know how to engineer more matches, better conversations, better dates, or successful relationships, and nothing described below directly translates into any of those things. Ultimately, those outcomes depend on people. But what we are fairly certain we can do is liberate online dating.
Don’t
ask us how online dating ended up quite like this. We have done a substantial amount of legwork to try to understand online dating better. We are aware of a lot of the arguments, problems, players, history, and different approaches in this space. Yet, we still don’t fully understand why it mostly is the way it is. When did paying $20 per week to unblur some photos become a reasonable proposition? Why did inundating dating apps with gambling mechanics become one of the most common business practices? Why are sustainable business models that don’t depend upon restricting the dating experience itself seemingly so uncommon? How did Ashley Madison make a comeback after what happened in 2015?
This is not to say that every dating app is doing things wrong, that every paid feature is inherently objectionable, or that Mullet Maters has discovered the objectively correct way to operate an online dating platform. We haven’t. But we know it does not have to be this way—and so Mullet Maters was sustainably designed without paywalls.
Trust
in dating apps is extremely low these days, and it’s not hard to see why. Dating apps have a long tradition of making ambitious promises about what they can do for people—better matches, better dates, better relationships, maybe even a future spouse—despite outcomes like these being extraordinarily difficult to guarantee, or sometimes even define. But there is another, much less philosophical category of claims that should at least be answerable: what does the app actually do?
Are my likes actually being sent? Are my messages actually being delivered? Why am I seeing these people, in this order? Does paying change how the platform treats me? How much of my personal information is leaving my device, and where is it going? What does “private” actually mean? What does an advertised matchmaking algorithm actually do? When I turn something off, does it actually turn off? When I delete something, is it actually deleted? Are my messages actually end-to-end encrypted (okay, this one may be unique to Mullet Maters)? For questions like these, “trust us” is a pretty unsatisfying answer.
Open source software (or any source code available software) does not magically solve this problem, but it’s a good place to start. It gives anyone sufficiently curious the ability to inspect how software is designed to behave instead of relying exclusively on what the platform operator says it does. However, it doesn’t prove that the app on a device matches the published source code, and it doesn’t tell us what a closed server is doing. We’d like to close those gaps too, and we’re working on it. But open source software alone can still meaningfully reduce the amount of claims that must simply be taken on faith—and so the Mullet Maters iOS app and Feed Algorithm Service were open sourced.
The
messages you send should actually go to someone. The blocks you set should block someone. Hardware-backed attestation should be in place to help ensure that only real phones running legitimate instances of Mullet Maters can interface with the Mullet Maters’ userbase. Matches should have expiration dates because a little urgency is better than a conversation that never happens. Notifications should not disclose information they don’t need to disclose while en route. Advertisements should look like advertisements. Privacy controls should do what their labels say.
Most of this is not particularly novel. Most of these items don’t make for particularly exciting hero headlines either. Collectively, though, they make the product—and so Mullet Maters was made thoughtfully and entirely bug free. Well, hopefully, anyway.