BeMatrx 的動態牆沒有排序演算法。你會看到什麼,只由一件事決定:你追蹤了誰。你的動態牆裡是你追蹤的人和你自己發的貼文,最新的排在最前面。有人以為這只是我們還沒做的功能,其實這是我想得最久的一個決定,所以想說說它是怎麼來的。
讓我不舒服的事
一開始是一種個人的不自在。只要某個東西我多看了一會兒,接下來好幾天它就會一直出現在我眼前,我一直覺得這很奇怪。也許沒有人真的在盯著我,但我感覺得出來,我看到的東西是根據收集到的關於我的資訊挑出來的。
我不想把這種事帶進自己做的地方。所以隱私不是後來才加上的設定,而是我做的第一個決定。我不是拿掉了排序演算法,我是從來沒寫過。下面是這個決定怎麼變成一座城市的經過。
我們一開始問的問題
畫第一版草圖時,我們問自己:在真實的城市裡,是誰決定你會碰到誰?其實沒有人。你會碰到鄰居,是因為你們住在同一條街;你會聽到朋友的消息,是因為你們是朋友;你知道廣場上發生什麼事,是因為你剛好走過去。沒有人在排名,也沒有人在打分數。有的只是距離和關係,事情照著先後順序發生。
我們把這段寫在白板上之後才發現,城市幾百年來一直是這樣運作的。我們要做的,就是別在應用程式裡把它弄壞。
我們不是拿掉了演算法,是從來沒做過
我受訪時會用這句話,因為這是最準確的說法。從第一張草圖開始,你眼前出現什麼,就只由一件事決定:你追蹤了誰。順序依時間排,最新的在最上面。我們不是為了省事才這樣做,這也不是一個後來被包裝成理念的限制。
這讓我們可以做一個自己說得心安的承諾:當你問「我為什麼會看到這個?」,答案永遠只有一句話。因為你選擇追蹤的某個人,不久前發了它。
決定你看到什麼的是什麼
就是你追蹤了誰,沒有別的。就像在現實生活裡你自己決定要跟誰相處,在這裡你自己選擇要收到誰的消息。你自己的貼文也會在動態牆上。在 BeMatrx,你住在哪裡也有影響,程度差不多就跟在真實城市裡一樣:它決定你比較可能碰到誰、你會經過哪些廣場、誰會看到你走進咖啡館。你就是在那裡認識人的。追蹤某個人之後,他的貼文就會出現在你的動態牆上。
順序只看時間,由新到舊。最上面那則,就是你追蹤的人最近一次分享的東西。聽起來是個很小的承諾,但其他的設計都是為了守住它而做的。
一道有盡頭的動態牆
最讓人意外的,是這道動態牆有多安靜。它更新的速度跟你身邊生活的步調差不多,然後就到底了。沒有新東西的時候你看得出來,就可以離開,像去朋友家坐坐之後起身告辭。
這也是為什麼大家在這裡分享的東西有一點分量。工作升遷、搬了新家、一段友誼往前走了一步,這些消息會連同事情發生的那座城市,一起送到選擇追蹤你的人眼前。動態牆小,這樣的時刻就不會淹沒在人群裡。
活著的世界的位置
在一篇講動態牆沒有演算法的應用程式的文章裡說這句話,也許有點奇怪:我們不把 BeMatrx 當成任何東西的替代品。你手機裡的應用程式都把自己的事做得很好,活著的世界不是要跟它們搶同一個小時。它希望的,是你一天裡有一個小時能留下點什麼。
我最喜歡的情況是兩邊一起發揮作用。你在 BeMatrx 的職涯往上升了一級,或是租到第一個住處,你覺得很驕傲,就把它分享到朋友看得到的地方。我們的工作是給你值得分享的事,要在哪裡分享,由你決定。
我們選擇的量尺
有盡頭的動態牆,代表大家待在應用程式裡的時間會變少。我們是知道這點還選擇這樣做的;你停留多久,從來不是我們的量尺。這裡我要講清楚:我不是說我們什麼都不測量。我們會測量開了哪個畫面、開了多久,以及動態牆裡哪則貼文出現在畫面上,因為不這樣做,我就看不出應用程式卡在哪裡。你輸入的文字和你螢幕上的圖片不包含在內。這些資料存放在歐洲的伺服器上,在「設定」裡用一個開關就能立刻關掉。我的界線是這樣:我們測量到的任何東西,都不會拿來挑選你看到的內容。測量結果唯一會回到應用程式裡的,是某個區塊有沒有開啟,而且對每個人都一樣。當你離開應用程式,留下來的是你的職涯、你的城市,還有會發現你不見了的那些人。我們知道這個選擇是有代價的。
活著的世界是什麼、這個類別怎麼運作,我寫在這篇文章裡。一個沒受過軟體訓練的人怎麼做出這個產品,可以看用 Claude Code 打造 BeMatrx 的故事。