A headless festival platform for culture, one station away

Client

Linear Festivals

Year

2026

Industry

Arts + Culture / Events

Services

Design, Engineering, CMS, Motion

Linear Festivals stages music, theatre, dance and arts festivals along the metro lines of Indian cities. They needed a website that could sell tickets, tell stories and run itself.

The brief was a single platform that worked two ways at once: a public-facing site for discovering events, artists and festivals, and an internal CMS the Linear team could run without ever calling a developer.

We designed and built it end to end, a fully custom, headless platform on Payload CMS and Next.js, with a drag-and-drop page builder, structured data for search engines, responsive image delivery and GSAP-driven motion on every page. One admin interface runs the whole thing.

Scroll-driven motion throughout: the festival page's smooth-scroll intro and the agenda-style event listing

The Challenge

A platform, not a brochure

Two products in one

Linear needed a polished public site and a capable internal tool. Events, festivals, artists and venues all relate to one another, and editing one shouldn't mean re-entering the others. An off-the-shelf site builder couldn't model those relationships.

Editors had to own the content

A small cultural team programmes dozens of events across cities. They needed to add a festival, drop in artists, embed a Spotify player and publish a whole landing page themselves, no tickets, no waiting on engineering.

The brand lives in motion

The Linear identity isn't static. The wordmark reveals letter by letter, festivals announce themselves along an animated metro line, event posters wipe into view. Delivering that on the web without janky scrolling was a real engineering problem.

Image-heavy, performance-sensitive

Festival sites are wall-to-wall photography. Served naively, that's a slow, expensive site. Every image needed to be the right size for its slot, on retina and mobile alike.

Discovery had to be effortless

Visitors arrive wanting to know what's on, in their city, this weekend. The data behind that (recurring dates, multiple venues, festival groupings) is messy, and it still had to filter instantly.

Goals

What success looked like

One admin to run everything

Events, festivals, artists, venues, cities, pages, posts and form submissions, all editable in a single Payload backend, with live preview straight to the real frontend.

Pages built like Lego

Marketing pages assembled from a library of content blocks. The team picks blocks, fills them in, reorders by dragging. No new pages need code.

Motion that never stutters

Signature animations (the hero carousel, the metro-line intro, poster wipes) running at 60fps, surviving client-side navigation, and degrading gracefully on mobile.

Fast images, found content

Responsive image delivery through a CDN, plus structured data so events and festivals surface correctly in search and on social.

Built with

Next.js
Payload CMS
PostgreSQL
React
GSAP
Tailwind CSS
Payload CMS /Neon Postgres /Bunny CDN /react-select /Lexical rich text /Vercel

01: Our Approach

A content model that mirrors how festivals actually work

We started with the data, not the design. Events are the core: each one carries multiple types, recurring occurrences with their own dates and times, artist relationships, venue assignments, festival grouping, booking links, media embeds and its own colour theme. Festivals group events. Artists, venues and cities tie back to both, and the system aggregates events and media to each artist automatically.

Modelling those relationships properly in Payload meant editors enter a fact once and it shows up everywhere it's relevant: an artist added to an event surfaces on the artist's own page without anyone touching it.

Linear Festivals, event page hero with full-bleed image, theme-tinted overlay, title and metro-line meta

An event page: poster, per-event colour theme, venue and metro-line stop, all driven by one record

02: Our Approach

A page builder the team actually uses

Every marketing page is composed from a library of drag-and-drop blocks: heroes, a scroll-driven festival intro, featured-festival grids, auto-populating event listings, image-and-text layouts, galleries, team cards, blog teasers, contact forms and filterable archives for events, festivals, artists and venues.

Image, Image Grid and Image & Text blocks share a reusable filter field group (grayscale, contrast, brightness and colour overlays) so editors can art-direct without leaving the admin. The Linear team builds and reorders entire pages themselves; we just maintain the blocks.

Linear Festivals, about page composed from rich-text and image-grid blocks

The about page, assembled entirely from page-builder blocks

Linear Festivals, event archive with city, type, festival and when filters

The Event Listing block: react-select filters that drive instant, URL-encoded navigation

03: Our Approach

Motion engineered to stay smooth

The brand demanded animation, so we built it with GSAP (ScrollTrigger, Draggable and InertiaPlugin) and tuned every effect to stay on the compositor. The hero is an infinite draggable carousel with inertia snapping and keyboard focus management; the centred card morphs from 4:5 to square as the backdrop crossfades behind the logo.

The festival intro pins a 400vh stage where image columns slide in, zoom and split to reveal the title, then a metro-line SVG draws itself with venue stops popping up along the path. Blur is set once, never tweened. Every component uses gsap.context with revert, so animations replay cleanly through client-side navigation instead of leaving stale inline styles behind.

Linear Festivals, festival hero with the Linear wordmark, brandline and an image grid

The festival hero: Linear logo with brandline over a scroll-reactive image grid

Linear Festivals, co-presented festival showing the partner logo with an 'x' separator

Display options handle co-presented festivals: partner logo with an 'x' separator

The wordmark intro: a per-letter clip-path reveal with elastic line-group motion, built in GSAP and tuned to stay on the compositor

What We Built

Drag-and-drop page builder

A library of 19 content blocks editors compose into any page: heroes, festival grids, listings, galleries, forms and filterable archives. New pages need no code.

Relational content model

Events, festivals, artists, venues and cities all reference each other in Payload. Enter a fact once; it appears everywhere it belongs, automatically.

GSAP motion system

Draggable hero carousel, scroll-driven metro-line intro, poster wipes and a footer wordmark that animates into view, all compositor-friendly and remount-safe.

Instant event discovery

Filterable archives for events, festivals, artists and venues with react-select dropdowns. Filters write straight to the URL, no submit button, fully shareable.

Responsive images via Bunny CDN

Every image emits 1x and 2x variants with size presets and sizes hints, served through Bunny CDN with on-the-fly resizing. Lazy-loaded and async-decoded throughout.

SEO & structured data

Auto-generated Open Graph and Twitter tags, plus schema.org Event and Festival JSON-LD with performers, venues, offers and date ranges. Plugin-managed redirects handle slug changes.

Linear Festivals, event page with an embedded Spotify player under a 'Listen & watch' heading
Linear Festivals, artist grid with type filter

Inline media embeds aggregated onto event and artist pages, and the filterable artist grid

Results

Linear Festivals now runs on a platform that matches its ambition. The team programmes festivals, events and artists from a single admin and publishes complete pages themselves. Visitors browse what's on by city, type and date, watch and listen to artists without leaving the page, and book through a ticker that's never more than a tap away. And the whole thing moves like the brand it represents.

A site the team runs without us

Events, festivals, artists, pages and posts are all edited in one Payload admin with live preview. New landing pages are built from blocks, no engineering in the loop.

Signature motion, no jank

The draggable hero, 400vh metro-line festival intro and poster wipes run smoothly and replay cleanly through navigation, because animation was treated as an engineering discipline, not a finishing touch.

Discovery that takes seconds

Filterable, URL-encoded archives let anyone find what's on in their city this weekend and share the exact view. A ticket ticker keeps the next event one tap from booking.

Fast, findable, future-proof

Responsive Bunny CDN delivery keeps an image-heavy site quick, while Event and Festival structured data makes every page legible to search engines and social platforms.

Lessons

01

Model the domain before you design the pages. Getting the relationships between events, festivals, artists and venues right in Payload first meant the whole frontend (and every page builder block) fell out of the data cleanly.

02

Treat animation as engineering. Never tween blur on big elements, set it once; batch GSAP's layout reads and writes; and revert every context on unmount. Those few rules are the difference between a brand that moves and a site that stutters.

03

Build for the editor, not just the visitor. A page builder is only a win if the team reaches for it instead of asking for a developer. Shared, well-labelled blocks and live preview are what make that happen.

04

Performance is a content-strategy decision. On a photography-led site, responsive image delivery isn't an optimisation you bolt on at the end; it's the architecture you start from.

Need a platform your team can actually run?

We design and build headless sites that are a joy to use front and back: fast, animated, and editable without a developer. Let's talk about yours.