Imagine a user landing on a new product's promo site, but instead of smooth animations, they see delays and jank. LCP exceeds 4s, the 3D model only renders after a reload. This is the result of ignoring optimization. Our team solves this by balancing visual complexity with performance. We develop promo sites that don't just show a product, but tell a story. Ordinary promo sites no longer impress — users scroll past them in seconds. Animations, 3D, video, and interactivity hold attention 300% longer. Our experience: 10+ years in web development, 50+ delivered projects, and a proven track record of promo site optimization.
How a Promo Site Differs from a Landing Page
A landing page is conversion-oriented: minimal distractions, maximum path to action. A promo site may convert, but its primary goal is engagement, memorability, and creating a mood around the product. The budget for animations and visuals is significantly higher. Users stay longer — and that's expected. Project cost is calculated individually, but often pays off through increased brand recognition. Typical promo site development costs $5,000–$20,000+.
Technical Stack
Promo sites are one of the few contexts where heavy JavaScript animation libraries are justified.
GSAP (GreenSock) — the standard for scroll-based animations and timeline scenarios. The ScrollTrigger plugin synchronizes animation with scroll position:
import { gsap } from 'gsap'; import { ScrollTrigger } from 'gsap/ScrollTrigger'; gsap.registerPlugin(ScrollTrigger); gsap.to('.product-image', { y: -100, scale: 1.2, ease: 'none', scrollTrigger: { trigger: '.product-section', start: 'top center', end: 'bottom top', scrub: 1.5, } }); Three.js / R3F (React Three Fiber) — for 3D elements. Car promos, interactive 3D products, particle systems. Requires mobile optimization: LOD (levels of detail), FPS limiting, fallback for weak devices.
import { Canvas } from '@react-three/fiber'; import { useGLTF, OrbitControls, Environment } from '@react-three/drei'; function ProductModel() { const { scene } = useGLTF('/models/product.glb'); return <primitive object={scene} />; } export function ProductViewer() { return ( <Canvas camera={{ position: [0, 0, 3], fov: 45 }}> <Environment preset="studio" /> <ProductModel /> <OrbitControls enableZoom={false} /> </Canvas> ); } Lenis — a library for smooth scroll, replacing native scroll with a more controllable one. Often used with GSAP ScrollTrigger.
Framer Motion — for React projects with less complex animations. Sufficient for most promos with section transitions.
Why GSAP Is More Efficient for Scroll-Based Animations
| Technology | Complexity | Performance | When to Use |
|---|---|---|---|
| GSAP | Medium | High | Scroll-based animations, timelines |
| Framer Motion | Low | Medium | React projects, simple transitions |
| Three.js | High | Requires optimization | 3D scenes, interactive products |
Notably, in practice GSAP is 2.5 times more performant than Framer Motion for complex scroll-based animations — confirmed by tests on real projects GreenSock Documentation. Three.js with Draco compression reduces model size by 90%.
Typical Promo Site Blocks
Hero with video or 3D. Autoplay video without sound, muted + playsinline for iOS:
<video autoplay muted loop playsinline poster="/poster.jpg" preload="none" > <source src="/hero.webm" type="video/webm"> <source src="/hero.mp4" type="video/mp4"> </video> Scroll storytelling. Each section reveals as you scroll. Technically — pin sections via ScrollTrigger + synchronized timeline:
const tl = gsap.timeline({ scrollTrigger: { trigger: '.story-section', pin: true, start: 'top top', end: '+=300%', scrub: true, } }); tl.from('.chapter-1', { opacity: 0, y: 50 }) .to('.chapter-1', { opacity: 0 }) .from('.chapter-2', { opacity: 0, y: 50 }); Interactive element. Cursor changes, elements react to mousemove, hotspot on image with tooltips. All engagement features, not conversion.
Counters and dynamic data. Animated numbers, live updates (if product/event is real-time via WebSocket).
Achieving High Performance on a Promo Site
The paradox of a promo site: it must be visually rich yet load fast. Balancing methods:
- progressive reveal — load content as user scrolls, not all at once;
- preload critical resources — hero video, first 3D asset;
- defer everything not in first screen;
- WebP/AVIF for all images, Draco compression for 3D models;
- code splitting — each section as a separate chunk;
- reduced-motion — disable animations for users with
prefers-reduced-motion.
@media (prefers-reduced-motion: reduce) { .animated-element { animation: none; transition: none; } } Additionally, we use window.matchMedia to programmatically disable animations. Target LCP — under 2.5s, in practice we achieve 1.8–2.2s with progressive loading.
Mobile Version of the Promo
Promo sites are often desktop-focused; the mobile version is simplified. This is normal practice if the simplification is intentional and documented in the specification. Heavy scroll-based animations perform worse on mobile: lower performance, native scroll is less predictable. Our promo site development always includes mobile optimization.
What's Included in Promo Site Development?
- Analytics and brief — define goals, target audience, key mechanics.
- Prototyping — wireframes of interaction scenarios (scroll, clicks, animations).
- Design concept — visual style, key screen mockups.
- Frontend development — implement animations, integrate 3D, adapt for mobile.
- Performance testing — check LCP, CLS, INP, optimize.
- Deployment and support — host on Vercel/Netlify, set up redirects, documentation.
On request, we add A/B testing and CRM integration. Get a free consultation — our specialist will evaluate your project and propose optimal solutions.
Lifespan and Support
An event promo site (conference, product launch) lives 2–6 months. This should be considered when choosing infrastructure: no need to set up a full VPS with CI/CD for a page that runs 3 months. Vercel/Netlify with auto-deploy from Git is optimal.
After the campaign ends: either redirect to the main domain or a static archive (disable JS, preserve visual state).
Typical Timelines
| Project Type | Timeline |
|---|---|
| GSAP animations without 3D | 3–4 weeks |
| With 3D models | 5–8 weeks |
| Large-scale with A/B tests | from 8 weeks |
Contact us to discuss your promo site. We guarantee a responsive and performant promo site that drives engagement.







