Масштабне оновлення: Запуск кастомного рушія DSG.studio Web
Нова ера для DSG.studio 🚀
Ми раді повідомити про довгоочікуваний запуск абсолютно нової платформи для нашого сайту-портфоліо та блогу. Те, що ви зараз бачите перед собою — це не просто косметичний редизайн. Це результат глибокого переосмислення того, як має працювати сучасний, швидкий та зручний вебсайт для розробників. Ми викинули всі старі залежності і написали власну систему з чистого аркуша.
Відмова від милиць та готових рішень
Довгий час ми експериментували з різними платформами. Починали з готових систем управління контентом, які швидко обростали сумнівними плагінами, ставали надзвичайно неповороткими та вимагали постійної уваги до оновлень безпеки. Згодом ми спробували генератори статичних сайтів: вони працювали чудово для простих текстових сторінок, але перетворювалися на справжній біль, щойно виникала потреба додати живий повнотекстовий пошук, побудувати динамічні зв'язки між статтями та додатками або впровадити складну багатомовність.
Зрештою, стало очевидно, що ми витрачаємо набагато більше зусиль на боротьбу з обмеженнями чужих інструментів, ніж на написання самого контенту. Нам був конче необхідний ідеальний баланс, який би поєднував легкість створення текстів, як у статичних сайтах, із динамічною потужністю та гнучкістю повноцінного бекенд-фреймворку. Так народився проєкт DSG.studio Web.
Архітектура, створена для швидкості
Замість того, щоб йти шляхом популярних нині масивних фронтенд-фреймворків, ми обрали стек, орієнтований на серверну продуктивність та класичну веб-розробку. Серцем усього проєкту виступає FastAPI — один із найшвидших та найсучасніших Python-фреймворків. Його асинхронна природа дозволяє серверу легко витримувати серйозні навантаження, обробляючи запити паралельно з мінімальним споживанням оперативної пам'яті.
Але найцікавіше відбувається з тим, як ми працюємо з текстами. Ми повністю відмовилися від візуальних редакторів та не тримаємо оригінали статей у базі даних. Уся наша текстова база — це звичайні Markdown файли з метаданими у форматі YAML, які зберігаються безпосередньо в репозиторії разом із кодом. Щоб додати або змінити статтю, достатньо зробити новий Git-коміт. Такий підхід дарує нам ідеальну історію змін і дозволяє писати контент в улюбленому редакторі коду.
Водночас ми зберегли всі переваги реляційних баз даних. Спеціальний фоновий механізм постійно відстежує зміни у файлах, миттєво парсить оновлений Markdown, перетворює його на безпечний HTML і завантажує необхідні дані у PostgreSQL. Саме Postgres бере на себе всю важку роботу: швидку фільтрацію, створення зв'язків між сутностями та глибокий повнотекстовий пошук за допомогою ефективних GIN-індексів.
Що ж до візуальної частини, то ми свідомо відмовилися від підходу Single Page Application (SPA). Сторінки не будуються на пристрої користувача шляхом виконання мегабайтів JavaScript-коду. Натомість ми використовуємо перевірений часом серверний рендеринг за допомогою шаблонізатора Jinja2. Сервер за лічені мілісекунди збирає готову HTML-сторінку, а її дизайн та бездоганна темна тема забезпечуються утилітарними класами Tailwind CSS.
Новий користувацький досвід
Головна мета всіх цих архітектурних рішень — створити ідеальний простір для наших читачів. Насамперед, ви відчуєте кардинальну різницю у швидкості роботи: завдяки відсутності важких клієнтських скриптів сторінки завантажуються майже миттєво, незалежно від якості інтернет-з'єднання чи потужності смартфона.
Окрім швидкості, ми суттєво переробили структуру каталогу наших продуктів. Тепер орієнтуватися у ньому стало набагато простіше, адже всі мобільні застосунки, десктопні утиліти та боти акуратно розподілені за відповідними категоріями. Також ми приділили величезну увагу деталям: сайт отримав глибоку і продуману темну тему, яка автоматично підлаштовується під системні налаштування вашого пристрою та не втомлює очі під час тривалого читання. А завдяки вбудованій підтримці кількох мов, платформа стала повністю безшовною для нашої глобальної аудиторії.
Ми щиро пишаємося тим, що вийшло у підсумку. Цей сайт — ще один повноцінний продукт нашої студії, в який вкладено багато інженерного натхнення. Залишайтеся з нами, досліджуйте наші розробки, і нехай ваш користувацький досвід буде виключно приємним!