All projects

Case study06

Poco Brass Community Website

Modern website for the Thierseifen brass choir with events, instrument guides, news and a media archive

Culture & CommunityPoco Brass
Poco Brass Community Website, View 1
View 01

Partner

Poco Brass

Industry

Culture & Community

Core technologies

Next.js · TypeScript · Tailwind CSS

At a glance

DuoByte rebuilt the website for Poco Brass, the Thierseifen brass choir, covering events, instruments, youth work, the board, news and a media archive of Easter and Christmas recordings. It also includes a protected contact form, permanent redirects from the old site and an isolated Docker deployment. The site is live.

Our role: DuoByte planned, designed and built the new website and set up its deployment on the server.

Project work

From requirements to a resilient solution.

How the project came together: from the context and requirements through implementation to where it stands today.

01

Context

Brass music from Thierseifen since 1882

Poco Brass is the brass choir (Posaunenchor) of Thierseifen near Waldbröl, Germany. Since 1882 the choir has played at church services, on its Easter tour through the surrounding villages, at confirmations and in small serenades for elderly residents, and it rehearses every Friday at its clubhouse in Thierseifen.

The website serves several audiences at once: parishioners who want to know when the choir is playing, people who want to learn an instrument or return to one, young people, and organizers with a performance request. The choir is also looking for a new musical director and needs a dedicated place for that search.

02

Challenge

Replacing the old club site without losing any links

The previous website used its own URLs such as “/Ueber-uns” or “/Oberbergische-Posaunentage”, which lived on in search results and shared links. None of them could be allowed to break during the switch.

In terms of content, the new site had two jobs: show the choir's tradition through photos and recordings, and make it easy for people without prior experience to get started. Events had to be easy to maintain, and past performances must never show up as upcoming ones.

On the operations side, the contact form processes personal data and needs protection against automated submissions. The application also had to run isolated from other services on the server.

03

Solution

Events, instruments and youth work at a glance

The homepage leads straight to upcoming events and introduces the choir, its values and its youth group. Dedicated pages explain the choir's musical compass, the five instruments from trumpet to tuba with their voices, the youth program and the board with personal profiles.

The events page splits upcoming and past performances automatically based on the current date in German time and highlights the next one; it is regenerated daily. News items have their own detail pages, and a page for the musical director search describes the role and how the director works with the board and the choir.

  • Media archive with Easter recordings, a Christmas recording and a concert video
  • Contact form with topic selection: joining and rehearsals, performance requests, musical direction or general questions
  • Breadcrumbs, a custom 404 page and a link to the Instagram profile
  • Layout with dedicated rules down to screen widths below 360 pixels
04

Implementation

Next.js 16, central content and an isolated deployment

The website is built with Next.js 16 and the App Router, React 19, TypeScript and Tailwind CSS 4. Navigation, events, board profiles, instruments and news live in a single central file that every page and component reads from. Content is maintained in one place without touching layout code, and a site of this size does not need a separate CMS.

Archive videos load only when someone presses play and show a poster image until then. The contact form runs as a Server Action: it validates every field on the server, discards submissions with a filled honeypot field, limits attempts per sender and time window and sends the message through Nodemailer via SMTP over TLS. The sender is set as the reply-to address, so the choir can answer straight from its inbox.

Canonical URLs, Open Graph and Twitter previews, JSON-LD for the organization and website, a sitemap, robots.txt and a web manifest support discoverability. A proxy permanently redirects 16 old URLs as well as alternate hostnames to the canonical domain and the new paths with a 308.

Every push to the production branch runs linting and type checks in GitHub Actions and produces an immutable Docker image. The server runs exactly that image as its own Compose project, with a read-only file system, all Linux capabilities dropped, memory and CPU limits and a port that is reachable only locally behind Caddy. The deploy key can call nothing but the deploy script, and if the new container does not report healthy or reports the wrong version, the script restores the previous state automatically.

05

Outcome

A club website that is easy to keep up to date

The new website is live. Visitors see right away when and where Poco Brass plays next, prospective members find everything they need to join, and inquiries arrive in the choir's inbox sorted by topic.

Events, news and profiles can be added in a single file, and every change goes online checked and traceable. Old links and search results still lead to the matching new pages.

System architecture

A technical foundation with a clear structure.

Technologies were combined to suit the task, operating model and long-term maintainability.

01

Frontend

Next.js 16React 19TypeScriptTailwind CSS 4App Router
02

Backend

Next.js Server ActionsNodemailerSMTP
03

Integrations

WEB.DE SMTPInstagram
04

Infrastructure

DockerCaddyGitHub ActionsStandalone Next.js
05

SEO

JSON-LDOpen GraphSitemapRobots.txtPermanent Redirects

Keep exploring

Next case study

Anita AI Legal Research Platform

Anita AI Legal Research Platform

Your project

Turn a complex challenge into a clear next step.

Tell us what your system needs to do. We bring structure to requirements, architecture and delivery.

Discuss your project