Технологічний стек 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, відповідаю того ж дня.