Wish it

Бесплатный сервис списков желаний. Желание добавляется по ссылке с любого сайта, список делится ссылкой или QR-кодом, а друзья бронируют подарок, чтобы не дарить одно и то же.

Открыть проект

ВЕБ-СЕРВИС · СПИСКИ ЖЕЛАНИЙ · TELEGRAM MINI APP + БОТ

Роль
Продукт, дизайн, разработка
Стек
Nuxt 3 · Nitro · MySQL
Срок
6 недель до продакшена
Год
2025
Wish it
Разбор
01Задача02Решение03Как шла работа04На чём сделано

Задача

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

Решение

Желание добавляется ссылкой: сервер сам вытягивает название, описание и картинку. Яндекс Маркет, Ozon, Wildberries и Золотое Яблоко не отдают пригодных тегов Open Graph, поэтому для каждого написан свой сценарий в headless-браузере.

Желания раскладываются по публичным и приватным спискам, список делится ссылкой или QR-кодом, друг бронирует подарок на 30 дней. Подборки «идеи подарков» копируются в один клик, бот @WishItRuBot принимает ссылку и создаёт черновик желания; интерфейс на двух языках, тёмная тема, блог, PWA — ставится на домашний экран.

Как шла работа

Сделал всё сам — продукт, интерфейс, фронтенд, бэкенд, база, DevOps: 251 из 252 коммитов мои. Репозиторий завёл в декабре 2024, основная разработка заняла 6 недель, с 7 мая по 19 июня 2025 — около 250 коммитов. На проде стоит именно эта версия.

На чём сделано

Nuxt 3 и Vue 3 с API на Nitro в одном SSR-приложении: 52 маршрута API и 15 таблиц в MySQL 8. Интерфейс на Nuxt UI 3 и Tailwind 4, состояние в Pinia, i18n и PWA. Доступ по JWT с ролями; вход по e-mail или телефону с подтверждением письмом (nodemailer) или SMS (SMS Aero), через Google OAuth и Telegram Login, внутри Telegram Mini App — автоматически; бот на node-telegram-bot-api. Ссылки разбирает Playwright с headless Chromium, ошибки ловит Sentry, тесты на Vitest и Playwright; Docker и GitLab CI выкатывают сборку на VPS за nginx.

Результат

Что получилось

4
маркетплейса со своим разбором ссылокЯндекс Маркет, Ozon, Wildberries, Золотое Яблоко
3
способа входа помимо пароляGoogle, Telegram Login, Telegram Mini App
30 дней
держится бронь подаркачтобы друзья не дарили одно и то же
Консультация

30 минут, чтобы решить, работаем ли вместе