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.







