Changelog 2025.11 🇺🇦
Привіт!
Листопад вийшов для Kruty напрочуд продуктивним, історія змін не дасть збрехати:
> git log --oneline --since="2025-11-01"
35f8f6d (HEAD -> main, tag: 2025.49.5, origin/main, origin/HEAD) Added Clear/Apply Functionality (#138)
114f6db (tag: 2025.49.4) fix: flatpickr locale undefined (#136)
cb4485d (tag: 2025.49.3) feat/flatpickr-styling (#135)
1978793 (tag: 2025.49.2) fix: don't expose user emails (#134)
c392e47 (tag: 2025.49.1) fix: damn trailing commas
8e21a09 (tag: 2025.49) chore: treat JS warnings as errors
cedcab7 (tag: 2025.48.13) feat: use biome for JS linting (#129)
f86ae14 (tag: 2025.48.12) chore: add missing error translation
872a215 (tag: 2025.48.11) Added year_range attribute and fixed styling (#132)
98a40b9 (tag: 2025.48.10) fix: user events query (#133)
2a86666 (tag: 2025.48.9) fix: show events user RSVP'd to on the 'My Events' tab (#131)
2812c08 (tag: 2025.48.8) fix: private event visibility (#130)
a7c31b0 (tag: 2025.48.7) fix: use event wizard to edit events (#128)
b5e5c0e (tag: 2025.48.6) fix: Email code input on Chrome (#127)
aa6952f (tag: 2025.48.5) fix: simplify gallery upload progress (#126)
f4e9f3d (tag: 2025.48.4) feat: simplify profile image upload (#125)
f43b61e (tag: 2025.48.3) feat: replace JS datepicker with flatpickr component (#124)
5b406f9 (tag: 2025.48.2) run `mix assets.setup` during release
df2cdfb (tag: 2025.48.1) fix uk translation for "gen new code in x seconds" (#123)
8a07f0e (tag: 2025.48) KAPP-27: authenticate using one-time email code (#122)
2db7823 (tag: 2025.46) feat: Send emails using Swoosh and Transmit (#121)
Ми були настільки продуктивними, що видалили більше рядків коду, ніж додали. Як кажуть, найкращий — той код, якого не існує, хе-хе.
Added: 6418 / Deleted: 6822
Досить цих задротських метрик, далі про те, що саме ми встигли зробити протягом листопада 😤.
Нові фічі
Логін за допомогою email кодів
Місяць тому ми мали лише дві опції для автентифікації в Kruty — через Google або Strava акаунт. Це охоплює доволі високий відсоток наших потенційних користувачів, але хотілося б мати опцію, яка не зобов'язувала б бути користувачем Google або Strava. І стара добра електронна пошта, будь то Gmail, Fastmail чи ukr.net, — це саме те універсальне рішення. Особливо, якщо вам не потрібно при цьому пам'ятати пароль для вашого акаунту в Kruty, бо ми надсилаємо одноразові паролі, які дуже легко використовувати.
Новий компонент вибору дати та часу
Ми розробляємо Kruty на Phoenix, який має функціональний, але при цьому не дуже зручний компонент календаря, який ми використовуємо для планування майбутніх подій. На думку Олексія, цей компонент настільки жахливий, що він присвятив себе героїчній місії — написати свій власний компонент, який буде добре виглядати на десктопі і мобільних пристроях. Ця ідея мене жахала, бо 2 тис. рядків коду на JavaScript можуть не жахати тільки тих, хто не цінує свій душевний спокій. Зрештою, після декількох ітерацій, ми адаптували під наші потреби існуючий компонент і раді, що ця місія завершилася успішно. Ми дуже старались зробити календар зручним, сподіваюсь ви заціните. 🤞
Галерея
Для галереї події ми спростили те, як виглядає прогрес при завантаженні фотографій. Тепер замість купи статус-індикаторів, ми показуємо один для загального прогресу завантаження фотографій.

Виправленні помилки та дрібні покращення
- На сторінці
Мої Подіїтепер містяться події, на які відгукнувся користувач. Тепер їх буде легко знайти. - Завантаження зображення для профіля користувача тепер потребує лише одного кліку ✨.
- Клікнувши на учасника події, тепер можна перейти на сторінку його профілю.
- Профіль користувача тепер має опційні поля, які можна заповнити додатковою інформацією 👇

Що далі?
Маємо купу ідей над чим працювати, але дуже імовірно, що займемось розробкою клубів, де учасники клубу зможуть ділитись між собою закритими подіями та маршрутами. Дякуємо за увагу, чекайте на новий changelog через місяць 👋.