Перейти до вмісту
cutty.dev
All posts

Технологічний стек cutty.dev — усвідомлені вибори

Що знаходиться під кутом зору cutty.dev і чому. Без евангелізму: філософія — нудний, стабільний стек, хостинг в ЄС та приватність, закладена в архітектуру, яку одна людина може підтримувати.

Більшість статей про «мій стек технологій» — це пишний перелік новинок. Ця ж присвячена іншому — філософії, яка стоїть за виборами cutty.dev: нудна та стабільна замість модної, європейська замість американської, приватна за замовчуванням і настільки проста, що її може підтримувати одна людина.

Фреймворк: Astro (серверний рендеринг)

cutty.dev — це додаток на Astro, який рендериться на стороні сервера. Кожне запит проходить через сервер, динамічно складає сторінку та відповідає готовим HTML-кодом.

Чому: я хотів отримати рендеринг на стороні сервера без важкої конструкції, гарну підтримку багатьох мов, вбудовану безпосередньо у фреймворк, та швидкість без накладних витрат. Astro надає все це, а код залишається зрозумілим — що для проекту, який ведеться поодинці, варте більше за будь-який модний додаток.

База даних: SQLite

Одна база даних, один файл. До того ж шар запитів, дружній до TypeScript, завдяки якому зміна структури даних одразу показує помилки в коді, а не на продакшені.

Чому: cutty.dev є насамперед "read-heavy" — кожен клік посилання означає зчитування плюс збільшення лічильника. SQLite робить це чудово, витримуючи дуже великий денний трафік. Резервна копія — це просто копіювання одного файлу — без церемоній реплікації, без складних скриптів. Простота тут — це не економія на якості; це свідоме рішення, що менша кількість рухомих частин означає менше речей, які можуть зламатися.

Хостинг: сервер в Європейському Союзі

Виділений сервер у ЄС, власний сертифікат TLS, зворотний проксі з автоматичним HTTPS, контейнеризована програма.

Чому: це фундамент того, як cutty.dev ставиться до даних. Повний контроль над їхнім розташуванням (ключовий для клієнтів в ЄС та для GDPR), відсутність залежності від одного постачальника, відсутність автоматичної реплікації до США, яку надають великі хмарні платформи, та передбачувана вартість замість рахунку, що залежить від трафіку. Зручні західні платформи дали б швидший старт — але ціною того, де фізично опиняються дані ваших користувачів.

Переклади: локальна модель ШІ

cutty.dev підтримує 25 мов, а переклади виконує локальна відкрита ШІ-модель, запущена на нашій власній інфраструктурі.

Чому: жоден текст із інтерфейсу не виходить назовні — ми не надсилаємо його жодному зовнішньому постачальнику ШІ. Це забезпечує нульові витрати за одне перекладання та повний контроль над якістю: ми можемо оновлювати його, коли завгодно. Машинний переклад завжди потребує людської перевірки — і кожна мова пройшла такий огляд — але робота всередині означає, що конфіденційність є не опцією в ціновій політиці, а властивістю архітектури.

CSS: утилітарний підхід (Tailwind)

Одна система стилів, без CSS-in-JS, без окремих файлів стилів. Все безпосередньо в шаблонах.

Чому: швидкість ітерації. Я не витрачаю час на вигадування назв класів, а невикористані стилі все одно не потрапляють на фінальну сторінку. Узгоджений дизайн, нав’язуваний самою системою. Для однієї людини важлива кожна хвилина, яку я не витрачаю на побічні речі.

Впровадження: контейнери

Додаток у контейнерах (Docker), що впроваджується повторюваним та переносним способом.

Чому: те саме середовище локально та на продакшені, відсутність фрази «у мене працювало», і можливість перенесення всього на інший сервер за пів години, якщо виникне така потреба. Переносимість — це форма незалежності.

Чого мене це навчило

  • Нудний стек перемагає. Astro, SQLite, Tailwind, контейнери — усе зріле, добре задокументоване, стабільне. Нічого не ламається в найменш очікуваний момент.
  • Хостинг в ЄС готовий до продакшену. Міф «треба йти на великий американський хмарний сервіс, щоб було серйозно» є саме цим — міфом.
  • Локальний ШІ реальний. Не потрібно передавати свої дані зовнішньому API, щоб мати хороші переклади.
  • Одна людина може випустити продукт, який виглядає як робота команди. Час є ресурсом дорожчим за гроші, тому кожен вибір тут захищав саме час.

Подивитися наживо. Запитання щодо технічного підходу — hello@cutty.dev, відповідаю того ж дня.