Кодим, страдаем, повторяем
1.39K subscribers
23 photos
270 links
Разбираем технологии, которые сложнее, чем твои отношения
Download Telegram
🚀 70 дней → 800 звёзд: Как карта из 16 багов вывела проект в топ

Иногда достаточно системно найти болевые точки разработчиков — и проект взлетает сам 💥 История роста open-source решения: с нуля до 800 звёзд на GitHub за 70 дней через фокус на отладке вместо разработки фич.

▪️ Что создано:
🔹 Карта проблем — текстовое руководство с 16 типовыми ошибками в AI/RAG/агент-пайплайнах. Каждый кейс содержит:
🔹 Чёткие шаги для воспроизведения бага (менее 60 сек).
🔹 Минималистичный пример кода.
🔹 Причинно-следственную цепочку ошибки.
🔹 Рабочие способы фикса.

Примеры проблем:
# Типичный сценарий: ретривер работает, а ответ LLM дрифтит
def retrieve():
return "OK" # На деле — пустой ответ из-за кэша


▪️ Самые частые боли:
🔹 Падения при первом вызове после деплоя.
🔹 Нулевой реколл при «успешной» индексации.

▪️ Механика роста:
1. Выявление повторяющихся проблем из треда в треде.
2. Фиксация ошибок в структурированном виде (+MIT лицензия).
3. Интеграция TXTO-S — текстовой «операционки» для стабильной работы LLM.

💡 Главный инсайт:
Экстренная помощь в отладке даёт в 3.7× больше звёзд, чем демонстрация новых фич 📈 Рост шёл через сарафанное радио в профильных коммьюнити.

▪️ Ссылки:
▶️ Репозиторий проекта
(внутри — 27 рабочих примеров сценариев падений и 11 паттернов для автоматизации отладки 🔧)

Проверьте, как просто решать чужие боли — и ваш проект станет незаменимым 🛠️

👉 Подписаться
🔥 KeyTik: Швейцарский Нож Автоматизации (Идеален для Новичков!)

Один инструмент для всех задач — от простого ремапа клавиш до сложной автоматизации процессов. KeyTik заменит рутину, которая раздражает и отнимает время.

▫️ Ключевые возможности:
🔹 Ремап клавиш с гибкими профилями (можно переключать в один клик).
🔹 Автокликер, работающий по координатам или шаблонам.
🔹 Менеджер скриптов AutoHotkey с редактированием и автозагрузкой.
🔹 Открытие файлов и программ через интеллектуальные паттерны.

Программа основана на AutoHotkey, но для её использования не нужны навыки программирования — готовые шаблоны можно скачать из спец-репозитория.

▫️ Примеры из коллекции:
🔹 Автоотправка сообщений в Telegram, WhatsApp и других мессенджерах.
🔹 Горячие клавиши для Photoshop, Blender и графических редакторов.
🔹 Пакетная обработка PDF, изображений и текстовых файлов.

🐔 Если курица печатает 100 слов в минуту — это тоже работа KeyTik. Шутка? Не уверены!

Главные преимущества:
Весит менее 10 МБ — не нагружает систему.
Гибкая настройка через JSON-конфиги для продвинутых пользователей.
Поддержка портативной версии (можно носить на флешке).

Скачайте и автоматизируйте всё → GitHub.

👉 Подписаться
🤖 Баги? Не проблема! Открыт доступ к авто-фиксам от AI

Автоматическое исправление ошибок в production стало реальностью с новым open-source инструментом! Платформа TraceRoot использует AI-агентов для анализа и правки кода, подключаясь к трейсам, логам, метрикам, GitHub и Slack.

▪️ Как работает
🔹 Интегрируется через Python/TypeScript SDK с OpenTelemetry для сбора данных
🔹 Анализирует связи между инцидентами, PR, issues и обсуждениями
🔹 Генерирует фиксы и создаёт GitHub Issues / Pull Requests

▪️ Фишки
🔸 Авто-диагностика причин сбоев на основе полного контекста
🔸 Шаблоны для быстрого развёртывания в облаке или локально
🔸 Поддержка Next.js, Django, FastAPI из коробки

Проект доступен на GitHub. Документация включает кейсы и примеры внедрения для разных сценариев.

👉 Подписаться
🚀 ИНТЕГРАЦИЯ LOCAL HISTORY В VS CODE/CURSOR ЧЕРЕЗ MCP СЕРВЕР

Современные редакторы вроде VS Code и Cursor имеют встроенную локальную историю изменений файлов, но до сих пор нет штатного способа подключать её к AI-ассистентам.

🔹 Проблема: После отмены изменений через Cmd+Z вернуть данные через историю невозможно — стандартные инструменты ограничены.
🔹 Решение: Разработан MCP-сервер, который открывает доступ к Local History через API.

🔥 Преимущества:
🔹 Работает с VS Code, Cursor и другими форками — универсальность для разных редакторов!
🔹 AI-помощники смогут анализировать историю изменений (как это уже происходит с линтерами) — новый уровень взаимодействия.
🔹 Поддержка новых редакторов добавляется всего несколькими строками кода — простота интеграции.

(Интересный факт: разработчик вдохновлялся плагином Local History для Sublime Text, но сделал реализацию более гибкой и универсальной!)

🚀 Ссылка на репозиторий с исходным кодом и инструкциями:
👉 GitHub

👉 Подписаться
🕒 Создаём неоморфные часы своими руками: Чистый код и аккуратный дизайн

Современный тренд в веб-дизайне теперь доступен даже новичкам! В основе — неоморфизм: мягкие тени, объёмные элементы и эстетика минимализма.

🔧 Технологии:
▫️ HTML — базовая разметка циферблата
▫️ CSS — неоморфные тени и плавные анимации
▫️ JavaScript — динамическое обновление времени

🎨 Фишки реализации:
▫️ Тени с эффектом «вдавленности» через комбинацию box-shadow
▫️ Плавное движение стрелок с transition: all 0.5s ease-in-out
▫️ Адаптивный дизайн для любых экранов

.clock {
box-shadow:
-10px -10px 15px rgba(255,255,255,0.5),
10px 10px 15px rgba(70,70,70,0.12);
}

(Видите эти тени? Их можно разглядывать как иллюстрацию из дизайнерского журнала! )

⚙️ Как кастомизировать:
▫️ Изменить цвет фона — background: #F0F0F0
▫️ Настроить размер теней в box-shadow
▫️ Добавить эффект свечения через filter: drop-shadow()

📂 Исходники на GitHub →

Готовый результат удивит вас элегантностью и лаконичностью! Экспериментируйте с оттенками, добавляйте градиенты — ваши часы заиграют новыми красками! 🌈🖌️

👉 Подписаться
🎮 PONG 2.0: КЛАССИКА С НОВЫМ ЛИЦОМ НА ВСЕХ ПЛАТФОРМАХ
Легендарная аркада возрождается! Минималистичный кроссплатформенный шедевр, который запустится где угодно: от смартфона до настольного ПК. Никаких ограничений — только чистая ностальгия в современной обёртке!

▫️ ФИЧИ
▫️ Локальный мультиплеер или битва с ИИ (доступно 3 уровня сложности).
▫️ Любое управление: клавиатура, тачскрин или геймпад — ты решаешь!
▫️ 4 стиля графики от ретро-монохрома до неоновой «Матрицы».
▫️ Готовые сборки для Android, iOS, Windows, Linux, macOS + веб-версия в один клик.

▫️ 🛠️ ТЕХНОЛОГИИ
▫️ Движок: Flutter + Flame для идеальных коллизий мяча и ракеток, а также плавной смены игровых состояний.
▫️ Настройки хранятся через Riverpod и SharedPreferences.
▫️ Звуки (включая культовый ping.mp3) — на мощностях Flame Audio.

Всё написали один раз — работает на любом устройстве. Даже на умном холодильнике!

▫️ 🚀 ГДЕ ПОПРОБОВАТЬ
▫️ Веб-версия — запуск за 2 секунды.
▫️ Исходники с инструкциями для самостоятельной сборки.

В планах: онлайн-мультиплеер через интернет и новые режимы! Геймеры оценят: в репозитории уже есть модульные тесты и настроенный CI/CD для максимальной стабильности. 🚨

👉 Подписаться
🚀 Glimmer: Интерактивный свет в 2D-графике на WebGL
Экспериментальный движок для создания динамических визуальных эффектов с поддержкой массовой симуляции частиц. Реализован на TypeScript с использованием современных веб-технологий.

▪️ Низкоуровневый API
Работает через бинарный CanvasRenderingContext2D с перехватом команд рендеринга. Поддерживает аппаратное ускорение через WebGL для максимальной производительности.

▪️ Эффекты и оптимизации
▪️ Система частиц с параметрами: цвет, прозрачность, размер
▪️ Эффекты свечения (bloom) через продвинутую постобработку
▪️ Автоматическая оптимизация рендеринга через генерацию меш-сеток

Техническая реализация примера:
const mesh = new ParticleMesh(renderer);
mesh.set(props => {
const angle = Math.PI * 2 * props.phase;
return {
position: [Math.cos(angle) * R, Math.sin(angle) * R],
color: hsvToRgb(props.phase, 1, 1)
};
});


▪️ Производительность
Демо-сцена с 15k частиц работает на 60 FPS благодаря:
▪️ Батчингу операций отрисовки
▪️ Минимизации пересоздания буферов
▪️ Использованию типизированных массивов

Пример реализации:
Исходный код GitHub

Проект поддерживает модификацию через конфиг-файлы и легко интегрируется в современные веб-приложения. В планах разработчиков — добавление мягких тел и многослойной композиции. 💻

Все оптимизации и фичи делают Glimmer идеальным инструментом для создания сложных визуализаций с минимальными затратами ресурсов! 🌟

👉 Подписаться
🎹 Drum Machine: профессиональный битмейкер для Linux на GTK4 с экспортом треков
Идеальный инструмент для создания ритмических паттернов, разработанный под экосистему GNOME. Входит в GNOME Circle — коллекцию элегантных open-source приложений.

Основные возможности:
🔸 Современный интерфейс GTK4 — строгое соответствие гайдлайнам GNOME и адаптивный дизайн.
🔸 Расширенная карусель паттернов — поддерживает любое количество шагов (не ограничивается 16!).
🔸 Экспорт в WAV, FLAC, OGG, MP3 — встроенная интеграция с ffmpeg для сохранения треков с метаданными.
🔸 Мобильная адаптация — удобная работа на устройствах с сенсорным экраном.
🔸 Мультиязычность — локализация доступна на 17+ языках.

🔧 Технологический стек:
🔸 Python + GTK4/Adwaita для бесшовной интеграции в GNOME.
🔸 Асинхронная обработка задач для плавной работы.
🔸 Сборка через Meson и распространение через Flatpak.

Проект вырос из простого секвенсора в полноценную DAW-систему с поддержкой сложных паттернов и профессионального экспорта. Архитектура приложения разделена на три слоя: сервисы, обработчики данных и пользовательский интерфейс.

📥 Где установить:
GitHub — исходный код и инструкции для разработчиков
Flathub — готовая сборка для всех дистрибутивов

Создавайте уникальные биты, экспериментируйте с ритмами и экспортируйте треки в любые форматы — Drum Machine сделает процесс максимально удобным! 🎶🔥

👉 Подписаться
🕷️ WEB-CRAWLER: Парсинг сайтов в JSON/CSV одним кликом

Инструмент с открытым исходным кодом для автоматического сбора структурированных данных с веб-ресурсов. 🚀 Поддерживает глубокий обход страниц и экспорт в форматы, готовые для ML-обработки.

▫️ Ключевые возможности:
🔹 Полный скап сайта с указанием глубины сканирования
🔹 Поддержка JavaScript-рендеринга (Selenium)
🔹 Экспорт в JSON и CSV с настраиваемыми полями
🔹 Фильтрация данных через регулярные выражения
🔹 Работа через прокси для обхода блокировок
🔹 Параллельные запросы для ускорения процесса

▫️ Пример использования:
from crawler import WebCrawler

crawler = WebCrawler(
base_url="https://example.com",
max_depth=2,
output_format="json"
)
crawler.run()


▫️ Где скачать?
Инструмент доступен для скачивания на GitHub. 📂 В репозитории есть подробная документация и примеры конфигурационных файлов для разных сценариев.

Важно: при работе с парсерами соблюдайте правила целевых сайтов и законодательство! ⚖️

👉 Подписаться
🔥 ГЛОБАЛЬНЫЙ АПГРЕЙД: 300+ ФИКСОВ ДЛЯ ИИ-ПАЙПЛАЙНОВ

Команда WFGY выпустила Global Fix Map — масштабное расширение предыдущей Problem Map 🚀. Этот инструмент помогает автоматически устранять типовые ошибки в цепочках Generative AI до генерации ответа, экономя время разработчиков!

🔹 Что нового:
▪️ 300+ страниц с фиксами для RAG, векторизации, чанкинга и мультиязычных систем
▪️ Универсальные шаблоны: симптом → минимальный фикс → чек-лист проверки
▪️ Полная интеграция с предыдущей Problem Map (16 сценариев сбоев)

🔹 Фишки под капотом:
▪️ Предотвращение ошибок через анализ семантических конфликтов, а не постобработку
▪️ Критерии успеха для каждого фикса:
  
ΔS(вопрос/контекст) ≤ 0.45
Покрытие ≥ 0.70
Сходимость λ для 3 парафраз


🔹 Стек технологий:
▪️ Поддержка моделей: OpenAI, Claude, LLaMA, vLLM
▪️ Интеграция с базами: FAISS, Chroma, Weaviate, Elastic
▪️ Фиксы для OCR, мультиагентных систем и JSON-форматирования

Как использовать 📝:
🔸 Зайдите в репозиторий WFGY
🔸 Определите симптом проблемы (или спросите у ИИ её номер)
🔸 Примените рекомендованный чек-лист фиксов

Метод не требует установки SDK — все правила работают через текстовые guardrail-инструкции 💡. Обновление делает разработку ИИ-пайплайнов стабильнее и предсказуемее!

👉 Подписаться
🔨 Создай свой токенизатор для ML-проектов: от теории к готовому решению

Разработан открытый инструмент Tok — простая альтернатива стандартным токенизаторам вроде OpenAI. 🚀 Его можно использовать как для обучения моделей с нуля, так и для интеграции в уже готовые ML-решения.

---

📍 Основные возможности
🔹 Полная кастомизация: обучайте алгоритм на любом датасете, начиная с технической документации и заканчивая литературой.
🔹 Предобученная модель: готова к работе благодаря тренировкам на огромных массивах текста.
🔹 Прозрачная логика: весь код открыт для изучения и модификации — никаких «чёрных ящиков»!

---

📍 Что внутри репозитория
🔹 Примеры обучения на пользовательских данных — бери и повторяй.
🔹 Готовые конфигурации для разных типов текста (код, статьи, диалоги).
🔹 Детальное описание реализации алгоритма Byte-Pair Encoding для тонкой настройки.

🚀 Исходный код и документация ждут здесь: GitHub

👉 Подписаться
🚀 Тренируй печать на реальном коде: Rust-утилита для разработчиков

Инструмент GitType превращает ваши git-репозитории в тренажёр слепой печати. Забудьте про Lorem Ipsum — здесь ваши собственные функции и классы становятся учебными заданиями.

▪️ Персонализированные задания — программа анализирует ваш код и создаёт упражнения на основе реальных строк
▪️ Живая статистика — отслеживайте скорость (WPM) и точность прямо во время работы
▪️ ASCII-арт награды — собирайте уникальные «трофеи» за прогресс
(Даже круче Steam-ачивок: представьте себе звание «Мастер цепочек методов»!)

Установка за 2 шага:
brew install unhappychoice/tap/gittype  
# или
cargo install gittype


Как начать:
gittype                        # стартуем в текущей папке  
gittype /путь/к/репо # выбираем свой проект
gittype --repo user/repo-name # автоматическое клонирование + запуск


Лучшие игроки набирают 10 000+ очков! 🔥

Проект с открытым исходным кодом доступен на GitHub. Масштабируйте навыки печати — даже ваш старенький pet-project может стать идеальным тренажёром!

👉 Подписаться
🚨 Мониторинг прокси в реальном времени: Python-скрипт для автоматических проверок

Инструмент с открытым исходным кодом для контроля работоспособности прокси-серверов 👨💻. Скрипт автоматически проверяет доступность ресурсов через заданные интервалы и сохраняет результаты для анализа.

▪️ Ключевые особенности:
Поддержка протоколов HTTP, HTTPS, SOCKS4/5
Настройка через YAML-файл (списки прокси, таймауты, интервалы проверок)
Детальное логирование с временными метками 🕒
Запуск из командной строки с кастомными параметрами

▪️ Пример конфигурации:
proxies:
- address: 192.168.1.1:8080
protocol: http
timeout: 5
check_interval: 60


▪️ Как работает:
1️⃣ Отправляет HEAD-запросы к целевым ресурсам
2️⃣ Фиксирует статус ответа и время отклика ⏱️
3️⃣ Формирует отчеты в форматах CSV/JSON 📊
4️⃣ Отправляет уведомления при недоступности прокси 🚩

Исходный код и инструкции 🔗

Все данные хранятся в структурированном виде, что упрощает анализ и поиск проблем 🧩.

👉 Подписаться
🔥 Красим сервисы Windows: Современный ответ NSSM

Знаете боль запуска Python-скриптов или Node.js-приложений как сервисов через sc.exe? Встречайте Servy — инструмент, который избавляет от головной боли с путями, конфигами и архаичными интерфейсами!

▫️ Универсальная поддержка: Python, Node.js, .NET Core, Bash и даже ваши самописные утилиты.
▫️ Автовосстановление после сбоев — сервис вернётся к жизни даже при критических ошибках.
▫️ Логирование с ротацией — контролируйте размер и количество логов через GUI или CLI.
▫️ Работает на Windows 7+, Server 2008+ — никаких зависимостей и скрытых библиотек.

(Если вы хоть раз теряли время на дебаг из-за кривых путей в System32 — Servy ваш новый друг 😎)

🔧 Фишки для продвинутых:
▫️ Гибкая настройка рабочей директории.
▫️ Встроенные health-чеки для мониторинга состояния.
▫️ Интеграция с CI/CD через CLI для автоматизации деплоя.
▫️ Визуальный дашборд для отслеживания всех сервисов в реальном времени.

🚀 GitHub: Скачать и изучить код
🎥 Demo: YouTube-инструкция

Больше не нужны костыли из NSSM, bat-файлов и магических заклинаний в PowerShell. Servy делает создание сервисов на Windows таким же простым, как `servy install my-app.py`

👉 Подписаться
🚀 Тренажёр для Go-собеседований с AI-ментором

Платформа для прокачки навыков программирования на Go с умным помощником 🤖 и моментальной проверкой решений. Идеально подойдёт для подготовки к техническим собеседованиям — от стажёра до senior-разработчика.

🔸 30+ задач — от основ языка до сложных алгоритмов и оптимизации
🔸 AI-ментор — даёт подсказки, исправляет ошибки и объясняет концепты
🔸 Автотесты — мгновенно проверяют корректность и эффективность кода
🔸 Рейтинговая система — сравнивайте свои результаты с другими студентами

Самые каверзные задания взяты из реальных интервью FAANG-компаний 😎 Система автоматически подстраивает сложность: новички работают с базовыми структурами данных, а опытные разработчики — с высоконагруженными системами.

Исходный код: github

Прокачивайте скилы, учитесь у AI и покоряйте мечту 💪🚀

👉 Подписаться
🎮🦀 Анонсирован эмулятор PlayStation 1 на Rust: что умеет starpsx?

На GitHub появился проект starpsx — эмулятор культовой консоли PlayStation 1, написанный на языке Rust. Автор решил бросить вызов классике, используя современные технологии!

🔹 Особенности
▫️ Реализация CPU (R3000A) и GPU через FFI-биндинги.
▫️ Поддержка BIOS, CD-привода и контроллера.
▫️ Графический интерфейс на базе SDL2 для удобного управления.

🔹 Текущий статус
▫️ Корректно запускает демо-ролики и простые игры (например, PSYQ PlayStation Demo).
▫️ Нет звуковой системы — но это временно!
▫️ Проект в альфа-стадии — пока рано говорить о повседневном использовании.

🚀 Разработка ведётся как исследование архитектуры PS1. По словам автора, код «полон жёстких хаков», но уже показывает жизнеспособность ключевых компонентов.

Исходный код доступен под лицензией GPL-3.0. Для запуска потребуются:
▫️ Rust
▫️ SDL2
▫️ PS1 BIOS

🛠️ Интересно, станет ли starpsx первым полноценным эмулятором PS1 на Rust? Судя по скорости развития — шансы высоки!

👉 Подписаться
🔥📚 ШПАРГАЛКА ПО ДСА: ВСЕ РЕСУРСЫ В ОДНОМ МЕСТЕ

GitHub-репозиторий DSA-cheatsheet объединяет ключевые материалы для изучения структур данных и алгоритмов. Коротко о главном:

🔸 Базовые концепции: объяснения Big O, рекурсии, жадных алгоритмов + примеры на Python/Java.
🔸 Структуры данных: массивы, деревья, графы, хеш-таблицы — от теории до реализации.
🔸 Алгоритмы: сортировки, бинарный поиск, BFS/DFS, алгоритм Дейкстры — код и визуализации.
🔸 Собеседования: частые вопросы LeetCode, паттерны (два указателя, sliding window), чит-листы.

В репозитории собраны ссылки на полезные ресурсы:
🔸 MIT и Coursera — видеолекции от ведущих университетов.
🔸 VisuAlgo и AlgoMonster — интерактивные тренажеры с анимацией алгоритмов.
🔸 GeeksforGeeks — статьи с примерами кода на разных языках.
🔸 Планы подготовки на 3/6 месяцев — прокачка навыков по расписанию.

Для продвинутого уровня добавлены разделы по динамическому программированию, Trie и конкурентным структурам данных. Всё для того, чтобы вы могли учиться системно и без лишнего стресса! 💪

👉 Подписаться
🧠 TheAlgorithms: Когда LeetCode кажется скучным

Крупнейшая коллекция алгоритмов на GitHub! Каждый алгоритм с пояснениями, примерами и тестами.

🔍 Что внутри:
• Сортировки (от Bubble до QuickSort)
• Графы и деревья (Dijkstra, BFS, DFS)
• Динамическое программирование (Knapsack, LCS)
• Криптография и хеширование (RSA, SHA-256)
• Математические алгоритмы (числа Фибоначчи, простые числа)

💻 Поддерживаемые языки:
Python | Java | C++ | JavaScript | Go | Rust | PHP | Swift | Kotlin | и еще 20+

🚀 Почему это круто:
🔍 Готовые решения для собеседований
📖 Понятные объяснения сложных концепций
⚡️ Оптимизированные реализации
🎯 Можно изучать по частям
🆓 Полностью open-source

Пример: Алгоритм Дейкстры на Python всего в 15 строчек!

github.com/TheAlgorithms
🚨 Устали от бесконечных ошибок?

Встречайте FuckItJS — возможно, самую честную библиотеку для обработки ошибок. Её гениальность до безобразия проста.

Как это работает?
1️⃣ Ловит любую ошибку в вашем JS.
2️⃣ Безжалостно находит проблемную строчку.
3️⃣ Стирает её с лица кодовой базы.

Слоган проекта: «Лучшая обработка ошибок — это отсутствие обработки ошибок».

🤣 Конечно, это гениальная пародия на все те кривые костыли, что мы когда-либо писали. Но в этой шутке есть доля правды: иногда код, которого нет, — самый стабильный код.

репозиторий: GitHub
🎵 Хочешь сохранять музыку из Spotify, YouTube и других платформ?

Знакомьтесь: SpotiFlyer — удобный открытый инструмент, который позволяет скачивать треки, плейлисты и даже целые альбомы локально на устройство.
Больше не нужно переживать о подписке или наличии интернета — ваша музыка всегда с вами!

Что умеет SpotiFlyer:
Скачивание с Spotify, YouTube, Gaana, SoundCloud и других платформ
Поддержка форматов MP3, FLAC, M4A и других
Загрузка обложек и метаданных (название, исполнитель)
Простой и понятный интерфейс
Никакой рекламы и полностью бесплатно

Как использовать?

1️⃣Скопируйте ссылку на трек или плейлист.

2️⃣Вставьте в SpotiFlyer.

3️⃣Выберите качество и формат.

4️⃣Наслаждайтесь музыкой офлайн!

Проект с открытым исходным кодом, поэтому он постоянно улучшается силами сообщества.

Ссылка на GitHub: SpotiFlyer

👉 Подписаться
🎴 Голографические карточки покемонов на чистом CSS

Что внутри:

CSS Transforms, Gradients, Blend-modes и Filters

Имитация голографических эффектов из карточек эры Sword and Shield

Интеграция с SvelteJS для интерактивности

Живые демо с анимациями и световыми переливами

Демо: poke-holo

Отличный пример того, как можно создавать визуально впечатляющие эффекты используя только современные возможности CSS без JavaScript-библиотек для анимаций!

GitHub: pokemon-cards
🔥2