Doveborn: kumpikaan kirje ei aukea ennen kuin molemmat on sinetöity
Viikoittainen kirje kahden ihmisen välillä. Et voi lukea toisen kirjettä ennen kuin olet kirjoittanut omasi, eikä kehotteita tuottava malli näe sanaakaan siitä mitä kumpikaan kirjoitti.

Taustaa
Doveborn on yksi kirje viikossa kahden ihmisen välillä. Siinä on koko tuote.
Molemmat kirjoittavat. Kumpikaan kirje ei avaudu ennen kuin molemmat on sinetöity. Jos toinen ei ole kirjoittanut omaansa, et katso mitään, avasit sovelluksen kuinka monta kertaa tahansa. Kun toinenkin sinetöi, molemmat ilmestyvät yhtä aikaa.
Se on jonotuslistalla.
Ongelma
Käyn samaa keskustelua minulle tärkeiden ihmisten kanssa kolmessa eri sovelluksessa, eikä siitä kerry mitään. Viestintä on optimoitu välittömyyteen, mikä tarkoittaa että se on optimoitu pohdintaa vastaan. Se minkä sanoisit kunnolla kahdessakymmenessä minuutissa sanotaan huonosti kahdessakymmenessä sekunnissa, ja sitten se vierii pois.
Mekaniikka jota jahtasin syntyi siitä että katsoin miten ihmiset käyttäytyvät kun he näkevät toisen viestin ensin. He mukauttavat omansa siihen. Pituus, sävy, syvyys, vaivannäkö. Joku kirjoittaa kolme riviä ja sinä kirjoitat kolme riviä takaisin, ja vaihto asettuu lattiaan eikä kattoon. Lukukuittaukset pahentavat tilannetta, koska nyt hiljaisuus on luettavissa ja molemmat esiintyvät sille.
Poista mahdollisuus lukea ensin, ja ankkurointi katoaa. Kirjoitat sen mitä sinulla on, et sitä mihin mukaudut.
Oma roolini
Yksin, kuten kaikki Nuitsissa. Tuote, vuorovaikutussuunnittelu, tekninen toteutus, tekstit, yksityisyysmalli.
Yksityisyysmalli on se osa jota osoittaisin. Se ei ole seloste jonka kirjoitin jälkikäteen kuvaamaan järjestelmää. Se on rajoite jonka ympärille suunnittelin järjestelmän, ja se poisti ominaisuuksia joita halusin.
Lähestymistapa
Sinetöinti on tuote, joten käyttöliittymä on olemassa lähinnä tehdäkseen sinetöinnistä harkitun tuntuista. Kirjoittaminen tapahtuu koko ruudun koristelemattomalla sivulla, jossa ei ole muotoilupalkkia eikä merkkilaskuria. Lopussa on yksi toiminto ja se on peruuttamaton. Peruuttamattomuus tekee oikeaa työtä: muokattava kirje on luonnos, eikä luonnos tule koskaan valmiiksi.
Odotustila oli toinen suunnitteluongelma. Kun olet sinetöinyt etkä toinen, näytettävää ei ole ja houkutus täyttää tila kannustuksella, edistymispalkeilla tai tönäisyillä on suuri. Kaikki ne muuttavat odotuksen paineeksi, ja viikkokirjeeseen kohdistettu paine tuottaa huonon viikkokirjeen. Odotusnäkymä on tarkoituksella lähes tyhjä.
Kehotteita on, valinnaisina, niitä viikkoja varten kun avaat sivun eikä sinulla ole mitään. Ne ovat ainoa kohta jossa malli koskee tuotteeseen.
Toteutus
TanStack Start, TanStack Query ja React 19, julkaistuna PWA:na jotta sen voi asentaa ja se asuu aloitusnäytöllä, missä viikoittainen rituaali oikeasti selviää hengissä. Query hoitaa synkronoinnin sinetöidyn ja avatun tilan välillä, mikä on herkempää kuin miltä kuulostaa: kaksi laitetta voi sinetöidä saman sekunnin sisällä, ja molempien pitää siirtyä odotuksesta paljastukseen ilman että kumpikaan välähtää puolinaisen tilan läpi.
Yksityisyyden suunnittelu on kantava päätös. Kehotemalli lukee metadataa ja vain metadataa. Se tietää kuinka monta viikkoa pari on jatkanut, suunnilleen kuinka pitkiä kirjeet ovat, kuinka kauan edellisestä vaihdosta on, ja mitä laajoja teemoja pari on aiemmin itselleen valinnut. Se ei saa koskaan kirjeiden sisältöä. Ei lausetta, ei otetta, ei tiivistelmää.
Se rajoite maksoi minulle sen ominaisuuden jonka olisin eniten halunnut rakentaa. Kehotegeneraattori joka on lukenut kuusi edellistä kirjettäsi osaa kysyä aidosti hyvän kysymyksen. Kehotegeneraattori joka toimii lukumäärien ja päivämäärien varassa kysyy kelvollisen yleisen. Julkaisin sen kelvollisen yleisen, koska vaihtoehto tarkoittaa että lause ”kirjeesi ovat yksityisiä” on epätosi tavalla jota lukija ei osaisi odottaa, enkä ole valmis kirjoittamaan tuota lausetta ja lisäämään siihen hiljaa varauksia.
Loput seuraa samasta säännöstä. Kirjeet tallennetaan, koska ne pitää voida lukea uudelleen, mutta mikään putkessa ei analysoi niitä. Ei tunnesävyn pisteytystä, ei aiheiden poimintaa, ei sisällöistä rakennettua hakuindeksiä, ei sitoutumismallia. Optimoitavaa feediä ei ole, joten ei ole mitään millä sitä optimoitaisiin.
Vikatilat liittyvät enimmäkseen epäsymmetriaan. Toinen sinetöi joka viikko ja toinen lopettaa, ja sovelluksen on käsiteltävä se muuttumatta syyllistämiskoneeksi. Tällä hetkellä se yksinkertaisesti pitää sinetöityä kirjettä odottamassa eikä sano mitään. Se ei ole ratkaistu ongelma; se on tietoinen kieltäytyminen ratkaisemasta sitä huonosti.
Lopputulos
Jonotuslista osoitteessa doveborn.com. Se on rehellinen tilanne.
Mekaniikka on kestänyt testeissä sillä pienellä joukolla pareja jotka sitä käyttävät. Kukaan ei ole pyytänyt mahdollisuutta kurkata, mitä puoliksi odotin ensimmäiseksi toiveeksi.
Mitä tekisin toisin
Käytin liikaa aikaa kirjeen kirjoitusnäkymään ja liian vähän paljastukseen. Paljastus on koko tuotteen tunnelataus, ja tällä hetkellä se vain näyttää kaksi kirjettä. Sen pitäisi olla sovelluksen suunnitelluin näkymä ja se on vähiten suunniteltu.
Olisin myös rakentanut parin kutsupolun ennen kirjoituskokemusta. Kaikki Dovebornissa vaatii kaksi ihmistä, ja rakensin yksinpelipuolen ensin, mikä tarkoitti että kutsumisen kömpelöt kohdat löytyivät myöhään.




