Marketing site and backend are live

festivalpilot.app is online on its own Hetzner cloud infrastructure in Nuremberg: German hosting, no tracking by default, auto deploys and a solid SEO foundation.

Today we switched on the public presence for FestivalPilot. festivalpilot.app is live, and the backend at api.festivalpilot.app is live as well. It is still early, but the foundation is no longer theoretical. It exists, it deploys, it answers requests, and it is built in a way that fits the product.

That last part matters. FestivalPilot is not meant to become another overbuilt festival app with accounts, marketing pixels and cloud services stacked on top of each other. The website and backend follow the same idea as the app itself: small, reliable, privacy-aware and understandable.

What is live

The first production setup already covers the important basics:

  • Marketing pages in German and English with app-first positioning, hreflang support, Open Graph metadata, FAQPage schema, sitemap, llms.txt and an AI-crawler-aware robots.txt
  • Go API on ARM64 with endpoints for /v1/feedback, /v1/waitlist and /v1/health, plus a password-protected admin inbox under /admin/feedback
  • PostgreSQL 16 on the same server, only reachable locally
  • Caddy 2 as reverse proxy with automatic Let’s Encrypt TLS for the apex domain, www redirects, API and stats
  • GitHub Actions deployment for both repositories, festivalpilot-www and festivalpilot-api: every push to main triggers a build, SSH deploy and smoke test
  • Mail service via Hetzner web hosting: incoming mail for inbox@, kontakt@, datenschutz@, presse@ and other addresses lands in one inbox; outgoing server mail runs through msmtp

For a small indie app, this is a good place to start. It is not a huge platform stack, but it is production infrastructure with clear responsibilities.

Why this stack

We deliberately did not start with Cloudflare, Firestore or a pile of third-party SaaS tools. Instead, the first production version uses a stack that is easier to explain and easier to keep GDPR-clean.

  • Hetzner CAX11 in Nuremberg instead of US cloud hosting
  • PostgreSQL instead of Firestore, because a schema-versioned relational model is honest and boring in the best way
  • Astro 6 instead of React or Next.js for the public website, because the site compiles to static HTML and is excellent for crawlers, search engines and AI search
  • Plain SMTP via msmtp instead of a SaaS mailer, because fewer processors mean fewer moving parts

The entire infrastructure including mail hosting costs less than 12 euros per month.

That is not only a cost decision. It is also a product decision. If the app says “privacy first”, the infrastructure should not quietly tell a different story.

Why SEO starts this early

Festival apps are searched for in very specific moments. People look for festival schedules, timetables, running orders, clashfinders, offline plans and app alternatives shortly before a festival starts. That means the website cannot be an afterthought.

The first version already includes the technical base for this: clean URLs, language alternatives, structured data, sitemap output and static pages that load quickly. The next step is content: festival landing pages, practical guides and honest comparisons that answer the questions people actually search for.

The goal is not thin SEO content. The goal is to build a useful knowledge base around the same problems the app solves: what is playing when, how to plan a festival day, how to keep a schedule available offline, and how to avoid missing a marked act.

What comes next

The public site is now ready for the next layers:

  • Festival landing pages generated from the existing lineup JSON files, aimed at seasonal search demand
  • A comparison page for festival apps and schedule tools
  • App Store and Google Play submission for the mobile app
  • More blog content in German and English, tied to real festival planning problems instead of generic product updates

Anyone on the waitlist will hear from us as soon as the app is available.

This is the unglamorous part of launching an app: DNS, TLS, database setup, deploy scripts, email routing, metadata, redirects. But it is also the part that makes the next steps possible. FestivalPilot now has a home, a backend and a clean foundation to build on.