---
slug: keine-panik
client: 'Keine Panik Festival'
category: ['Product', 'Design', 'Development']
date: '2026'
website: https://keine-panik-festival.de
services: ['Product', 'Design', 'Development', 'Ticketing', 'Hosting']
technologies:
    - Laravel
    - Vue.js
    - Inertia.js
    - TypeScript
    - Tailwind CSS
    - shadcn-vue
    - MySQL
    - Stripe
    - Mapbox
title: 'Festival Website, Merch Shop and Ticketing in One Platform'
story_preview: 'Website, merch shop and ticketing for the Keine Panik Festival in Nordhessen: line-up, camping and merch in one checkout, a backoffice for the organiser and an offline-first scanner for the gate. Built by Michel and Daniel in four weeks in summer 2026, as a platform any festival can license.'
fineprint: 'Built by Michel and Daniel in four weeks in summer 2026, from concept to go-live, replacing a WordPress site and an external ticket provider. The platform belongs to unlimited.studio and is licensed per festival. Backoffice and checkout screenshots show local demo data.'
---

> **Case study source:** https://unlimited.studio/en/case-study/keine-panik

# One Checkout for Tickets, Camping and Merch

The Keine Panik Festival is a punk rock festival in Niedermeiser near Kassel: four days, around 1,500 people, run by a small crew. Until 2026 the website lived on WordPress and the tickets with an external provider, each with its own fees and its own data. We replaced both with one platform: website, merch shop, ticketing, backoffice and gate scanner in a single Laravel app. Michel and Daniel built it in four weeks in summer 2026: Daniel set up the initial design and the architecture, Michel designed the ticketing and the line-up and built the platform with him.

## One Platform, Any Festival

Keine Panik does not rent a ticket shop, it licenses a platform: website, shop, ticketing, backoffice and gate scanner as one product owned by unlimited.studio. Everything that makes it Keine Panik lives in the backoffice: the festival year, the content, the line-up, ticket types, price tiers and quotas, camping, merch, the site plan and the sponsors. Nothing festival-specific is hard-coded. Another festival gets the same platform with its own look and its own data, sells its tickets without a ticket provider in between and keeps its customers' data for itself.

## Fuse and Ember

The logo is a bomb with a burning fuse, and the site carries that image: always dark, soot and ember, with the glow as the only accent. The line-up section reproduces the organiser's poster one to one. Headliner and co-headliner run from edge to edge, and the type size is computed server-side from measured glyph widths, so the poster is the same picture at 350 and at 1,200 pixels and never jumps on load. Until an act is announced, its slot stays blurred with the date of the next announcement. The about page is a fuse timeline, year by year, the current one pulsing.

The hero burns: a WebGL fire with heat shimmer, embers drifting through the page, and at its lower edge a seam that works like the fuse in the logo. A spark runs along it and detonates in the middle, and the explosion shape of the logo opens on a photo. In the footer the wordmark burns down particle by particle from left to right and reassembles, drawn on a 2D canvas instead of a 3D library.

The site plan answers two questions in two views. The grounds show every stage, bar, toilet and gate as a point on a Mapbox map, filtered by type, and a tap on the list flies the map there. The directions show the region with the routes from towns like Kassel, Paderborn and Göttingen as glowing lines with their driving time.

## Tickets, Camping, Merch, One Order

A weekend pass, camping as a second step, merch as an upsell in the same order. The cart is a bar at the bottom of the screen, where the thumb is, not an icon in the header. It grows with every ticket, opens into a list of every line with its own stepper and leads to a checkout that reserves the tickets while the order is filled in. Price tiers overflow automatically: when a tier is sold out, the rest of the quantity moves into the next one, each tier its own line. There are no customer accounts. Every order lives behind a token URL, with tickets, invoice, calendar file and the QR codes directly in the confirmation mail, because the mail has to be enough at the gate. Stripe takes the payment with card, PayPal, Apple Pay, Google Pay and Klarna. Discount codes, free tickets for guest lists and affiliate links with attribution are in the backoffice too.

## The Backoffice

Content, line-up, sponsors, site plan, gallery, products, orders, free tickets, campaigns and the mailing list, all in one dark backoffice with command palette and keyboard navigation, grown out of our own operations platform. The site plan is drawn on a Mapbox map, the sponsor wall is sorted by drag and drop, and the news from the old WordPress were imported.

## The Gate

The scanner is a PWA for the door crew: it loads all valid codes onto the device, checks tickets offline and syncs when the network is back. Entries, add-ons and rejections count per gate.

## Launch

The cutover from the old site to the new server ran in one evening: DNS moved to Cloudflare, the existing orders were imported from the previous ticket provider so that their tickets scan at the gate, the marketing pages render server-side, Lighthouse scores sit at 99 to 100 on desktop. End-to-end tests cover the complete purchase path against Stripe's test mode. Keine Panik.
