Cringe: en dejtingapp designad för att hålla dig singel

En AI skriver om din profil ärligt i stället för smickrande. Vissa av personerna i din kortlek är inte personer, och appen talar om det.

Kund
Nuits
År
2026
Status
Väntelista
Roll
Ensam grundare, Produktdesign, Utveckling, AI-system
Teknik
React, Cloudflare, OpenRouter, Cloudflare AI Gateway
Cringe: en dejtingapp designad för att hålla dig singel

Bakgrund

Cringe är en dejtingapp med omvänd målfunktion. Alla andra appar i kategorin optimerar för engagemang och kallar det kontakt. Cringe optimerar för att du stänger den och går ut.

Du skriver en profil. En AI skriver om den ärligt i stället för smickrande, vilket för de flesta blir ett kort och ovälkommet dokument. Sedan swajpar du dig genom en kortlek. Några av profilerna är utplacerade AI-profiler, och appen avslöjar vilka, eftersom EU:s AI-förordning säger att en person har rätt att veta när hon pratar med en maskin.

Den har väntelista.

Problemet

Dejtingappar är det tydligaste exemplet på felriktade incitament som alla inblandade kan se och ingen kan rätta till. En lyckad matchning tar bort två betalande användare. En nästan-matchning håller kvar båda som prenumeranter. Gränssnittet är trimmat för känslan av nästan, för alltid.

Profillagret gör det värre. Alla skriver en optimerad version av sig själva, alla vet att alla andra gör det, och de tre första dejterna går åt till att lista ut hur långt texten drev från personen. Ohederligheten är ömsesidig, frivillig och oanvändbar.

Jag ville se hur samma gränssnitt såg ut med smickret borttaget och fejket märkt.

Min roll

Ensam. Nuits har aldrig anställt någon, så det här är min produktdesign, mitt varumärke, mitt gränssnitt och min kod.

Designarbetet här var inte dekoration. Det svåra var att få ett avslöjande att kännas som en del av produkten i stället för som ett efterlevnadsklistermärke i skärmens hörn. Ett juridiskt meddelande som ser ut som ett juridiskt meddelande avfärdas med en tryckning och ingen har lärt sig något. Det var ett designproblem innan det var ett juridiskt.

Angreppssätt

Jag började med den ärliga omskrivningen, eftersom den direkt talar om ifall hela idén är rolig eller bara elak.

Gränsen jag drog: omskrivningen får vara osmickrande om påståenden, aldrig om personen. ”Älskar att resa” blir en anteckning om att du har varit i fyra länder och lagt upp bilder från två av dem. Den kommenterar inte ditt ansikte, din kropp, din inkomst eller ditt värde. Att slå mot klichén är skämtet. Att slå mot användaren är en produkt som gör folk illa, och skillnaden måste kodas in i systemprompten i stället för att lämnas åt smaken.

AI-profilerna kom sedan. En kortlek med enbart riktiga människor i en app ingen har gått med i än är ett tomt rum, och en märkt fejkprofil är genuint intressant att prata med. Att märka dem var aldrig valfritt.

Så byggde jag det

React på Cloudflare. Stacken är medvetet liten, eftersom det intressanta ingenjörsarbetet ligger i modellagret.

Modellanropen går genom OpenRouter, så att profilomskrivaren och de utplacerade personligheterna ligger på olika modeller och jag kan byta endera utan att röra applikationskoden. Omskrivaren körs på en modell som är stark på att följa instruktioner, eftersom villkorslistan är lång och att bryta mot något av villkoren är det fel som avslutar produkten. Samtalen med de utplacerade profilerna körs på något billigare och snabbare, eftersom fördröjning i en chatt känns direkt och ingen sätter betyg på prosan.

Cloudflare AI Gateway sitter framför bildhanteringen och gör säkerhetsklassificering på allt en användare laddar upp. Det är ingen trevlig extrafunktion på en dejtingprodukt; det är priset för att över huvud taget tillåta uppladdningar. Gatewayen ger mig också cachning och utgiftstak per rutt, vilket är hur en gratis väntelisteprodukt överlever kontakt med internet.

Omskrivaren är den del jag utvärderade hårdast. Jag höll en uppsättning riktiga profiler, körde varje promptrevidering mot dem alla och läste resultatet på jakt efter ett enda fel: att modellen bestämde sig för att vara spirituell om personen. Stora modeller driver mot grymhet när du ber om ärlighet, eftersom grymhet är det närmaste ärlighet som finns i träningsdatan. Lösningen blev en lista med negativa villkor plus en andra genomgång som klassar varje genererad mening som riktad mot ett påstående eller mot en person och slänger den senare sorten. Det kostar ett extra anrop per omskrivning. Det är värt det.

De utplacerade profilerna bär avslöjandet på tre ställen: på kortet i kortleken, i chattens sidhuvud och i inställningarna, där du kan stänga av dem helt. Enligt EU:s AI-förordning måste en interaktion med ett AI-system avslöjas för personen som interagerar med det. Att bygga in det från första commiten var billigare än att bygga in det i efterhand, och det visade sig bli den funktion folk nämner först.

Resultat

Väntelistan är öppen på becringe.org. Anmälningarna är resultatet så här långt, och jag säger hellre det rakt ut än klär upp en väntelista som traktion.

Avslöjandet kostade ingenting. Ingen har behandlat de märkta AI-profilerna som en bugg. Flera har behandlat dem som skälet att anmäla sig.

Vad jag skulle göra annorlunda

Jag byggde swajpkortleken före omskrivaren, vilket innebar en månad av att trimma ett gränssnitt runt utdata jag inte hade stresstestat. Modellens beteende borde ha kommit först, med gränssnittet ritat runt det modellen faktiskt gör.

Jag skulle också ha skrivit texten om AI-förordningens avslöjande på sajtens alla fyra språk från början. Att översätta ett juridiskt meddelande efter att tonen är satt är en omskrivning, inte en översättning.