Overview
VISION+ partnered with Euro Stream on a new joint subscription package. I built the promotional campaign page for it from scratch — a side track alongside my main work on the VISION+ web platform.
Stack: Nuxt.js, Vue 3, Pinia, Tailwind CSS, DaisyUI.
Campaign Constraints
A campaign page is a different problem from a product app. It has one job, a short life, and a date it cannot miss.
The date drives every technical decision. Marketing schedules don't move because a component library was the wrong pick, so the stack had to favor speed of assembly over long-term architectural elegance.
Why DaisyUI
I built on DaisyUI over Tailwind CSS for exactly that reason. A landing page is mostly standard furniture — hero, feature grid, plan comparison, CTA blocks — and DaisyUI supplies those as component classes rather than requiring them to be assembled utility by utility.
Where the design diverged from the defaults, Tailwind utilities took over. Fast where it could be fast, precise where it had to be.
Two Brands, One Page
The package was a collaboration, so the page had to carry both VISION+ and Euro Stream without either reading as a subordinate. That meant deliberate visual hierarchy in the package presentation — what each partner brings, presented as one combined offer rather than two stacked ones.
Conversion Path
The page is structured as a single path, not a brochure:
- Package proposition — what the collaboration gives you
- What's included, from each side
- Plan comparison
- Subscribe
Pinia holds the package and plan selection so a visitor's choice carries through the flow instead of resetting when they scroll or navigate between sections. Small detail, but a plan picker that forgets your selection at checkout is the fastest way to lose a conversion.
Mobile First
Campaign traffic arrives overwhelmingly from mobile — social, messaging, ads. The layout was built responsive from the start across mobile, tablet, and desktop, with mobile treated as the primary case rather than the narrow-viewport fallback.
Outcome
Shipped ahead of the campaign window. The page has since been retired — the link expired when the promotion ended.
Stack
Nuxt.js · Vue 3 · Pinia · Tailwind CSS · DaisyUI
