← All projects
PROJECT OVERVIEWWEB APPLICATION

Celebration — a pharmacy chain promo: Tilda inside a Vue app

A super draw for the opening of an anniversary pharmacy of the chain: customers register receipts, get a discount promo code and take part in weekly draws and the main one, a travel certificate. The chain's second campaign, «Jubilee», was later built on this project.

Vue 3TypeScriptFrontendTilda
Role
Frontend developer
Timeline
2026, September — October
Первый экран промо: супер-розыгрыш и кнопка загрузки чека

The challenge

Turn a static export of the Tilda page into an app: embed it, connect its buttons to the dialogs of the app, build receipt registration, winners and the account from the design and connect the campaign API — working as a widget on the chain's site too.

What the solution includes

  • A base from scratch: Vue 3, Vite, TypeScript and TanStack Query; one codebase builds both a website and a widget in Shadow DOM.
  • Embedding Tilda: first as a web component with Shadow DOM, then by inserting the HTML directly — Tilda scripts need the real document; clicks on its buttons reach the app by postMessage.
  • A winners table with a prize filter and a search by phone, mounted right into the Tilda page.
  • Sign-in through the customer's account of the chain (SSO) passing UTM tags, Metrika goals in receipt registration and the forms.
  • The account: the receipt history with the draws each receipt is in, prizes with promo codes, notifications from the backend one at a time and skeletons while loading.
  • Receipt registration: a QR code through the camera, a photo or the data typed by hand.
  • The API contract in OpenAPI and tests of the API layer without a browser or a backend.

A commercial team project: I built the whole frontend; the promo page is made in Tilda. Screenshots are from a local build with test data; the name and logo of the chain are hidden.

Next project Race — a quiz for a running event promo with a runner cardWEB APPLICATION