Браузер не поддерживает impress.js — слайды показаны списком.

Достань идею
с полки

Пет-проекты в эпоху нейросетей:
из задумки в работающий продукт

Привет, я Владислав

Программирую примерно с 11 лет. Это моё хобби.

  1. Раньшев голову постоянно приходили сумасшедшие идеи проектов, я что-то ковырял, но было лень и меня надолго не хватало
  2. Апрельвстреча разработчиков: Рома Хомутов рассказывает, какими крутыми стали нейронки…
  3. и тут Остапа понесло!

Предыстория

Как я здесь оказался

На очередном походе по барам я предложил: давайте рассказывать про свои поделки и слушать, кто что интересное делает у нас в компании.

Тем более с нейросетями сейчас нас ограничивает только полёт фантазии.

За что и поплатился )

Начало

SyncScore

  1. Волейболнадо вести счёт, а отдельного судьи нет
  2. Существующие приложения естьно убогие
  3. Своё, как надодля телефона и часов
~200 активных пользователей в месяц
в Google Play
play.google.com · SyncScore

SyncScore изнутри

Архитектура

локальная сеть или точка доступа на телефоне — интернет не нужен Bluetooth Data Layer API Wi-Fi WebSocket HTTP: PWA по QR WebSocket Wear OS часы · клиент Android сервер или клиент веб-сервер раздаёт PWA PWA браузер, iPhone · клиент Android ещё телефон · клиент

Счёт и настройки меняются с любого устройства — синхронизируются на всех. Работает оффлайн.

Экран «Network»: режим сервера, каналы WearOS (DataLayer) и Wi-Fi, QR-код для подключения клиента

История следующего проекта

  1. 2015Electron и музыка во вкладке браузера задолбали. Хочу хоткеи и трей. Придумал название и иконку
  2. ИдеяQt + WebView: все сервисы в одном окне, управление через внедрённый JavaScript. С Юрой Самойленко пытались сделать прототип
  3. MellowPlayerнашёлся, делал ровно это и так же. В 2020 загнулся
  4. Июль 2026по приколу за полчаса навайбкодил консольную Яндекс Музыку на Python, вспомнил CloudMus — и понеслось
наброски, 2015

CloudMus

Enjoy listening to your clouds

Десктопный плеер для Яндекс Музыки, YouTube Music и локальной папки. Единая очередь, история, загрузка треков, медиаклавиши, светлая и тёмная темы. Windows и Linux, лицензия MIT.

450пользователей за неделю со старта
100активных в день
85★на GitHub
cloudmus.app Главное окно CloudMus Отзыв: «Замечательная и новость и софтина! Сижу давно отказавшись от подписки, так из радио только доступ к музе, а тут все что насобирал поёт. Респектуха!!! Рад как ребёнок))) Спасибо!» — Raqx

Что внутри

Источники

  • Яндекс Музыка
  • YouTube Music
  • Spotify
  • локальная папка

в планах:

  • SoundCloud
  • VK Музыка
  • Deezer
  • Bandcamp
  • Apple Music
  • TuneIn

Фичи

  • общая очередь
  • история
  • медиаклавиши
  • глобальные хоткеи
  • трей
  • тихий режим
  • прокси на сервис
  • предзагрузка
  • продолжение после перезапуска
  • сохранение треков и плейлистов
  • кэширование
  • темы light/dark

Техника

  • C++20/Qt 6
  • Rust
  • Python
  • libmpv
  • MPRIS
  • SMTC
  • модульная архитектура
  • Windows
  • Linux
  • macOS
  • дизайн-система на токенах
  • NSIS-установщик
  • AppImage
  • Sentry
  • Google Analytics

CloudMus изнутри

Фронтенды и бэкенды

фронтенды бэкенды JSON-RPC 2.0 stdin / stdout подпроцессы Qt-фронтенд C++20 · Qt 6 · libmpv TUI Python · терминал · mpv Яндекс Музыка Python YouTube Music Python Spotify Rust Локальная папка Python

Каждый бэкенд — отдельный процесс на любом языке; единственный общий контракт — протокол. Бэкенд объявляет свои возможности, а звук играют сами фронтенды через mpv.

Отладка с Claude

Баги, которые я бы искал неделями

Планы на будущее

Эпизод ∞

Бэклог наносит ответный удар

  • Сборка под macOS
  • Spotify
  • Product Hunt
  • Донаты на Boosty, платные фичи
  • Android на QML, авто-версия
  • Удобная авторизация
  • Другие языки
  • Управление через браузер
  • Встроенный Xray от блокировок
  • Мини-плеер как iTunes на macOS
  • Flathub · Snap Store · Microsoft Store
  • Поиск артистов и музыки
  • Показ видео, если оно есть
  • Честный офлайн
  • Эквалайзер
  • Создание и правка плейлистов
  • Синхронизация через Google, Яндекс, Dropbox
  • Детектор AI-музыки
  • Перекодировка при сохранении
  • Визуализации MilkDrop
  • Анимация спектра и режим экономии батареи
  • Бэкенды не на Python: JS/WASM-плагины в песочнице
  • Apple Music · VK Музыка · SoundCloud
  • Звук · TuneIn
  • Jellyfin · Funkwhale · Navidrome · Ampache

Но это ещё не всё

$ dcw — менеджер тестовых окружений на docker-compose GitHub Хабр

$ muenvsubst — envsubst с шаблонизатором Inja, крошечный статический бинарник GitHub Хабр

Команда из одного человека

— и всё это ты.

Какая идея
пылится у тебя?

Достань её с полки!

QR-код ссылки на презентацию
navrocky.github.io/
petcoding-presentation