چطور لیونا را ساختیم
از یک نمونهٔ آخرهفته در آشپزخانهٔ کالیو تا پیامرسان متنبازی که سعی میکند فریاد نزند.
لیونا شروع شد چون پاتوق قدیمیمان مدام قانون عوض میکرد. یک زمستان گروهی که مدیریتش میکردم اول ایموجی سفارشی را از دست داد، بعد تقویت سرور را، بعد جستجوی بیش از نود روز را مگر کسی پول بدهد. «جایگزین دیسکورد» نمیخواستم. اتاقی میخواستم که ده سال دیگر هنوز باشد، حتی اگر شرکت نباشد.
ساخت اول یک کلاینت وب تایپاسکریپت بود و یک درگاه کوچک ارلنگ، آخرهفتهها در آشپزخانهای در هلسینگینکاتو. اسم، اسم مادربزرگم است؛ منهای یک حرف که همیشه وقتی کارت امضا میکرد جا میانداخت.
بخشهای کسلکنندهای که مهماند
پیامرسانها در جزئیاتی میمیرند که آدم در دقیقهٔ اول میبیند: اسکرول بینهایتی که میپرد، نقطهٔ نخواندهای که دروغ میگوید، مارکداونی که با پیست میشکند، جعبهٔ جستجویی که کانال را فراموش میکند. بیشتر سال اول را صرف همینها کردیم، نه اسکرینشات صفحهٔ فرود.
- کش پیام کراندار و لنگر اسکرول پایدار.
- وضعیت نخوانده که درِ لپتاپ و قفل گوشی را تاب میآورد.
- مارکداون آشنا، عمداً، تا آدمها بدون از نو یاد گرفتن جابهجا شوند.
- تعویضگر سریع که با صفحهکلید همانطور کار میکند که دستهایت انتظار دارند.
چرا سه زبان
لیونا تایپاسکریپت روی کلاینت است، ارلنگ روی درگاه، و راست روی مسیرهای داغ. شبیه شرطبندی به نظر میرسد. در واقع کمنمایشترین شکافی بود که پیدا کردیم:
- ارلنگ برای اتصال، حضور و تماس. پردازه ارزان است. جامعهٔ شلوغ نباید جامعهٔ آرام را معطل کند.
- راست برای پیام، رسانه، باز شدن لینک و شناسه. حلقههای تنگ با لبههای تیز.
- تایپاسکریپت برای چیزی که واقعاً نگاه میکنی. کلاینت وب منبع حقیقت است؛ دسکتاپ دورش میپیچد؛ موبایل با فلاتر میرسد.
چه چیزی را رد کردیم
تبلیغ در خط زمان نه. فروش محتوای پیام نه. «برای همیشه رایگان» که بیسر و صدا به دیوار پرداخت جستجو بدل شود هم نه. هلیوم هست تا چراغها روشن بمانند، بدون اینکه خودِ گفتگو محصولی شود که ازش استخراج میکنیم.
همچنین تظاهر نکردیم میزبانی شخصی مأموریت فرعی است. اگر نتوانی اتاقهایت را با خودت ببری، واقعاً مال تو نیست. کار ۲.۰ نسخهٔ بلند همین جمله است.
رمزنگاری سرتاسری؟
صدا همین حالا از رمزنگاری توکار لایوکیت در جوامع آزمایشی استفاده میکند. پیام مستقیم مهرومومشده روی نقشهٔ بهار است. کانالهای جامعه سمت سرور میمانند تا مدیریت ممکن باشد. کانال عمومی #عمومی را رمز نمیکنیم تا بعد غافلگیر شویم که هرزنامه برده.
اپ بومی کجاست؟
بالاخره در حال ارسال. ببین اپهای بومی و لیونا ۲.۰. پیدبلیوا در همین مدت خیلی بهتر شد و هنوز انتخاب درست است برای کسی که آلفا روی گوشی نمیخواهد.
اگر میخواهی کمک کنی، مخزن دوباره عمومی است. اگر فقط اتاق آرامتری میخواهی، لیونا را دانلود کن یا در مرورگر باز کن. ساختن حساب رایگان است. کارت نمیخواهیم.
Liona started because our old hangout kept changing the rules. I didn’t want another Discord clone. I wanted a room that would still be there in ten years.
The first build was a TypeScript web client and a small Erlang gateway, written on weekends in a kitchen on Helsinginkatu. The name is my grandmother’s, minus one letter.
Three languages
TypeScript on the client, Erlang on the gateway, Rust on the hot paths. Chat apps die in the details people notice in the first minute — we spent year one there.