Wish it

A free wish-list service. A wish is added from a link on any site, the list is shared by link or QR code, and friends reserve a gift so nobody gives the same thing twice.

Open the project

WEB SERVICE · WISHLISTS · TELEGRAM MINI APP + BOT

Role
Product, design, development
Stack
Nuxt 3 · Nitro · MySQL
Timeline
6 weeks to production
Year
2025
Wish it
Breakdown
01The task02The solution03How it went04Built with

The task

A wish list usually lives in notes and chats: links get lost, and two friends turn up with the same present. The service had to take a wish from a single link on any site and show friends that a gift is already reserved.

The solution

A wish is added by link: the server pulls the title, description and image itself. Yandex Market, Ozon, Wildberries and Gold Apple return no usable Open Graph tags, so each gets its own script in a headless browser.

Wishes go into public and private lists, a list is shared by link or QR code, and a friend reserves a gift for 30 days. "Gift ideas" collections copy in one click, the @WishItRuBot bot takes a link and creates a draft wish; the interface comes in two languages, with a dark theme, a blog and a PWA that installs to the home screen.

How it went

I built everything myself — product, interface, frontend, backend, database, DevOps: 251 of 252 commits are mine. The repository dates from December 2024; the main development took 6 weeks, from 7 May to 19 June 2025 — around 250 commits. This is the version running in production.

Built with

Nuxt 3 and Vue 3 with a Nitro API in a single SSR application: 52 API routes and 15 tables in MySQL 8. The interface runs on Nuxt UI 3 and Tailwind 4, state in Pinia, i18n and PWA. Access by JWT with roles; sign-in by email or phone with confirmation by email (nodemailer) or SMS (SMS Aero), through Google OAuth and Telegram Login, and automatically inside the Telegram Mini App; the bot runs on node-telegram-bot-api. Links are parsed by Playwright with headless Chromium, errors go to Sentry, tests run on Vitest and Playwright; Docker and GitLab CI roll the build out to a VPS behind nginx.

Outcome

What came out of it

4
marketplaces with custom link parsingYandex Market, Ozon, Wildberries, Gold Apple
3
ways to sign in without a passwordGoogle, Telegram Login, Telegram Mini App
30 days
a gift stays reservedso friends do not give the same thing twice
Consultation

Thirty minutes to decide whether we work together