Rapid development phase. Konventix, this page and everything linked from it change often and substantially. Nothing here is a promise yet.

Konventix ist in früher, schneller Entwicklung. Diese Seite und alles, was hier verlinkt ist, ändert sich oft und grundlegend. Nichts davon ist verbindlich.

Open source · AGPL-3.0Open Source · AGPL-3.0 Early developmentIn Entwicklung

Event management, built by people who run events.Eventmanagement von Leuten, die selbst Events veranstalten.

Konventix is a self-hostable event management platform: registration, admission, commerce, staffing, resources, content and competitions in one modular system. For LAN parties, conventions, festivals and everything else that needs a door, a ticket and a schedule.

Konventix ist eine Self-Hosted-Plattform für Eventmanagement: Registrierung, Einlass, Ticketshop, Helferplanung, Ressourcen, Content und Turniere in einem modularen System. Für LAN-Partys, Conventions, Festivals und alles andere, das eine Tür, ein Ticket und einen Zeitplan braucht.

  • Laravel 13 · Vue 3Modular monolithModularer Monolith
  • Operator → Brand → EventBrand scoping, not multi-tenancyBrand-Scoping statt Multi-Tenancy
  • Kubernetes-nativeOne image, six roles, GitOpsEin Image, sechs Rollen, GitOps
  • DACH-firstGerman VAT, GoBD invoicesDeutsche USt, GoBD-konforme Rechnungen

BackgroundHintergrund

Four generations for one eventVier Generationen für eine Veranstaltung

Konventix is not a startup idea. It is the next piece of software in more than twenty years with which a small IT association gets a few hundred people, their computers and their tickets through a LAN weekend. The event, Sund-Xplosion e. V. and our guests have changed at least as much along the way as the software that ran it.

Konventix ist keine Startup-Idee. Es ist die nächste Software in über zwanzig Jahren, mit der ein kleiner IT-Verein ein paar hundert Leute mit ihren Rechnern und Tickets durch ein LAN-Wochenende bringt. Die Veranstaltung, der Sund-Xplosion e. V. und auch unsere Gäste haben sich dabei mindestens genauso gewandelt wie die Software, die zum Einsatz kam.

  1. Sund-Xplosion e. V.

    The IT association on the campus of Hochschule Stralsund. It has organised LAN parties under sxlan.de since the early 2000s. In the association and around it there are more than 25 years of experience with events of every kind. Sund-Xplosion e. V. is where the idea of building Konventix took root.

    Der IT-Verein am Campus der Hochschule Stralsund. Veranstaltet seit den frühen 2000ern LAN-Partys unter sxlan.de. Im Verein und seinem Umfeld stecken über 25 Jahre Erfahrung mit Veranstaltungen jeglicher Art. Der Sund-Xplosion e. V. ist die Keimzelle der Idee, Konventix zu bauen.

  2. The hand-rolled websiteDie handgeklöppelte Webseite

    Like most LAN parties, it started with a home-made HTML page: a registration form, a seating table, a script for the tournament. Over the years it grew into a patchwork that only a few still understood. At some point it was clear that a real tool was needed: software that is more secure and more modern, brings more features and supports us before, during and after the event.

    Angefangen hat es, wie bei den meisten LAN-Partys, mit einer selbst gebauten HTML-Seite: ein Anmeldeformular, eine Sitzplan-Tabelle, ein Script für das Turnier. Über die Jahre wurde daraus ein Flickwerk, das nur noch wenige durchschauten. Irgendwann war klar, dass ein richtiges Tool her muss: eine Software, die sicherer und moderner ist, mehr Funktionen mitbringt und uns vor, während und nach der Veranstaltung unterstützt.

  3. Lan2Play/eventula-manager

    The open-source tool sxlan.de ran on for years: tickets, seating plans, tournaments. It carried real events and showed its limits along the way: one event per installation, a data model in which a ticket is a participant, and a codebase in which any change beyond a patch was hard. Still, we are proud of that time. We always had a good time with the maintainers of Lan2Play/eventula-manager, and we thank them for their support, their patience and the steady, lively exchange.

    Das Open-Source-Tool, mit dem sxlan.de jahrelang lief: Tickets, Sitzplan, Turniere. Es hat echte Events getragen und dabei seine Grenzen gezeigt: ein Event pro Installation, ein Datenmodell, in dem ein Ticket gleich ein Teilnehmer ist, und eine Codebase, in der jede Änderung über einen Patch hinaus schwerfiel. Trotzdem sind wir stolz auf diese Zeit. Mit den Maintainern von Lan2Play/eventula-manager hatten wir immer eine gute Zeit, und wir danken ihnen für die Unterstützung, die Geduld und den stetigen, regen Austausch.

  4. LanSoftware / LanCore, the proof of conceptLanSoftware / LanCore, der Proof of Concept

    A complete rebuild on Laravel and Vue, with companion apps (LanBrackets, LanShout, LanHelp). LanCore showed that the stack, the workflow and the features work. It was also the first attempt at agentic coding, documented to MIL-STD-498. The proof of concept showed that this brings structure but slows down the rapid development a project like this needs. A code audit in August 2026 (940 PHP files, 398 Vue components, 29 domains) showed the rest: domain boundaries on paper only, a user model as a god object, event scoping done by hand in almost two hundred places. Many insights, but no foundation for the next ten years.

    Ein kompletter Neubau auf Laravel und Vue, mit Begleit-Apps (LanBrackets, LanShout, LanHelp). LanCore hat gezeigt, dass Stack, Workflow und Features funktionieren. Es war außerdem der erste Versuch mit Agentic Coding, dokumentiert nach MIL-STD-498. Der Proof of Concept hat gezeigt, dass das Struktur bringt, aber die schnelle Entwicklung ausbremst, die so ein Projekt braucht. Ein Code-Audit im August 2026 (940 PHP-Dateien, 398 Vue-Komponenten, 29 Domains) zeigte den Rest: Domain-Grenzen nur auf dem Papier, ein User-Model als God Object, Event-Scoping an fast zweihundert Stellen von Hand. Viele Erkenntnisse, aber kein Fundament für die nächsten zehn Jahre.

  5. Konventix

    Event-agnostic instead of LAN-only. Brand-scoped instead of one event per install. A modular monolith in which every finding from the LanCore audit became a rule the build enforces. Plus the best features and business logic we took with us from the European LAN party scene. Open source under the AGPL. The first operator is Sund-Xplosion e. V., the first test run the SX31.

    Event-agnostisch statt nur LAN. Brand-Scoping statt ein Event pro Installation. Ein modularer Monolith, in dem jeder Befund aus dem LanCore-Audit zu einer Regel wurde, die der Build erzwingt. Dazu die besten Features und Businesslogiken, die wir aus der europäischen LAN-Party-Szene mitgenommen haben. Open Source unter der AGPL. Erster Operator ist der Sund-Xplosion e. V., der erste Testlauf die SX31.

How it worksFunktion

One operator, many brands, many eventsEin Operator, viele Brands, viele Events

The legal entity running an instance is the operator. It owns any number of brands, each with its own domains, theme, content and set of active modules. Every brand runs its events. Brands are resolved from the request host, so one installation can front a LAN party, a convention and a club night without them ever seeing each other.

Die juristische Person, die eine Instanz betreibt, ist der Operator. Ihm gehören beliebig viele Brands, jede mit eigenen Domains, eigenem Theme, eigenem Content und eigenem Set aktiver Module. Jede Brand veranstaltet ihre Events. Brands werden über den Hostnamen des Requests aufgelöst. Eine Installation kann so eine LAN-Party, eine Convention und einen Clubabend bedienen, sauber getrennt voneinander.

Kernel

Always on

Immer aktiv

  • Platform
  • Identity
  • Event
  • Compliance
  • Messaging

Core

Every brand needs them

Braucht jede Brand

  • Registration
  • Admission
  • Commerce
  • Content

ModulesModule

Switched on per brand

Pro Brand zuschaltbar

  • Staffing
  • Resources
  • Competition
  • Game-Ops
  • Agenda
  • Community
  • Sponsoring
  • Newsletter
  • Extensibility

Why not pretix or Eventbrite? Because selling a ticket is the easy part. Konventix also plans volunteer shifts, manages resources beyond seats (tables, power, network ports, rooms), keeps participant communities across events and runs tournament systems. Those are the parts an association actually spends its weekends on.

Warum nicht pretix oder Eventbrite? Ticketverkauf ist der einfache Teil. Konventix plant außerdem Helferschichten, verwaltet Ressourcen jenseits von Sitzplätzen (Tische, Strom, Netzwerkports, Räume), führt Teilnehmer-Communities über Events hinweg und betreibt Turniersysteme. Das ist der Teil, der bei einem Verein die meiste Arbeit macht.

ArchitectureArchitektur

A modular monolith with hard edgesEin modularer Monolith mit harten Kanten

One Laravel 13 application, one deployment unit, and a set of module boundaries the test suite refuses to let anyone cross. The rough shape:

Eine Laravel-13-Anwendung, ein Deployment und Modulgrenzen, die die Testsuite durchsetzt. Grob skizziert:

  1. RequestHost headerHost-Header
  2. ResolveBrandBrand context, scoped sessionBrand-Kontext, eigene Session
  3. Module gatesRoutes · nav · UI slots · listenersRouten · Navigation · UI-Slots · Listener
  4. ActionsBusiness logic in transactionsBusiness-Logik in Transaktionen
  5. EventsThe only cross-module contractDer einzige Vertrag zwischen Modulen

Modules as packagesModule als Packages

Every module is a Composer path package with its own service provider, routes, migrations, policies and pages. Modules may depend on the platform kernel and on nothing else. A cross-module model import fails the build.

Jedes Modul ist ein Composer-Path-Package mit eigenem Service Provider, eigenen Routen, Migrationen, Policies und Pages. Module dürfen vom Platform-Kernel abhängen und von sonst nichts. Ein Model-Import über Modulgrenzen hinweg lässt den Build fehlschlagen.

Brand scoping, systemicBrand-Scoping, systemisch

Brand-owned models carry a global scope. Sessions are per brand, queued jobs carry the brand with them, and a hand-written brand filter is forbidden. The 190 manual scopes of the predecessor became zero.

Brand-eigene Models tragen einen Global Scope. Sessions sind pro Brand, Queue-Jobs nehmen die Brand mit, handgeschriebene Brand-Filter sind verboten. Der Vorgänger hatte 190 davon; hier gibt es keinen.

Typed edgeTypisierte Schnittstelle

Inertia 3 and Vue 3 on the front, laravel-data objects on the back. Validation rules, page props and TypeScript types come from one definition. Hand-written payload types do not exist.

Inertia 3 und Vue 3 im Frontend, laravel-data-Objekte im Backend. Validierungsregeln, Page-Props und TypeScript-Typen kommen aus einer einzigen Definition. Handgeschriebene Payload-Typen gibt es nicht.

Registration is not admissionRegistration ist nicht Admission

A registration is a request. A confirmed registration issues admissions. Commerce owns order and invoice state; payment providers are adapters, connected per operator. Invoices follow GoBD and ZUGFeRD, VAT handling is German first.

Eine Registration ist zunächst nur eine Anfrage. Erst die bestätigte Registration erzeugt Admissions. Commerce hält den Status von Orders und Rechnungen; Payment-Provider sind Adapter, pro Operator angebunden. Rechnungen folgen GoBD und ZUGFeRD, die Umsatzsteuer ist zunächst für Deutschland umgesetzt.

Semantic themingSemantisches Theming

Tailwind 4 with design tokens only. A brand re-colours the whole application by overriding a handful of custom properties at runtime; palette classes are linted out of the codebase.

Tailwind 4, nur über Design-Tokens. Eine Brand färbt die ganze Anwendung um, indem sie zur Laufzeit einige Custom Properties überschreibt. Palette-Klassen blockiert der Linter.

One image, six rolesEin Image, sechs Rollen

Web on FrankenPHP and Octane, Horizon queues, scheduler, Pulse, Reverb websockets and the migrate/install hooks all run the same immutable image, selected by command. Realtime is built in; entrance scanning keeps working offline.

Web auf FrankenPHP und Octane, Horizon-Queues, Scheduler, Pulse, Reverb-Websockets und die Migrate/Install-Hooks laufen alle aus demselben Image; das Kommando bestimmt die Rolle. Realtime ist eingebaut, das Scannen am Einlass funktioniert auch offline.

Deployment and operationsDeployment und Betrieb

Self-hosted, on purposeSelf-hosted, mit Absicht

Konventix ships as one container image and a Helm chart. Today it runs on an RKE2-based Kubernetes platform operated by the association, for development and staging; production will run there as well. Nothing that carries participant data leaves infrastructure the operator controls.

Konventix besteht aus einem Container-Image und einem Helm-Chart. Aktuell läuft es auf einer RKE2-basierten Kubernetes-Plattform des Vereins für Development und Staging; Produktion wird dort ebenfalls laufen. Teilnehmerdaten bleiben auf Infrastruktur, die der Operator selbst kontrolliert.

RequirementsVoraussetzungen

  • PostgreSQLPostgreSQL is the only database. Backups are the operator's responsibility.ist die einzige Datenbank. Backups liegen in der Verantwortung des Operators.
  • Redis-compatible storeRedis-kompatibler Store for cache, sessions and queues.für Cache, Sessions und Queues.
  • S3-compatible object storageS3-kompatibler Object Storage for media, invoices and exports.für Medien, Rechnungen und Exporte.
  • SMTP + TLSSMTP + TLS for mail through any relay; TLS certificates are terminated at the ingress.für den Mailversand über ein beliebiges Relay; TLS-Zertifikate werden am Ingress terminiert.

DeliveryAuslieferung

  • One image, six rolesEin Image, sechs Rollen : web, queues, scheduler, metrics, WebSockets and migrations run from the same image. The start command selects the role.: Web, Queues, Scheduler, Metriken, WebSockets und Migrationen laufen aus demselben Image. Das Startkommando bestimmt die jeweilige Rolle.
  • Helm chartHelm-Chart : published together with the image as a release in an OCI registry and validated against the Kubernetes schema on every change.: wird gemeinsam mit dem Image als Release in einer OCI-Registry veröffentlicht und bei jeder Änderung gegen das Kubernetes-Schema validiert.
  • Immutable releases & GitOpsImmutable Releases & GitOps : staging receives every release automatically, production runs an explicitly pinned version. Which version is active is always traceable.: Staging erhält jedes Release automatisch, Produktion läuft auf einer explizit festgelegten Version. Welche Version aktiv ist, bleibt jederzeit eindeutig nachvollziehbar.

Quality assuranceQualitätssicherung

  • On every changeBei jeder Änderung formatting, static analysis and the full test suite run, including an architecture test that detects crossed module boundaries.laufen Formatierung, statische Analyse und die vollständige Testsuite – einschließlich eines Architekturtests, der verletzte Modulgrenzen erkennt.
  • On every releaseBei jedem Release SAST as well as dependency, secret and container scans run. Only successful releases are published to the registry.laufen SAST sowie Dependency-, Secret- und Container-Scans. Nur erfolgreiche Releases werden in die Registry veröffentlicht.
  • AccessibilityAccessibility is a product property and is reviewed per feature. This website is additionally audited with Lighthouse on every release.ist eine Produkteigenschaft und wird pro Feature geprüft. Diese Website wird zusätzlich bei jedem Release mit Lighthouse auditiert.

This page follows the same operations and deployment model, at a much smaller scale: hand-written HTML on an nginx without root privileges, linted, scanned and audited in the same pipeline, and rolled out to the same platform with a fixed version number.

Diese Seite wird nach demselben Betriebs- und Deployment-Modell umgesetzt, mit deutlich geringerem Umfang: handgeschriebenes HTML auf einem nginx ohne Root-Rechte, in derselben Pipeline gelintet, gescannt und auditiert und mit fester Versionsnummer auf dieselbe Plattform ausgerollt.

Open Source

Open source, developed in the open, still being builtOpen Source, offen entwickelt, noch im Aufbau

Konventix is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). The source code is public, and development happens in the open as well.

Konventix steht unter der GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). Der Quellcode ist öffentlich, und auch die Weiterentwicklung findet offen statt.

The project is still at an early stage. Breaking changes are possible, some modules are incomplete, and the documentation may lag behind the current state of the code. Issues, questions and contributions are expressly welcome.

Konventix is not yet intended for production use.

Das Projekt befindet sich noch in einer frühen Phase. Breaking Changes sind möglich, einzelne Module noch unvollständig und die Dokumentation kann dem aktuellen Stand des Codes hinterherhinken. Issues, Fragen und Beiträge sind ausdrücklich willkommen.

Für den produktiven Einsatz ist Konventix derzeit noch nicht vorgesehen.

FAQ

Questions people askHäufige Fragen

Is Konventix free?Ist Konventix kostenlos?

Yes. Konventix is open source under the GNU AGPL-3.0-or-later; you can self-host it without a licence fee. A hosted offering may follow one day; the code stays open either way.

Ja. Konventix ist Open Source unter der GNU AGPL-3.0-or-later und kann ohne Lizenzgebühr selbst gehostet werden. Ein gehostetes Angebot kann später dazukommen; der Code bleibt offen.

How is it different from pretix or Eventbrite?Was unterscheidet es von pretix oder Eventbrite?

Selling a ticket is only part of it. Konventix also plans volunteer shifts, manages resources beyond seats (tables, power, network ports, rooms), keeps participant communities across events and runs tournament systems. One operator runs several brands with their own domains and themes on one installation.

Ticketverkauf ist nur ein Teil. Konventix plant auch Helferschichten, verwaltet Ressourcen wie Tische, Strom, Netzwerkports und Räume, führt Teilnehmer-Communities über Events hinweg und betreibt Turniersysteme. Ein Operator kann auf einer Installation mehrere Brands mit eigenen Domains und Themes betreiben.

Can I use it for my event today?Kann ich es heute schon für mein Event nutzen?

Not yet. Konventix is in a rapid development phase: breaking changes, unfinished modules, documentation that lags behind the code. Watch the repository, or write to hello@konventix.de if you run events and want to talk.

Noch nicht. Konventix ist in schneller Entwicklung: Breaking Changes, unfertige Module, Dokumentation, die hinterherhinkt. Beobachte das Repository, oder schreib an hello@konventix.de, wenn du Events veranstaltest und Interesse hast.

What do I need to run it?Was brauche ich, um es zu betreiben?

One container image and a Helm chart for Kubernetes, or Docker. Around it: PostgreSQL, a Redis-compatible store, S3-compatible object storage and an SMTP relay. TLS is terminated by the reverse proxy or ingress in front.

Ein Container-Image und ein Helm-Chart für Kubernetes, alternativ Docker. Dazu PostgreSQL, ein Redis-kompatibler Store, S3-kompatibler Object Storage und ein SMTP-Relay. TLS terminiert der Reverse Proxy oder Ingress davor.

Who is behind it?Wer steckt dahinter?

Markus Kohn, with Sund-Xplosion e. V., a registered association from Stralsund that has organised LAN parties since the early 2000s. Konventix succeeds eventula-manager and the LanCore proof of concept.

Markus Kohn zusammen mit Sund-Xplosion e. V., einem Verein aus Stralsund, der seit den frühen 2000ern LAN-Partys veranstaltet. Konventix ist der Nachfolger von eventula-manager und des Proof of Concept LanCore.