{
    "version": "https://jsonfeed.org/version/1",
    "title": "Tim Kicker | Privacy, self-hosting, Linux, geopolitics",
    "description": "CS student in Austria. Notes on privacy, politics, self-hosting, and whatever else is worth writing down.",
    "home_page_url": "https://tim.kicker.dev",
    "items": [
        {
            "id": "https://tim.kicker.dev/2026/04/25/european-federalism/de/",
            "url": "https://tim.kicker.dev/2026/04/25/european-federalism/de/",
            "title": "Ich glaube immer noch an ein vereintes Europa",
            "date_published": "2026-04-25T12:00:00.000Z",
            "content_html": "<p><img src=\"/2026/04/25/european-federalism/thumbnail.webp\" alt=\"Thumbnail für Blogpost\"></p>\n<p>In jedem Klassenraum meiner Volksschulzeit hing ein Plakat. Ein Globus in der Mitte, drumherum Kinder mit verschiedenen Hautfarben, die sich über den Planeten die Hände reichen. Keine Ahnung von welchem Verlag das kam, UNICEF vielleicht, irgendein Schulbuch-Beilagen-Ding, aber es hing überall. Beim Werken, in der Pause, über der Tafel in Mathe.</p>\n<p>Und es hat was gesagt. Nicht explizit, sondern einfach durch schiere Präsenz: So ist die Welt gemeint, so wird sie gebaut, so soll sie aussehen wenn sie fertig ist.</p>\n<p>Ich bin in dieser Welt aufgewachsen. Nicht als Ideal, sondern als Hintergrund. Rassismus war ein Thema aus Geschichtsbüchern und Zeitzeugen-Berichten, halbwegs überwunden, mit ein paar Resten, die noch zu putzen blieben. Das war naiv, ich weiß das heute. Aber es war der Ton damals: Krieg in Europa war Schulstoff, die regelbasierte Weltordnung war einfach da wie das Wetter, man redete nicht drüber. Sie war der Hintergrund vor dem alles andere passierte.</p>\n<p>Dann kam 2016.</p>\n<hr>\n<h2 id=\"Der-Riss\"><a href=\"#Der-Riss\" class=\"headerlink\" title=\"Der Riss\"></a>Der Riss</h2><p>Vielleicht ist es nicht 2016, sondern schon früher, vielleicht war’s auch erst später, aber wenn ich auf das letzte Jahrzehnt zurückschaue, ist 2016 der Punkt, an dem sich bei mir das Gefühl gedreht hat. Im Juni Brexit, im November Trump gewinnt die erste Wahl. Zwei Ereignisse, die vorher fast niemand für möglich hielt, in sechs Monaten.</p>\n<p>Danach ging’s schneller als man mitkam. 2020 die Pandemie, die alles offengelegt hat: wie fragil die Lieferketten, wie dünn die gemeinsame europäische Reaktion, wie gut jedes Land, das man für sorgsam hielt, doch bereit war, Grenzen zu schließen und für sich zu schauen. 2022 der russische Angriff auf die Ukraine. Ab da war klar, dass der Frieden in Europa, den meine Generation als Grundlage betrachtet hat, nicht die selbstverständliche Grundlage ist, sondern etwas, das seit 1945 aktiv aufrechterhalten wird. Und dass wir es nicht wirklich selbst aufrechterhalten, sondern unter dem Regenschirm einer amerikanischen Sicherheitsgarantie gelebt haben, die niemand garantiert hat.</p>\n<p>2024 kam Trump zurück. Nicht als Unfall, diesmal gewählt. Im Februar 2025 hat <a href=\"https://en.wikipedia.org/wiki/JD_Vance\">JD Vance</a> auf der Münchner Sicherheitskonferenz eine Rede gehalten, die man am besten als Abnabelung liest. Der amerikanische Vizepräsident hat europäische Regierungen für ihre “Firewalls” gegen Rechtsextreme kritisiert, sich separat mit Alice Weidel von der AfD getroffen und die transatlantische Rückbindung, die seit 1945 fast unhinterfragt war, in einem Vormittag auf den Kopf gestellt. Seitdem sind wir in einer Situation, in der das Grundgerüst meiner politischen Sozialisation, Frieden in Europa, US-Schutzversprechen, westliche Wertegemeinschaft, europäische Einigung, in allen vier Elementen gleichzeitig fragil wirkt.</p>\n<p>Das Plakat im Klassenraum war kein Dokument. Es war eine Richtung. Und die Richtung geht seit fast zehn Jahren in die falsche.</p>\n<hr>\n<h2 id=\"Wo-ich-stehe\"><a href=\"#Wo-ich-stehe\" class=\"headerlink\" title=\"Wo ich stehe\"></a>Wo ich stehe</h2><p>Ich schreibe diesen Text nicht als neutrale Analyse. Ich habe eine Position und sage sie klar: Ich bin für einen europäischen Bundesstaat. Nicht das Brüsseler Jetzt mit etwas mehr Geld, sondern ein echter Bundesstaat. Eine gemeinsame Armee. Eine gemeinsame Außenpolitik. Ein gemeinsames Steuerfundament. Ein gemeinsam gewähltes Staatsoberhaupt (oder eine Bundesrats-Konstruktion wie in der Schweiz, dazu später mehr). Alles, was nach außen das Gewicht eines Kontinents statt das Gewicht von 27 Mittelstaaten bringt, auf europäischer Ebene. Alles was Kultur, Sprache, Bildung, lokale Politik ist, bleibt wo es ist.</p>\n<p>Ich sage das klar, weil ich merke dass diese Position lange im österreichischen Diskurs als halb-peinlich galt. Pro-EU war okay, pro-Föderation war für Idealisten und Macron-Fans und seit Trump 2.0 trauen sich das mehr Leute zu sagen. Ich auch.</p>\n<p>Was mir wichtig ist, weil der Vorwurf oft kommt: Das ist nicht dasselbe wie “Vereinigte Staaten von Europa nach USA-Vorbild”. Das USA-Modell ist ein mögliches Föderations-Modell, aber nicht das einzige. Die Schweiz ist auch ein Bundesstaat und die sieht ganz anders aus: mehr Kantonsautonomie, vier Amtssprachen, direkte Demokratie auf jeder Ebene. Wenn ich von einem europäischen Bundesstaat rede, meine ich eher das Schweizer Muster als das amerikanische. Dazu komme ich noch.</p>\n<p>Und ich bin mir bewusst, dass ich als Österreicher einer kleinen Nation dafür argumentiere, in etwas Größerem aufzugehen. Das ist, ich weiß, für viele eine emotionale Grenze. Ich verstehe es, ich teile es nicht. Ich fühle mich in einem Österreich, das Teil eines europäischen Bundesstaats ist, freier und sicherer als in einem Österreich, das nominell souverän aber faktisch auf amerikanische Gnade und russische Toleranz angewiesen ist. Ich sehe mich mehr als Europäer als als Österreicher. Das ist keine Absage an Österreich. Das ist eine Reihenfolge.</p>\n<hr>\n<h2 id=\"Die-27-Heere-Rechnung\"><a href=\"#Die-27-Heere-Rechnung\" class=\"headerlink\" title=\"Die 27-Heere-Rechnung\"></a>Die 27-Heere-Rechnung</h2><p>Nehmen wir Verteidigung, weil das am konkretesten ist und weil es das Thema ist, das Trump 2.0 für uns nicht mehr freiwillig übernimmt.</p>\n<p>Die EU-Staaten geben zusammen ungefähr <a href=\"https://www.sipri.org/databases/milex\">340 Milliarden Euro pro Jahr für Militär aus</a>. Die USA geben ungefähr <a href=\"https://en.wikipedia.org/wiki/List_of_countries_by_military_expenditures\">900 Milliarden</a>, etwa dreimal so viel. Russland gibt <a href=\"https://en.wikipedia.org/wiki/List_of_countries_by_military_expenditures\">ungefähr 150 Milliarden</a>. Das sieht so aus als ob wir uns halbwegs selbst verteidigen könnten, weil wir in Summe mehr ausgeben als Russland. Dann schaut man hin.</p>\n<p>Der <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">Draghi-Report</a>, den die EU-Kommission 2024 in Auftrag gegeben hat, legt die Zahlen offen. In Europa werden <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">zwölf verschiedene Hauptkampfpanzer-Typen betrieben, in den USA ist es einer</a>. Europäische Länder kaufen <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">78% ihrer Rüstung außerhalb Europas, 63% davon in den USA</a>. Weniger als ein Fünftel der Rüstungs-Beschaffung ist gemeinsam. In Summe: Wir geben ein Drittel vom US-Budget aus, bekommen aber deutlich weniger als ein Drittel der Einsatzfähigkeit dafür, weil alles in 27 parallelen Systemen dupliziert wird, die nicht kompatibel sind.</p>\n<p>Das <a href=\"https://en.wikipedia.org/wiki/Austrian_Armed_Forces\">österreichische Bundesheer</a> illustriert das in klein. <a href=\"https://en.wikipedia.org/wiki/Austrian_Armed_Forces\">Budget 4,2 Milliarden Euro (2025, inklusive Pensionen), 1,3% des BIP, 25.000 Aktive, 125.600 Reserve, sechs Monate Grundwehrdienst</a>. Nach jeder seriösen Beurteilung, die ich gelesen habe: weder ausreichend ausgerüstet, um Österreich im Ernstfall zu verteidigen, noch NATO-interoperabel genug, um bei einer europäischen Koalition effektiv mitzulaufen. Formal souverän, praktisch in niemandes Liga.</p>\n<p>Und dazu kommt der zweite Layer: das Veto. Außenpolitische Entscheidungen in der EU brauchen Einstimmigkeit. Ein einziger Mitgliedstaat kann alles blockieren. Ungarn unter <a href=\"https://en.wikipedia.org/wiki/Viktor_Orb%C3%A1n\">Orbán</a> hat das sechzehn Jahre lang mit Ansage getan. Sanktionen gegen Russland wurden <a href=\"https://www.reuters.com/business/energy/hungary-slovakia-block-russian-sanctions-package-budapest-says-2025-06-23/\">wiederholt verzögert und verwässert</a>. Ukraine-Hilfspakete monatelang blockiert bis zu inoffiziellen Zugeständnissen an Orbán. <a href=\"https://en.wikipedia.org/wiki/Accession_of_Sweden_to_NATO\">Schwedens NATO-Beitritt</a> monatelang zuerst von Ungarn, dann von der Türkei blockiert. Sanktionen gegen das Atomkraftwerk Paks II blockiert von Ungarn, weil <a href=\"https://en.wikipedia.org/wiki/Viktor_Orb%C3%A1n\">Ungarn 85% seiner fossilen Energie aus Russland bezieht</a>.</p>\n<p>Als ich diesen Text schreibe, ist Orbán gerade abgewählt. Am <a href=\"https://en.wikipedia.org/wiki/2026_Hungarian_parliamentary_election\">12. April 2026</a> hat die pro-europäische Tisza-Partei unter <a href=\"https://en.wikipedia.org/wiki/P%C3%A9ter_Magyar\">Péter Magyar</a> eine Zweidrittel-Mehrheit gewonnen, mit 78,94% die höchste Wahlbeteiligung in Ungarn seit dem Ende des Kommunismus, zum ersten Mal seit 2006, dass Fidesz nicht gewinnt. Das ist die seltene gute Nachricht. Aber das strukturelle Problem bleibt: Ein einziger gekaperter Mitgliedstaat kann die EU blockieren. Heute ist Ungarn nicht mehr dieser Staat, mit etwas Glück. Morgen kann es die Slowakei unter Fico sein, Österreich unter einer FPÖ-geführten Regierung oder irgendeine andere nationale Regierung, die wir noch nicht kennen. Das Veto ist nicht an Orbán gebunden. Das Veto ist strukturell. Und es bleibt ein Problem solange es existiert.</p>\n<p>Das ist die strukturelle Diagnose: wir geben genug Geld aus, aber wir sind 27-fach geteilt, jeder einzelne kann die gemeinsame Handlung blockieren und das Grundgerüst um uns herum ändert sich gerade. Das ist das Szenario in dem die Frage “mehr Integration oder nicht” nicht mehr rhetorisch ist.</p>\n<p>Ein europäischer Bundesstaat würde das Problem auf drei Ebenen anders machen. Erstens: eine Armee statt 27. Was die USA mit 900 Milliarden macht, könnten wir mit unseren 340 Milliarden deutlich effektiver als jetzt, wenn wir nicht jedes Rüstungssystem zwölffach bauen. Zweitens: eine Außenpolitik, nicht 27 mit Veto. Es gibt Mechanismen dafür, die keine komplette Verfassungsrevision brauchen, dazu komme ich später. Drittens: eine Stimme in Verhandlungen mit Washington, Peking, Moskau. Das Gewicht eines Kontinents. Genau das, was uns heute fehlt.</p>\n<hr>\n<h2 id=\"Wer-davon-profitiert-wenn-wir-uns-nicht-einig-sind\"><a href=\"#Wer-davon-profitiert-wenn-wir-uns-nicht-einig-sind\" class=\"headerlink\" title=\"Wer davon profitiert, wenn wir uns nicht einig sind\"></a>Wer davon profitiert, wenn wir uns nicht einig sind</h2><p>Ich möchte hier vorsichtig sein, weil der nächste Schritt in der Argumentation oft in Richtung Verschwörungs-Denken rutscht und das halte ich für falsch. Die Welt ist nicht koordiniert. Aber Interessen können sich decken, ohne dass jemand koordiniert.</p>\n<p>Russland profitiert von einer zersplitterten EU. Moskau formuliert das offen so, seit zwei Jahrzehnten als strategische Doktrin. Was weniger im österreichischen Hauptdiskurs hängenbleibt, sind die konkreten Formen dieses Profitierens.</p>\n<p>Die FPÖ hat im Dezember 2016, unter Strache, einen formalen Kooperationsvertrag mit <a href=\"https://en.wikipedia.org/wiki/Freedom_Party_of_Austria\">Putins Partei Einiges Russland</a> unterzeichnet. Fünf Jahre Laufzeit, in Moskau unterschrieben, medial damals gut dokumentiert, wurde 2021 nicht erneuert, aber nie formal verurteilt. Der französische <a href=\"https://en.wikipedia.org/wiki/National_Rally\">Rassemblement National</a> (damals Front National) hat im November 2014 einen neun-Millionen-Euro-Kredit von der First Czech-Russian Bank in Moskau erhalten, mit dem die Wahlkämpfe vorbereitet wurden. Marine Le Pen hat das selbst bestätigt, allerdings als “private Bank” beschrieben, weil französische Banken ihr den Kredit verwehrten. Die italienische <a href=\"https://en.wikipedia.org/wiki/Lega_(political_party)\">Lega</a> hatte im Oktober 2018 eine Tonaufnahme aus dem Moskauer Hotel Metropol, die darauf hindeutete, dass <a href=\"https://www.theguardian.com/world/2019/jul/10/italian-far-right-league-secret-oil-deal-talks-with-russians\">ein Öldeal 65 Millionen Euro in die Parteifinanzen der Lega schleusen sollte</a>. Die italienische Staatsanwaltschaft hat das Verfahren 2023 eingestellt mit der Begründung: das Ziel war Finanzierung, aber das Geld ist nicht geflossen. Drei europäische Rechtsaußen-Parteien, alle drei mit dokumentierten Russland-Verbindungen, alle drei gegen europäische Integration.</p>\n<p>Algorithmische Verstärkung liegt eine Ebene darunter: Plattformen optimieren Feeds auf Engagement und Engagement korreliert mit Outrage, Polarisierung, Extremismus, nicht mit Sachlichkeit. Belegt durch die <a href=\"https://en.wikipedia.org/wiki/Facebook_Papers\">Facebook Files</a> 2021 aus internen Meta-Dokumenten. Der Mechanismus ist neutral, das Ergebnis ist es nicht. Und wenn eine russische Desinformationskampagne wie <a href=\"https://en.wikipedia.org/wiki/Doppelganger_(disinformation_campaign)\">Doppelgänger</a>, die seit Mai 2022 läuft und vom EU DisinfoLab öffentlich gemacht wurde, gezielt Inhalte platziert, die Algorithmen aufgreifen, entsteht eine Zusammenarbeit, welche nicht geplant sein muss, um zu wirken.</p>\n<p>Das konkreteste Beispiel aus jüngster Zeit: die <a href=\"https://en.wikipedia.org/wiki/2024_Romanian_presidential_election\">rumänische Präsidentschaftswahl 2024</a>. Der rechtsextreme Außenseiter Călin Georgescu hat die erste Runde überraschend gewonnen. Das rumänische Verfassungsgericht hat die Wahl anschließend annulliert, weil eine russische TikTok-Einflusskampagne nachweisbar den Ausgang beeinflusst hatte. Theoretisch ist das nicht mehr. Nachgewiesen, in einem EU-Mitgliedstaat, innerhalb der letzten anderthalb Jahre.</p>\n<p>Die US-Seite hat durch Trump 2.0 ein eigenes Profil bekommen. Vance in München war die öffentlichste Variante, aber schon vorher hat <a href=\"https://en.wikipedia.org/wiki/Elon_Musk\">Elon Musk</a>, der an der Spitze der US-Administration im Bereich Regierungseffizienz operierte, <a href=\"https://www.welt.de/debatte/kommentare/article255088056/Elon-Musk-Nur-die-AfD-kann-Deutschland-retten.html\">im Dezember 2024 einen Op-Ed in der Welt am Sonntag</a> veröffentlicht, in dem er die AfD zur Wahl empfahl. Im Januar 2025 hat er <a href=\"https://www.brusselstimes.com/1391093/musk-afd-eu-commission-to-monitor-risks-of-preferential-treatment\">Alice Weidel in einem Live-Gespräch auf seiner Plattform X</a> gehostet, was als faktische Wahlkampfhilfe angesehen wurde. Die EU-Kommission hat daraufhin ein DSA-Verfahren gegen X wegen bevorzugter Behandlung eröffnet.</p>\n<p>Das sind keine zwei Personen, die in einem Hinterzimmer gemeinsam planen. Das sind verschiedene Akteure mit verschiedenen Motiven, deren Interessen sich decken: jeder der Beiden profitiert von einem schwachen, zersplitterten Europa. Moskau strategisch, Washington unter Trump ideologisch und handelspolitisch, die europäischen Rechtsaußen parteipolitisch, manche Tech-Oligarchen regulatorisch. Keiner muss mit den anderen reden, um in die gleiche Richtung zu drücken.</p>\n<p>Ein Bundesstaat wäre die strukturelle Antwort darauf. Weniger aus moralischen Gründen, mehr aus mechanischen: Mehrheitsentscheidung macht es unmöglich, dass eine einzelne gekaperte Regierung das Ganze blockiert. Was Orbáns Ungarn sechzehn Jahre lang getan hat (und was die nächste gekaperte Regierung irgendwo in der EU wieder tun könnte) wäre im Bundesstaat nicht mehr möglich, weil das Gewicht eines einzelnen Landes in einem föderalen Parlament entsprechend klein wäre und eine Mehrheit gegen sie organisierbar. Die Konvergenz der Interessen kann weiter bestehen. Aber der Hebel einzelner Akteure würde dramatisch kleiner.</p>\n<hr>\n<h2 id=\"Weil-wir-nicht-ein-Markt-sind-bauen-wir-keine-Konzerne-mehr\"><a href=\"#Weil-wir-nicht-ein-Markt-sind-bauen-wir-keine-Konzerne-mehr\" class=\"headerlink\" title=\"Weil wir nicht ein Markt sind, bauen wir keine Konzerne mehr\"></a>Weil wir nicht ein Markt sind, bauen wir keine Konzerne mehr</h2><p>Wenn man irgendeinen Europäer unter dreißig fragt wann er zuletzt einen europäischen Tech-Dienst genutzt hat, kommt eine lange Pause. Suchmaschine: Google (USA 🇺🇸). Betriebssystem am Laptop: Windows oder macOS (beide USA 🇺🇸). Betriebssystem am Telefon: iOS (USA 🇺🇸) oder Android (USA 🇺🇸). E-Mail: Gmail oder Outlook (beide USA 🇺🇸). Videokonferenz: Teams oder Zoom (beide USA 🇺🇸). Cloud: AWS, Azure, Google Cloud (alle USA 🇺🇸). Social Media: WhatsApp, Instagram, Snapchat (alle USA 🇺🇸), TikTok (USA 🇺🇸 plus China 🇨🇳), X (USA 🇺🇸). Zahlungskarte: Visa oder Mastercard (beide USA 🇺🇸). KI: OpenAI, Anthropic, Google (alle USA 🇺🇸).</p>\n<p>Der Draghi-Report hat die Diagnose dafür in einem Satz: Europa hat die digitale Revolution weitgehend verpasst. Konkret: <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">nur vier der fünfzig größten Tech-Firmen der Welt sind europäisch</a>. Es gibt <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">kein einziges EU-Unternehmen mit einer Marktkapitalisierung über 100 Milliarden Euro, das in den letzten fünfzig Jahren von Null aufgebaut wurde</a>. In derselben Zeit sind in den USA sechs Unternehmen mit einer Bewertung über eine Billion Dollar von Null aufgebaut worden: Apple, Microsoft, Amazon, Alphabet, Nvidia, Meta. <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">Dreißig Prozent der europäischen Unicorns</a>, also Start-ups, die eine Milliarde Dollar Bewertung erreicht haben, sind zwischen 2008 und 2021 aus Europa in die USA abgewandert.</p>\n<p>Die Frage ist nicht, ob das an mangelndem Talent liegt. Europa hat Top-Universitäten, genug Ingenieure, tiefe Forschungstraditionen. Europa hat ASML (die einzige Firma weltweit, die die moderne Halbleiter-Lithografie beherrscht), SAP (global führende Unternehmenssoftware), Airbus, Ericsson, Nokia, Spotify, Mistral. Es gibt nichts strukturell Unmögliches am europäischen Tech-Sektor. Was fehlt ist Skalierung.</p>\n<p>Warum fehlt Skalierung? Weil der europäische Markt kein Markt ist, sondern 27. 27 Steuerregime, 27 Gesellschaftsrechts-Systeme, 27 Insolvenzordnungen, 27 Arbeitsrecht-Frameworks, 27 Börsen, 27 Aufsichtsbehörden in den meisten Branchen. Ein Startup in Madrid, das in ganz Europa skalieren will, muss 27 verschiedene Rechtssysteme navigieren. Ein Startup in San Francisco, das landesweit skalieren will, hat einen einheitlichen Binnenmarkt und eine gemeinsame Währung. Der Draghi-Report schätzt, dass die Fragmentierung des europäischen Binnenmarkts allein <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">ungefähr zehn Prozent des potenziellen BIP kostet</a>, jedes Jahr.</p>\n<p>Die <a href=\"https://en.wikipedia.org/wiki/Capital_Markets_Union\">Capital Markets Union</a>, das EU-Projekt das seit 2015 versucht diese Fragmentierung zu beseitigen, ist nach zehn Jahren noch immer nicht abgeschlossen. <a href=\"https://en.wikipedia.org/wiki/Enrico_Letta\">Enrico Letta</a> hat 2024 im Auftrag des Europäischen Rats einen Bericht vorgelegt der ein “28. Regime” vorschlägt: eine optionale EU-weite Rechtsform für Unternehmen, die sich freiwillig statt in ein nationales in ein europäisches System einschreiben können. Technisch elegant. Politisch seit über einem Jahr blockiert.</p>\n<p>Eine Föderation würde diesen Knoten durchschneiden, nicht weil die nationalen Systeme verschwinden, sondern weil ein echter gemeinsamer Rahmen entsteht. Gemeinsame Gesellschaftsrechts-Basis, gemeinsame Kapitalmarktaufsicht, gemeinsame Steuern auf Bundesebene, nationale Steuern darunter (wie in der Schweiz auch), eine echte Börse, die gegen die New York Stock Exchange bestehen kann.</p>\n<p>Dass es anfangen kann, merkt man wenn man auf die Payment-Ebene schaut. Der <a href=\"https://en.wikipedia.org/wiki/Digital_euro\">digitale Euro</a>, eine Zentralbank-Digitalwährung, welche die EZB seit 2021 entwickelt, soll 2029 erstmals ausgegeben werden, <a href=\"https://www.ecb.europa.eu/euro/digital_euro/html/index.en.html\">falls die EU-Gesetzgebung 2026 durchgeht</a>. Die Idee: ein europäisches Retail-Zahlungsinstrument, nicht an Visa oder Mastercard gebunden, mit Privatsphäre-durch-Design und offline-Funktionalität. Unabhängig davon läuft seit Juli 2024 <a href=\"https://en.wikipedia.org/wiki/Wero_(payment)\">Wero</a>, ein paneuropäisches Mobile-Payment-System der European Payments Initiative, das Giropay, Paylib, Payconiq und iDEAL ersetzt hat. 14 Millionen Nutzer nach vier Monaten, inzwischen Revolut, N26, fünf luxemburgische und fünf belgische Banken integriert, Point-of-Sale ab 2026 geplant. Das Ziel ist explizit formuliert: “größere Unabhängigkeit von amerikanischen Zahlungsdienstleistern”.</p>\n<p>Das sind keine fertigen Gegenprojekte zu den US-Plattformen. Aber es ist Infrastruktur im Bau, auf europäischer Ebene, unter europäischen Regeln. Der Bundesstaat wäre die strukturelle Voraussetzung dafür, dass diese Ansätze skalieren können, statt in der üblichen 27-Länder-Matsche stecken zu bleiben.</p>\n<hr>\n<h2 id=\"Die-Schweiz-gibt’s-ubrigens-schon\"><a href=\"#Die-Schweiz-gibt’s-ubrigens-schon\" class=\"headerlink\" title=\"Die Schweiz gibt’s übrigens schon\"></a>Die Schweiz gibt’s übrigens schon</h2><p>Bevor ich weitermache, muss ich einen Einwand aus dem Weg räumen, der sonst alles weitere sabotiert: <em>“Ja, aber ein europäischer Bundesstaat, das heißt doch dass wir zu den USA werden, unsere Kultur verlieren, Brüssel regiert alles, Österreich wird zu einem Landkreis von Berlin.”</em> Diesen Einwand kenne ich, ich nehme ihn ernst und ich finde, er trifft nicht die Föderation, die ich meine.</p>\n<p>Die <a href=\"https://en.wikipedia.org/wiki/Federalism_in_Switzerland\">Schweiz</a> ist seit 1848 ein Bundesstaat. Sie hat 26 Kantone, <a href=\"https://en.wikipedia.org/wiki/Languages_of_Switzerland\">vier Amtssprachen (Deutsch 62%, Französisch 23%, Italienisch 8%, Rätoromanisch 0,5%)</a> und ein radikales Subsidiaritätsprinzip: Der größte Teil der staatlichen Autorität liegt bei den Kantonen, der Bund hat nur die explizit übertragenen Kompetenzen. Das ist kein US-Modell. Das ist fast das Gegenteil vom US-Modell.</p>\n<p>Wie das konkret aussieht: Der <a href=\"https://en.wikipedia.org/wiki/Federal_Council_(Switzerland)\">Bundesrat</a> hat sieben Mitglieder, ist kollektives Staatsoberhaupt, die Präsidentschaft rotiert jährlich. Kein einzelner imperialer Exekutiv-Präsident. Seit dem Zweiten Weltkrieg ist der Bundesrat per Konvention eine permanente Große Koalition mit allen größeren Parteien und allen Sprachregionen. Die Legislative ist zweikammrig: Nationalrat (proportional nach Bevölkerung) und <a href=\"https://en.wikipedia.org/wiki/Council_of_States_(Switzerland)\">Ständerat</a> (zwei Sitze pro Vollkanton, unabhängig von der Bevölkerung).</p>\n<p>Der Ständerat ist der Punkt, an dem die Schweizer Föderation Kleinstaaten-Schutz strukturell einbetoniert. <a href=\"https://en.wikipedia.org/wiki/Council_of_States_(Switzerland)\">Appenzell Innerrhoden hat 16.000 Einwohner und einen Sitz, Zürich 1,46 Millionen und zwei</a>. Das Verhältnis zwischen dem kleinsten und dem größten Kanton, bezogen auf Einwohner pro Ständeratssitz, ist 45,8 zu 1. Wenn eine EU-Föderation diese Mechanik nachbaut, dann hat Malta mit Appenzell ähnliches Gewicht, Deutschland hat proportional mehr Sitze, aber nicht annähernd proportional zu seiner Bevölkerung und kleine Staaten sind strukturell nicht überwählbar.</p>\n<p>Gesundheit ist kantonal. Bildung ist kantonal (inklusive Unterrichtssprache). Polizei ist kantonal. Steuersätze sind kantonal plus eine Bundesschicht. Kulturpolitik ist kantonal. Direkte Demokratie existiert auf jeder Ebene: obligatorische Referenda bei Verfassungsänderungen und Mitgliedschaft in internationalen Organisationen, fakultative Referenda durch 50.000 Unterschriften für jedes Bundesgesetz, Volksinitiativen für Verfassungsänderungen bei 100.000 Unterschriften.</p>\n<p>Was ist bundeszentralisiert? Außenpolitik. Militär. Währung. Zölle. Bundesgerichte. Außendarstellung. Das sind die Bereiche, in denen ein Kleinstaat allein gegen eine Welt von Imperien nichts ausrichtet. Das sind auch die Bereiche, in denen Europa heute nicht als geschlossen auftritt. Deckungsgleich.</p>\n<p>Und die <a href=\"https://en.wikipedia.org/wiki/History_of_Switzerland\">Schweizer Konsolidierung</a> ist nicht über Nacht passiert. 1848 wurde der Bundesstaat proklamiert. 1850 kam die Einheitswährung, die kantonalen Binnenzölle wurden abgeschafft. 1851 wurden Post und Telegraph vereinheitlicht. 1854 kam der Bundes-Infrastrukturausbau. 1859 wurde das Söldnerwesen abgeschafft, ein Schritt Richtung einer Armee statt mehrerer. 1874 wurde die Verfassung revidiert und die Bundesmacht erweitert. Siebenundzwanzig Jahre schrittweise Konsolidierung, nicht ein Big Bang. Das ist ein Modell, das für die EU funktionieren kann, wenn wir uns dafür entscheiden.</p>\n<p>Der Punkt ist: Föderation ist kein Synonym für zentralistischer Superstaat. Es ist eine Strukturentscheidung, über welche Ebene welche Kompetenzen bekommt. Die Schweiz zeigt seit 177 Jahren, wie man das mit tiefer innerer Vielfalt verbindet. Wenn wir Europa zu einem Bundesstaat machen, ist das Schweizer Muster mein Ziel, nicht das amerikanische.</p>\n<hr>\n<h2 id=\"Was-das-konkret-fur-Osterreich-hiese\"><a href=\"#Was-das-konkret-fur-Osterreich-hiese\" class=\"headerlink\" title=\"Was das konkret für Österreich hieße\"></a>Was das konkret für Österreich hieße</h2><p>Abstrakt ist alles schön. Probieren wir konkret, was sich aus einem europäischen Bundesstaat für Österreich ändern würde.</p>\n<p><strong>Das Bundesheer.</strong> Heute: formal neutral, de-facto NATO-Partnerschaft-für-den-Frieden seit 1995, Teilnahme an <a href=\"https://en.wikipedia.org/wiki/Permanent_Structured_Cooperation\">PESCO</a>, Teilnahme an EU-Sanktionen gegen Russland seit 2022, nicht genug ausgerüstet für ernsthafte Landesverteidigung, nicht interoperabel genug für Bündnisoperationen. Budget 4,2 Milliarden Euro im Jahr. Für eine eigenständige Verteidigung des Landes zu wenig, für einen ernst zu nehmenden Beitrag zu einer europäischen Armee ausreichend, wenn die Strukturen passen.</p>\n<p>Unter einem Bundesstaat: das Bundesheer geht in einer europäischen Streitmacht auf. Nicht als Zusatz, als Ersatz. Die 4,2 Milliarden fließen weiter, aber in ein Rüstungssystem das zwölffach effizienter ist, weil nicht jeder europäische Staat seine eigene Panzer-Linie baut. Österreichische Offiziere machen Karriere in europäischen Strukturen. Österreichisches Territorium ist Bundes-Territorium, nicht national-militärisch, aber genau deswegen gemeinsam verteidigt, nicht nur auf österreichische Armee-Kapazität angewiesen. Beistandsgarantie nicht durch einen Vertrag, sondern durch Verfassungsstruktur.</p>\n<p><strong>Die Neutralität.</strong> Die wurde 1955 als Bedingung für den Staatsvertrag formal proklamiert. Das <a href=\"https://en.wikipedia.org/wiki/Declaration_of_Neutrality\">Neutralitätsgesetz</a> verbietet den Beitritt zu militärischen Bündnissen und die Errichtung fremder Militärbasen. Formal gültig. Faktisch seit 1995 durchlöchert: EU-Mitgliedschaft inklusive GASP, PESCO-Teilnahme, EU-Artikel 42(7) TEU Beistandsklausel, Sanktionenbeteiligung gegen Russland. Die Neutralität ist seit dreißig Jahren ein Ritual, keine Realität. Die Schweiz hat im Februar 2022 ihre eigene, älter-bewaffnete Neutralität gebrochen, als sie den EU-Sanktionen gegen Russland beigetreten ist. Wir sind formal neutraler als die Schweiz, faktisch nicht.</p>\n<p>Unter einem Bundesstaat: die Neutralität wird ehrlich abgelöst. Kein schmutziges Geheimnis mehr, dass wir zum westlichen Sicherheitsgefüge gehören, aber so tun als ob wir über den Dingen schweben. Die SPÖ wird das emotional schwer finden, die ÖVP dankbar, die Bevölkerung in den Umfragen wahrscheinlich erst dagegen und dann, wenn die Alternative als “abhängig von amerikanischer Gnade und russischer Toleranz” klar wird, dafür. Das ist eine Umstellung, die Zeit braucht. Sie ist überfällig.</p>\n<p><strong>Asyl und Migration.</strong> Die aktuelle <a href=\"https://en.wikipedia.org/wiki/Dublin_Regulation\">Dublin-Regelung</a> belastet Grenzstaaten unverhältnismäßig. Italien, Griechenland, Spanien in erster Linie, Österreich in Durchgangssituationen. Jede Migrationswelle wird zur nationalen Eskalationsspirale, weil niemand sich zuständig fühlt. Die Verteilung unter den Mitgliedstaaten funktioniert nicht, weil sie auf freiwilliger Solidarität basiert und niemand freiwillig solidarisch ist.</p>\n<p>Unter einem Bundesstaat: föderale Asylbehörde, föderale Finanzierung, föderale Zuständigkeit. Wie die USA, wo keine einzelne Bundesstaat seine eigene Einwanderungspolitik macht, weil das offensichtlich unsinnig wäre. Die Asylentscheidung wird bundeseinheitlich getroffen. Die Unterbringungs- und Integrationskosten werden über alle Mitgliedstaaten verteilt, nach Bevölkerung und Wirtschaftskraft, nicht nach Zufall des Einreisewegs. Das löst nicht die Frage, wie viele Menschen aufgenommen werden, das ist eine politische Mehrheitsentscheidung. Aber es löst die strukturelle Ungerechtigkeit, dass Grenzstaaten alles tragen.</p>\n<p><strong>Wirtschaft und Tech-Souveränität.</strong> Österreich ist eine kleine, exportabhängige Volkswirtschaft. Einheitlicher Kapitalmarkt, Letta-28-Regime, digitale Souveränität, europäische Skalierung sind für uns nicht abstrakt, sondern direkt wirtschaftsrelevant. Österreichische Startups brauchen den europäischen Markt als echten Markt, nicht als 27 zu berücksichtigende Regulierungen. Wenn der digitale Euro ab 2029 in Österreich so verfügbar ist wie Bargeld, hängt unser Zahlungssystem nicht mehr an Visa und Mastercard. Wenn die Capital Markets Union endlich fertig ist, wird das Wiener Börsengewicht relativ kleiner, aber der europäische Kapitalmarkt als Ganzes bietet österreichischen Firmen ein Scale-up-Umfeld, das Wien allein nie bieten kann.</p>\n<p><strong>Bürgerrechte und demokratische Rechenschaft.</strong> Der häufigste Einwand gegen mehr Brüssel ist: “Aber dann hat die Kommission noch mehr Macht und niemand kontrolliert sie.” Das Argument nimmt den Status Quo ernst, aber es nimmt nicht ernst, dass der aktuelle Zustand von niemandem sinnvoll kontrolliert wird. Die Kommission ist indirekt legitimiert, der Europäische Rat ist mächtig, aber demokratisch dunkel, das Europäische Parlament hat kein Initiativrecht. Ein Bundesstaat mit direkt gewählter Exekutive, einem Parlament mit echten Vollmachten und einem starken Europäischen Gerichtshof ist nicht weniger demokratisch als was wir heute haben. Er ist mehr. Weil er kontrollierbarer wird.</p>\n<p><strong>Kultur, Bildung, Sprache, lokale Politik.</strong> Das bleibt bei Österreich. Wie in der Schweiz Bildung bei den Kantonen bleibt, wie in Deutschland Kultur weitgehend bei den Ländern bleibt. Niemand will, dass Brüssel die Wiener Opernball-Tradition reguliert oder den österreichischen Schullehrplan vereinheitlicht. Das verwechseln die meisten aus reflexartiger Angst: Föderation heißt nicht Abschaffung von Österreich. Föderation heißt, Österreich bleibt Österreich in allem was Österreich ausmacht und wird Teil von etwas Größerem, in allem wo Österreich allein zu klein ist.</p>\n<hr>\n<h2 id=\"Die-ernsten-Einwande\"><a href=\"#Die-ernsten-Einwande\" class=\"headerlink\" title=\"Die ernsten Einwände\"></a>Die ernsten Einwände</h2><p>Ich glaube an die Sache, aber ich bin nicht naiv. Es gibt drei Einwände gegen einen europäischen Bundesstaat, die ich für ernst halte und bei denen ich mir die Mühe machen muss, sie zu beantworten. Wenn ich das nicht tue, ist das hier ein Manifest, nicht ein Argument.</p>\n<p><strong>Erstens: Deutschland dominiert.</strong> Der Soziologe <a href=\"https://en.wikipedia.org/wiki/Wolfgang_Streeck\">Wolfgang Streeck</a> nennt die EU ein “liberales Imperium”: ein hegemoniales Zentrum (Deutschland), das den Peripherien (Südeuropa) Austeritäts-Bedingungen aufzwingt und ihre demokratische Souveränität entkernt. Das Paradebeispiel ist Griechenland 2015, wo die Troika dem Land einen Kurs aufgezwungen hat, den keine griechische Regierung durchsetzen wollte. Wenn das die implizite EU-Dynamik ist, argumentiert Streeck, dann macht eine Föderation das nicht besser. Sie macht es formal.</p>\n<p>Ich nehme das ernst, die Diagnose ist korrekt. Aber Streecks Schlussfolgerung stimmt nicht. Deutschland dominiert heute die EU durch informelle bilaterale Druckmittel, durch seine wirtschaftliche Größe, durch die EZB-Politik. Das ist Macht ohne demokratische Rechenschaftspflicht gegenüber den Menschen, die darunter leiden. Eine Föderation würde diese Dominanz formalisieren und genau dadurch kontrollierbar machen. Mehrheitsabstimmung, Bundesrat mit Kleinstaaten-Schutz wie in der Schweiz, direkt gewählte Bundes-Exekutive, Verfassungsgericht mit echten Rechten. Streeck wünscht sich stattdessen eine lose Kooperation souveräner Kleinstaaten. Das haben wir. Das Ergebnis ist Griechenland 2015. Das Argument stimmt, die Alternative, die er vorschlägt, ist exakt der jetzige Zustand.</p>\n<p><strong>Zweitens: Demokratiedefizit.</strong> <a href=\"https://en.wikipedia.org/wiki/Andrew_Moravcsik\">Andrew Moravcsik</a>, Princeton-Politikwissenschaftler, hat das umgekehrt argumentiert: Die EU ist bereits hinreichend demokratisch, weil die Kommission von demokratisch gewählten nationalen Regierungen im Rat getragen wird. Das funktioniert für regulatorische Aufgaben, aber es bricht bei existenziellen strategischen Entscheidungen. Verhandlung unter 27 Demokratien funktioniert für Handelsregeln. Es funktioniert nicht, wenn Russland die Ukraine überfällt und Ungarn blockiert.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Dieter_Grimm\">Dieter Grimm</a>, ein deutscher Verfassungsrechtler, hat das in eine tiefere Form gebracht: Demokratie braucht einen Demos, eine politische Gemeinschaft die sich als solche versteht. Europa hat das nicht. Europäer identifizieren sich primär national. Ohne Demos keine Demokratie, also keine Föderation.</p>\n<p>Das ist empirisch richtig und trotzdem nicht das Argument, das es sein will. Die Schweiz hat seit 1848 einen Bundesstaat mit vier Sprachen, verschiedenen Religionstraditionen, tiefer kantonaler Identität, die einen Sonderbund-Krieg 1847 direkt vor der Föderation ausgefochten haben. Der schweizerische Demos hat sich mit dem Bundesstaat entwickelt, nicht vor ihm. Italienische Nationalidentität ist nach der Einigung entstanden, nicht vor ihr. Deutsche nach 1871. Identität entsteht durch Institutionen, nicht vor ihnen. Ich selbst sehe mich mehr als Europäer denn als Österreicher. Das ist anekdotisch, aber es zeigt: Der Demos entsteht, wenn die Strukturen ihn ermöglichen. Ob er schnell genug entsteht, ist offen. Aber die Behauptung, er existiere gar nicht, wird täglich durch Millionen Europäer widerlegt, die in verschiedenen Ländern studieren, arbeiten, Beziehungen führen, sich selbstverständlich zwischen Städten bewegen.</p>\n<p><strong>Drittens: Brexit als Warnung.</strong> Das ist die ernsteste populistische Kritik gegen Föderation und sie kommt nicht nur von FPÖ, Lega, Rassemblement National, AfD: wenn schon ein EU-Mitglied mit Opt-Outs und eigener Währung den Verbund verlässt, was passiert erst wenn wir den Schritt zur Föderation machen? Eine Föderation würde weitere Brexits triggern und am Ende die EU als Ganzes destabilisieren.</p>\n<p>Das ist eine ernsthafte Sorge. Drei Punkte dagegen.</p>\n<p>Erstens war Brexit überdeterminiert von britischen Pathologien, die anderswo so nicht existieren: dreißig Jahre EU-feindliche Boulevardpresse, ein post-imperiales Souveränitäts-Selbstbild, eine politische Klasse, die jede EU-Entscheidung als Brüsseler Diktat verkauft hat. Dazu eine Insel-Identität, ein eigenes Common-Law-System, eine eigene Währung. Die strukturellen Voraussetzungen für ein zweites Brexit existieren in dieser Kombination nirgendwo sonst in Europa.</p>\n<p>Zweitens sind die <a href=\"https://obr.uk/\">4% BIP-Verlust nach acht Jahren jetzt dokumentiert</a> und Umfragen zeigen seit 2022 konsistent eine Mehrheit der Briten, die Brexit für einen Fehler halten. 2016 war Austritt ein Wagnis ohne Vergleichswert. 2026 ist es ein konkreter Fall mit messbaren Kosten. Wenn die nächste populistische Partei “Italexit” oder “Frexit” verkaufen will, läuft sie gegen ein sehr konkretes Preisschild an.</p>\n<p>Drittens und das ist der wichtigste Datenpunkt: was <em>nicht</em> passiert ist. Als die UK gegangen ist, sind 27 andere geblieben, obwohl in fast allen die populistische Versuchung politisch existiert. Niemand hat den Schritt mitgemacht. Das ist starke revealed preference. Eine Föderation würde die Bleibe-Option vertiefen.</p>\n<p>Brexit ist nicht ein Argument gegen Integration, sondern dafür dass halbe Integration brüchig ist. Die echte Wahl ist zwischen geteilter und bedeutungsloser Souveränität.</p>\n<hr>\n<h2 id=\"Wie-das-uberhaupt-passiert\"><a href=\"#Wie-das-uberhaupt-passiert\" class=\"headerlink\" title=\"Wie das überhaupt passiert\"></a>Wie das überhaupt passiert</h2><p>Der häufigste Reflex gegen die Föderations-Idee ist: “Das braucht Vertragsänderungen, Einstimmigkeit, Referenden, das schafft man nie.” Das ist halb richtig: Komplette Vertragsrevision ist schwer, aber die Föderation ist kein Big Bang, sondern eine Richtung und auf dieser Richtung gibt es mehrere Werkzeuge, die nicht alle die gleiche Hürde haben.</p>\n<p><strong>Erstens: Wir haben schon viel gebaut.</strong> Der <a href=\"https://en.wikipedia.org/wiki/Eurozone\">Euro</a> ist ein Währungs-Bundesgebäude, das 20 der 27 Mitgliedstaaten abdeckt. <a href=\"https://en.wikipedia.org/wiki/Schengen_Area\">Schengen</a> ist ein Binnengrenzen-Bundesgebäude, das 26 Länder abdeckt. Die <a href=\"https://en.wikipedia.org/wiki/European_Union_Customs_Union\">Zollunion</a> ist ein Außenhandels-Bundesgebäude, das alle 27 erfasst. <a href=\"https://en.wikipedia.org/wiki/Frontex\">Frontex</a> ist seit 2019 mit 10.000 eigenen Grenzschützern eine föderale Exekutive für den Außengrenzenschutz. <a href=\"https://en.wikipedia.org/wiki/Permanent_Structured_Cooperation\">PESCO</a>, die permanent strukturierte Kooperation für Verteidigung, läuft seit 2017 mit 25 der 27 Mitgliedstaaten (darunter Österreich). <a href=\"https://en.wikipedia.org/wiki/Next_Generation_EU\">Next Generation EU</a>, das 750-Milliarden-Euro-Wiederaufbauinstrument von 2020, war die erste bedeutende EU-Gemeinschaftsverschuldung. Sie wird bis 2058 aus EU-Eigenmitteln getilgt. Das ist Föderal-Skala Fiskalpolitik in der Praxis, auch wenn es formal nicht so heißt.</p>\n<p>Wir haben also keine leere Baustelle, sondern Fragmente einer Föderation, die bereits existieren. Die Frage ist, wie wir fertig bauen.</p>\n<p><strong>Zweitens: Passerelle-Klauseln.</strong> Der <a href=\"https://en.wikipedia.org/wiki/Treaty_of_Lisbon\">Lissabon-Vertrag</a> enthält Mechanismen, die es erlauben, in spezifischen Bereichen von der Einstimmigkeit zur qualifizierten Mehrheit überzugehen, ohne eine formale Vertragsänderung mit nationaler Ratifizierung. Die allgemeine <a href=\"https://en.wikipedia.org/wiki/Passerelle_clause\">Passerelle-Klausel</a> in Artikel 48(7) TEU verlangt: Europäischer Rat einstimmig plus Europäisches Parlament absolute Mehrheit plus kein nationales Parlament widerspricht innerhalb von sechs Monaten. Der spezifische Artikel 31 TEU erlaubt dasselbe für Teile der gemeinsamen Außen- und Sicherheitspolitik. Wenn wir die Blockade durch Ungarn auflösen wollen, ohne eine komplette Verfassungsdebatte zu führen, ist das der Weg. Und ja, die Passerelle braucht auch Einstimmigkeit zur Aktivierung. Aber einmal aktiviert, gilt qualifizierte Mehrheit für immer in diesem Bereich.</p>\n<p><strong>Drittens: Verstärkte Zusammenarbeit.</strong> Die <a href=\"https://en.wikipedia.org/wiki/Enhanced_cooperation\">Enhanced Cooperation</a> erlaubt mindestens neun Mitgliedstaaten, innerhalb der EU-Strukturen tiefere Integration einzugehen, ohne die anderen. Schengen hat so angefangen, mit fünf Staaten und ist inzwischen auf 26 gewachsen. PESCO ist eine verstärkte Zusammenarbeit in der Verteidigung. Der Euro ist faktisch eine verstärkte Zusammenarbeit in der Währungspolitik. Wenn eine föderale Gruppe innerhalb der EU entstehen soll, ist das der Mechanismus: zuerst die Willigen, die anderen später.</p>\n<p><strong>Viertens: Die Verfassungskonvent-Option.</strong> Das Europäische Parlament hat im Juni 2022 formal einen Verfassungskonvent zur Vertragsänderung gefordert, nachdem die <a href=\"https://en.wikipedia.org/wiki/Conference_on_the_Future_of_Europe\">Conference on the Future of Europe</a> 2021 bis 2022 mit Bürgerpanelen 49 konkrete Reformvorschläge erarbeitet hatte. Darunter: Abschaffung der Einstimmigkeit in bestimmten Politikbereichen, Direktwahl der Kommissionspräsidentin, transnationale Listen bei EP-Wahlen. Die Mitgliedstaaten, vor allem kleinere, die ihr Veto nicht aufgeben wollen, haben das ignoriert. Aber die Forderung steht. Bei der nächsten Krise, die eine Vertragsreform plausibel macht, wird sie wieder aufgerufen.</p>\n<p><strong>Fünftens: Krise als Katalysator.</strong> Das ist der unangenehme Teil. Föderation passiert historisch, wenn das externe Umfeld sie erzwingt. Die Schweiz ist 1848 aus dem Sonderbund-Krieg heraus konstituiert worden, mitten im europäischen Revolutionsjahr. Die USA haben den Schritt von den Articles of Confederation zur Verfassung 1787 gemacht, weil die konföderale Struktur unter Handelsstreitigkeiten und Verschuldung zusammengebrochen war. Beide Föderationen sind in einer Krise entstanden. Die EU hat gerade eine Kombination von Krisen wie seit 1957 nicht: 2022 Russland-Invasion, 2025 US-Zölle und NATO-Rückzug unter Trump 2.0, Ungarn-Blockaden, wirtschaftlicher Abstand zu USA und China, Tech-Abhängigkeit. Irgendwann in den nächsten fünf bis fünfzehn Jahren wird eine dieser Krisen akut genug, dass sie politisch eine Vertragsänderung plausibel macht. Darauf wollen wir nicht warten. Aber wir sollten es nicht ausschließen.</p>\n<p>Der realistische Zeitplan, wie ich ihn sehe: 2025 bis 2030 kommt die Aktivierung der Passerelle für Teile der GASP, der digitale Euro wird ausgegeben, Wero etabliert sich als europäische Zahlungsinfrastruktur, die Verteidigungsindustrie konsolidiert sich unter dem <a href=\"https://en.wikipedia.org/wiki/European_Defence_Fund\">European Defence Fund</a> und dem 2025 beschlossenen 150-Milliarden-Euro-Loans-for-Arms-Fonds. 2030 bis 2040: Verfassungskonvent wird einberufen, verstärkte Zusammenarbeit unter den Willigen für tiefere Fiskalintegration, eine europäische Streitmacht wächst aus PESCO organisch heraus, die Capital Markets Union wird fertig. 2040 und darüber hinaus: voller Föderalvertrag, wahrscheinlich als Reaktion auf eine konkrete Krise die nicht anders lösbar ist.</p>\n<p>Vielleicht ist das zu optimistisch. Aber es ist nicht “nie”, sondern eine Sequenz, die auf bereits laufenden Prozessen aufbaut. Das ist der Unterschied zwischen Utopie und Richtung.</p>\n<hr>\n<h2 id=\"Eine-alte-Idee\"><a href=\"#Eine-alte-Idee\" class=\"headerlink\" title=\"Eine alte Idee\"></a>Eine alte Idee</h2><p>Bevor ich zum Schluss komme, kurz ein historisches Panorama. Die Idee eines vereinten Europas ist nicht Macron-Erfindung, nicht Schuman-Erfindung, nicht einmal eine Erfindung des 20. Jahrhunderts. Sie reicht weit zurück und ist mehrfach in verschiedenen Sprachen ausformuliert worden.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Victor_Hugo\">Victor Hugo</a> hat 1849 am Pariser Friedenskongress gesagt: <em>“Es wird ein Tag kommen, an dem die Vereinigten Staaten von Amerika und die Vereinigten Staaten von Europa einander gegenüberstehen und sich über das Meer die Hände reichen.”</em> Er hat während seines Exils auf Guernsey einen Baum gepflanzt mit der Erklärung, wenn dieser Baum reif sei, würden die Vereinigten Staaten von Europa existieren. Der Baum steht noch immer. 1867 in Genf haben Hugo, Giuseppe Garibaldi, John Stuart Mill und Michail Bakunin gemeinsam am Kongress für Frieden und Freiheit einen Appell für eine europäische Föderation verabschiedet. Bakunin: <em>“Um den Triumph von Freiheit, Gerechtigkeit und Frieden zu erreichen, gibt es nur einen Weg: die Vereinigten Staaten von Europa zu konstituieren.”</em></p>\n<p>Ein Österreicher gehört zu den wichtigeren 20. Jahrhundert-Figuren dieser Linie: <a href=\"https://en.wikipedia.org/wiki/Richard_von_Coudenhove-Kalergi\">Richard Coudenhove-Kalergi</a>, Gründer der Paneuropa-Bewegung 1923 in Wien. Seine Idee eines geeinten Europas wurde später in Frankreich und Italien aufgegriffen, hat aber mit Wien begonnen. <a href=\"https://en.wikipedia.org/wiki/Altiero_Spinelli\">Altiero Spinelli</a> hat unter Mussolinis Gefangenschaft 1941 das <a href=\"https://en.wikipedia.org/wiki/Ventotene_Manifesto\">Ventotene-Manifest</a> verfasst, die Gründungsschrift der Nachkriegs-Föderalistik. Aus dieser Linie kommt <a href=\"https://en.wikipedia.org/wiki/Schuman_Declaration\">Robert Schumans Erklärung</a> 1950, welche die europäische Gemeinschaft begründet hat. Aus dieser Linie kommt <a href=\"https://en.wikipedia.org/wiki/Jean_Monnet\">Jean Monnet</a>, der Architekt der praktischen europäischen Einigung.</p>\n<p>Und in der Gegenwart: <a href=\"https://en.wikipedia.org/wiki/J%C3%BCrgen_Habermas\">Jürgen Habermas</a> hat über zwanzig Jahre hinweg für einen europäischen Verfassungspatriotismus argumentiert. <a href=\"https://en.wikipedia.org/wiki/Guy_Verhofstadt\">Guy Verhofstadt</a>, ehemaliger belgischer Premier, ist eine der sichtbarsten föderalistischen Stimmen im EP. <a href=\"https://en.wikipedia.org/wiki/Mario_Draghi\">Mario Draghi</a>, ehemaliger EZB-Präsident und italienischer Premier, hat im Februar 2025 in einer Grundsatzrede bei der European Parliamentary Week in Brüssel gesagt: <a href=\"https://en.wikipedia.org/wiki/Mario_Draghi\"><em>“Die EU muss mehr und mehr so funktionieren, als wären wir ein Staat.”</em></a> Emmanuel Macron hat 2017 und 2024 an der Sorbonne Reden gehalten, die eine Föderation in allem außer dem Namen fordern. <a href=\"https://en.wikipedia.org/wiki/Enrico_Letta\">Enrico Letta</a> hat 2024 den Bericht <em>Much more than a market</em> vorgelegt mit konkreten Föderations-Vorschlägen. Der deutsche <a href=\"https://en.wikipedia.org/wiki/Cabinet_of_Olaf_Scholz\">Koalitionsvertrag 2021</a> hat europäischen Föderalismus explizit als Ziel aufgenommen. Und <a href=\"https://www.derstandard.at/story/3000000285818/ist-es-an-der-zeit-fuer-ein-united-states-of-europe\">DerStandard</a> publiziert in seinem Forum Beiträge mit der Überschrift <em>“Ist es an der Zeit für ein United States of Europe?”</em>.</p>\n<p>Moderne Bewegungen: die <a href=\"https://en.wikipedia.org/wiki/Union_of_European_Federalists\">Union Europäischer Föderalisten</a>, 1946 gegründet, immer noch aktiv. <a href=\"https://en.wikipedia.org/wiki/Volt_Europa\">Volt Europa</a>, eine paneuropäische Partei mit Mandatarinnen und Mandataren im Europäischen Parlament. Seit Trump 2.0 gewinnt all das Auftrieb.</p>\n<p>Eine 175 Jahre alte Linie, kein Außenseiter-Reflex, gerade wieder im politischen Zentrum, zum ersten Mal seit Schuman. Ich schreibe hier nichts was Victor Hugo nicht 1849 schon besser formuliert hat.</p>\n<hr>\n<h2 id=\"Was-bleibt\"><a href=\"#Was-bleibt\" class=\"headerlink\" title=\"Was bleibt\"></a>Was bleibt</h2><p><img src=\"/2026/04/25/european-federalism/what-remains.webp\" alt=\"Eine Kinderzeichnung: ein Globus, drumherum Kinder mit verschiedenen Hautfarben, die sich die Hände reichen\"></p>\n<p>Das Plakat hängt in keinen Schulen mehr. Oder vielleicht doch, ich weiß es nicht, vielleicht ist es durch andere Motive ersetzt worden, vielleicht täuscht mich einfach die Erinnerung.</p>\n<p>Was drauf war, war nie der Zustand. Es war die Richtung: Kinder, die sich auf einem Globus die Hände reichen, verschiedene Hautfarben, kein Hintergrund, der eine Nation über die andere stellt. Das war nie da. Das war gemeint.</p>\n<p>Ich bin nicht mehr acht. Ich weiß heute, dass die Erwachsenen, die das Plakat aufgehängt haben, auch nicht wussten, wie weit wir noch von dem Bild entfernt sind. Das ändert nichts daran, dass die Richtung die richtige war. Seit 2016 bewegen wir uns davon weg, das ist der Zustand. Die Frage ist, ob er das bleibt oder ob wir uns entscheiden, die Richtung wieder zu korrigieren.</p>\n<p>Meine Wette ist, dass wir es tun. Nicht weil die Zeichen gerade so stehen, die stehen furchtbar. Sondern weil die Alternative, das Weiter-Zerfallen, irgendwann auch in den kleinsten Nationen nicht mehr erträglich wird. Irgendwann entscheidet eine Generation zusammenzurücken, weil alles andere sie zerquetscht. Ich will Teil dieser Generation sein. Ich glaube, ich erlebe das noch.</p>\n<p>Und irgendwann, vielleicht in zehn Jahren, vielleicht in zwanzig, hängt in einer Klasse irgendwo in Europa wieder ein Plakat. Vielleicht anders gezeichnet, mit ein paar Ländern mehr, mit derselben Idee. Und ein Kind, acht Jahre alt, steht davor und lernt, dass es so gemeint ist.</p>\n<p>Das ist keine Prognose. Das ist eine Haltung. Und wenn du bis hierher gelesen hast, darfst du sie teilen.</p>\n",
            "tags": [
                "Austria Politics",
                "European Federalism",
                "EU",
                "Geopolitics",
                "Foreign Policy",
                "Defense",
                "European Integration",
                "United States of Europe",
                "Digital Sovereignty",
                "Capital Markets Union",
                "Swiss Model",
                "Democratic Reform",
                "Treaty Change",
                "Trump",
                "Russia"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2026/04/25/european-federalism/",
            "url": "https://tim.kicker.dev/2026/04/25/european-federalism/",
            "title": "I Still Believe in a United Europe",
            "date_published": "2026-04-25T12:00:00.000Z",
            "content_html": "<p><img src=\"/2026/04/25/european-federalism/thumbnail.webp\" alt=\"Thumbnail for blogpost\"></p>\n<p>In every classroom of my primary school years, there was a poster on the wall. A globe in the middle, and around it children with different skin colours reaching their hands across the planet. I have no idea which publisher or NGO produced it, UNICEF maybe, some standard piece of classroom décor, but it was everywhere. In the craft room, in the gym, above the blackboard in maths.</p>\n<p>And it said something. Not explicitly, just by sheer repetition: this is how the world is meant to be, this is how we build it, this is what it should look like when we are done.</p>\n<p>I grew up inside that world. Not as an ideal, as a backdrop. Racism was a topic from history books and eyewitness interviews, mostly overcome, with a few leftover pockets still to clean up. That was naive, I know that now. But it was the tone of the place back then: war in Europe was school material, the rules-based international order was just there like the weather, nobody talked about it. It was the background against which everything else happened.</p>\n<p>Then 2016 came.</p>\n<hr>\n<h2 id=\"The-crack\"><a href=\"#The-crack\" class=\"headerlink\" title=\"The crack\"></a>The crack</h2><p>Maybe 2016 is the wrong year and it really started earlier, maybe it started later, but when I look back at the past decade, 2016 is when the feeling shifted for me. Brexit in June, Trump’s first win in November. Two events almost nobody thought possible beforehand, in half a year.</p>\n<p>Then it accelerated faster than you could track. In 2020 the pandemic, which exposed everything: how fragile the supply chains were, how thin the common European response, how quickly every country we thought of as careful was ready to close borders and look out for itself. In 2022 Russia’s invasion of Ukraine. From that point onwards it was clear that peace in Europe, which my generation had treated as a baseline, was not a baseline. It was something that had been actively maintained since 1945. And we had not really been maintaining it ourselves. We had been living under the umbrella of an American security guarantee that nobody had actually guaranteed.</p>\n<p>Trump came back in 2024. Not as an accident this time, elected. In February 2025 <a href=\"https://en.wikipedia.org/wiki/JD_Vance\">JD Vance</a> gave a speech at the Munich Security Conference that is best read as a declaration of decoupling. The American Vice President criticised European governments for their “firewalls” against the far right, met separately with Alice Weidel of the AfD, and flipped, in one morning, the transatlantic binding that had been more or less unquestioned since 1945. Since then we have been in a situation where the scaffolding of my political socialisation (peace in Europe, American protection, a Western values community, European unification) looks fragile in all four elements at once.</p>\n<p>The poster in the classroom was not a document. It was a direction. And the direction has been moving the wrong way for almost ten years.</p>\n<hr>\n<h2 id=\"Where-I-stand\"><a href=\"#Where-I-stand\" class=\"headerlink\" title=\"Where I stand\"></a>Where I stand</h2><p>I am not writing this as neutral analysis. I have a position and I will state it plainly: I am for a European federal state. Not the Brussels of today with a slightly bigger budget, a real federal state. A common army. A common foreign policy. A common tax base. A commonly elected head of state, or a federal-council construction like Switzerland’s, more on that later. Everything that determines how Europe looks to the outside, on the European level. Everything that is culture, language, education, local politics, stays where it is.</p>\n<p>I say this clearly because for a long time in Austrian discourse this position was treated as slightly embarrassing. Pro-EU was fine, pro-federation was for cultural commentators and Macron fans. Since Trump 2.0 more people have been willing to say it out loud. Including me.</p>\n<p>One thing I want to be precise about, because the objection always comes: this is not the same as “United States of Europe on the American model”. The American model is one possible federation, not the only one. Switzerland is also a federal state, and it looks quite different: stronger cantonal autonomy, four official languages, direct democracy at every level. When I talk about a European federal state, I mean the Swiss pattern rather than the American one. I will come back to this.</p>\n<p>And I am aware that as a citizen of a small nation I am arguing for merging into something bigger. I know that is an emotional stop for many people. I understand it. I do not share it. In an Austria that is part of a European federal state I feel freer and safer than in an Austria that is nominally sovereign but factually dependent on American goodwill and Russian tolerance. I see myself more as European than Austrian. That is not a rejection of Austria. It is a ranking.</p>\n<hr>\n<h2 id=\"The-27-armies-arithmetic\"><a href=\"#The-27-armies-arithmetic\" class=\"headerlink\" title=\"The 27-armies arithmetic\"></a>The 27-armies arithmetic</h2><p>Take defence first, because it is the most concrete and because it is the domain that Trump 2.0 no longer volunteers to cover for us.</p>\n<p>EU member states together spend about <a href=\"https://www.sipri.org/databases/milex\">340 billion euros a year on their militaries</a>. The US spends about <a href=\"https://en.wikipedia.org/wiki/List_of_countries_by_military_expenditures\">900 billion</a>, roughly three times as much. Russia spends <a href=\"https://en.wikipedia.org/wiki/List_of_countries_by_military_expenditures\">about 150 billion</a>. That looks as if we could more or less defend ourselves, since our combined spending is larger than Russia’s. Then you look at what we actually get for it.</p>\n<p>The <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">Draghi report</a> that the European Commission commissioned in 2024 lays out the numbers. <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">Europe operates twelve different main battle tank types. The US produces one</a>. European countries source <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">78% of their defence procurement outside Europe, 63% of that from the US</a>. Less than a fifth of European defence spending is done collaboratively. In aggregate: we spend about a third of the US budget, and we get substantially less than a third of US operational capability for it, because everything is duplicated across 27 parallel systems that are not compatible with each other.</p>\n<p>The Austrian <a href=\"https://en.wikipedia.org/wiki/Austrian_Armed_Forces\">Bundesheer</a> illustrates this in miniature. <a href=\"https://en.wikipedia.org/wiki/Austrian_Armed_Forces\">Budget 4.2 billion euros (2025, including pensions), 1.3% of GDP. 25,000 active personnel, 125,600 reserve</a>. Six months of conscription. Every serious assessment I have read says the same thing: not well enough equipped to actually defend Austria, not NATO-interoperable enough to contribute meaningfully to a European coalition. Formally sovereign, practically in nobody’s league.</p>\n<p>And there is a second layer: the veto. Foreign policy decisions in the EU require unanimity. One member state can block everything. Hungary under <a href=\"https://en.wikipedia.org/wiki/Viktor_Orb%C3%A1n\">Orbán</a> did this on autopilot for sixteen years. Sanctions against Russia <a href=\"https://www.reuters.com/business/energy/hungary-slovakia-block-russian-sanctions-package-budapest-says-2025-06-23/\">repeatedly delayed and watered down</a>. Ukraine aid packages blocked for months until informal concessions to Orbán. <a href=\"https://en.wikipedia.org/wiki/Accession_of_Sweden_to_NATO\">Sweden’s NATO accession</a> blocked for months, first by Hungary then Turkey. Sanctions against the Paks II nuclear plant blocked by Hungary, because <a href=\"https://en.wikipedia.org/wiki/Viktor_Orb%C3%A1n\">Hungary depends on Russia for 85% of its fossil energy</a>.</p>\n<p>As I am writing this, Orbán has just lost. On <a href=\"https://en.wikipedia.org/wiki/2026_Hungarian_parliamentary_election\">12 April 2026</a> the pro-European Tisza Party under <a href=\"https://en.wikipedia.org/wiki/P%C3%A9ter_Magyar\">Péter Magyar</a> won a two-thirds majority, with 78.94% the highest turnout since the end of communism, the first election since 2006 not won by Fidesz. That is the rare good news. But the structural problem remains: a single captured member state can block the EU. Today Hungary is no longer that state, with some luck. Tomorrow it could be Slovakia under Fico, Austria under an FPÖ-led government, or some other national government we have not seen yet. The veto is not tied to Orbán. The veto is structural. And it remains a problem as long as it exists.</p>\n<p>That is the structural diagnosis: we spend enough money, but we are split 27 ways, and any single one can block collective action. In a period where the scaffolding itself is shifting. This is the scenario in which the question “more integration, or not” stops being rhetorical.</p>\n<p>A European federal state would change the problem at three levels. First: one army instead of 27. What the US does with 900 billion, we could do substantially more effectively with our 340 billion if we did not build every weapons system twelve times over. Second: one foreign policy, not 27 with vetoes. There are mechanisms for this that do not require a full constitutional revision. I will get to those. Third: one voice in negotiations with Washington, Beijing, Moscow. The weight of a continent. Exactly what we lack today.</p>\n<hr>\n<h2 id=\"Who-benefits-when-we-are-not-united\"><a href=\"#Who-benefits-when-we-are-not-united\" class=\"headerlink\" title=\"Who benefits when we are not united\"></a>Who benefits when we are not united</h2><p>I want to be careful here, because the next step in the argument often slides into conspiracy-thinking, and that is wrong. The world is not coordinated. But interests can align without anybody coordinating.</p>\n<p>Russia benefits from a fragmented EU. Moscow has stated this openly for two decades as strategic doctrine. What tends not to register in Austrian mainstream discourse is the concrete form this benefit takes.</p>\n<p>In December 2016, under Strache, the <a href=\"https://en.wikipedia.org/wiki/Freedom_Party_of_Austria\">FPÖ signed a formal cooperation agreement with Putin’s party United Russia</a>. Five-year term, signed in Moscow, reasonably well documented at the time, not renewed in 2021 but never formally denounced. The French <a href=\"https://en.wikipedia.org/wiki/National_Rally\">Rassemblement National</a> (then Front National) received a nine-million-euro loan from the First Czech-Russian Bank in Moscow in November 2014, which it used to prepare campaigns. Marine Le Pen confirmed the loan herself, though she described the lender as “a private bank” that stepped in where French banks had refused her. In October 2018, the Italian <a href=\"https://en.wikipedia.org/wiki/Lega_(political_party)\">Lega</a> had an audio recording from the Metropol Hotel in Moscow suggesting that <a href=\"https://www.theguardian.com/world/2019/jul/10/italian-far-right-league-secret-oil-deal-talks-with-russians\">an oil deal was meant to funnel 65 million euros into the party’s coffers</a>. The Italian prosecutor closed the case in 2023, concluding the goal was indeed financing but the money never actually flowed. Three European far-right parties, all three with documented Russian connections, all three opposed to European integration.</p>\n<p>Algorithmic amplification sits one layer below. Platforms optimise feeds for engagement. Engagement correlates with outrage, polarisation, extremism, not with accuracy. Documented in the 2021 <a href=\"https://en.wikipedia.org/wiki/Facebook_Papers\">Facebook Files</a> from leaked internal Meta research. The mechanism is neutral; the outcome is not. And when a Russian disinformation campaign like <a href=\"https://en.wikipedia.org/wiki/Doppelganger_(disinformation_campaign)\">Doppelgänger</a>, which has been running since May 2022 and was publicly exposed by the EU DisinfoLab, deliberately plants content that algorithms pick up, you get cooperation that does not need to be planned to function.</p>\n<p>The most concrete recent example: the <a href=\"https://en.wikipedia.org/wiki/2024_Romanian_presidential_election\">2024 Romanian presidential election</a>. The far-right outsider Călin Georgescu surprised everyone by winning the first round. The Romanian constitutional court then annulled the election because a Russian TikTok influence operation could be shown to have affected the outcome. No longer theoretical. A documented case, in an EU member state, within the last year and a half.</p>\n<p>The US side got its own profile through Trump 2.0. Vance in Munich was the most public instance, but already earlier, <a href=\"https://en.wikipedia.org/wiki/Elon_Musk\">Elon Musk</a>, operating at the top of the US administration’s government-efficiency operation, <a href=\"https://www.welt.de/debatte/kommentare/article255088056/Elon-Musk-Nur-die-AfD-kann-Deutschland-retten.html\">published an op-ed in <em>Welt am Sonntag</em> in December 2024</a> endorsing the AfD. In January 2025 he <a href=\"https://www.brusselstimes.com/1391093/musk-afd-eu-commission-to-monitor-risks-of-preferential-treatment\">hosted Alice Weidel in a livestream on his platform X</a>, which was treated as effective campaign help. The European Commission opened a DSA proceeding against X over preferential treatment.</p>\n<p>These are not two people planning in a back room. These are different actors with different motives whose interests align: everyone who benefits from a weak, fragmented Europe. Moscow strategically, Washington under Trump ideologically and on trade, Europe’s far-right parties on party politics, some tech oligarchs on regulatory grounds. None of them need to talk to each other to push in the same direction.</p>\n<p>A federal state would be the structural answer to this. Not primarily for moral reasons, for mechanical ones: majority decision-making makes it impossible for a single captured government to block the whole. What Orbán’s Hungary did for sixteen years would not have been possible in a federal state, because Hungary’s weight in a federal parliament would be proportionally small and a majority against it would be organisable. The convergence of interests can continue. But the leverage of individual actors would drop dramatically.</p>\n<hr>\n<h2 id=\"Because-we-are-not-one-market-we-do-not-build-tech-champions-anymore\"><a href=\"#Because-we-are-not-one-market-we-do-not-build-tech-champions-anymore\" class=\"headerlink\" title=\"Because we are not one market, we do not build tech champions anymore\"></a>Because we are not one market, we do not build tech champions anymore</h2><p>Ask any European under thirty when they last used a European tech service, and you get a long pause. Search engine: Google (US 🇺🇸). Laptop operating system: Windows or macOS (both US 🇺🇸). Phone operating system: iOS (US 🇺🇸) or Android (US 🇺🇸). Email: Gmail or Outlook (both US 🇺🇸). Video conference: Teams or Zoom (both US 🇺🇸). Cloud: AWS, Azure, Google Cloud (all US 🇺🇸). Social media: WhatsApp, Instagram, Snapchat (all US 🇺🇸), TikTok (US 🇺🇸 plus China 🇨🇳), X (US 🇺🇸). Payment card: Visa or Mastercard (both US 🇺🇸). AI: OpenAI, Anthropic, Google (all US 🇺🇸).</p>\n<p>The Draghi report puts the diagnosis in one sentence: Europe largely missed the digital revolution. Specifically: <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">only four of the fifty largest tech companies in the world are European</a>. There is <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">no EU company with a market capitalisation above 100 billion euros that was built from scratch in the last fifty years</a>. In the same period, six US companies were built from scratch with valuations above one trillion dollars: Apple, Microsoft, Amazon, Alphabet, Nvidia, Meta. <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">Thirty percent of European unicorns</a>, meaning startups that reached a one-billion-dollar valuation, relocated from Europe to the US between 2008 and 2021.</p>\n<p>The question is not whether this is because of lack of talent. Europe has top universities, plenty of engineers, deep research traditions. Europe has ASML (the only company in the world that produces cutting-edge semiconductor lithography), SAP (world-leading enterprise software), Airbus, Ericsson, Nokia, Spotify, Mistral. There is nothing structurally impossible about European tech. What is missing is scale.</p>\n<p>Why is scale missing? Because the European market is not one market but 27. 27 tax regimes, 27 corporate law systems, 27 insolvency frameworks, 27 labour law frameworks, 27 stock exchanges, 27 regulatory authorities in most sectors. A startup in Madrid that wants to scale across Europe has to navigate 27 separate legal systems. A startup in San Francisco that wants to scale nationally has a single internal market and a single currency. The Draghi report estimates that the fragmentation of the European internal market alone <a href=\"https://commission.europa.eu/topics/eu-competitiveness/draghi-report_en\">costs about ten percent of potential GDP every year</a>.</p>\n<p>The <a href=\"https://en.wikipedia.org/wiki/Capital_Markets_Union\">Capital Markets Union</a>, the EU project that has been trying to fix this fragmentation since 2015, is still not complete ten years later. <a href=\"https://en.wikipedia.org/wiki/Enrico_Letta\">Enrico Letta</a> delivered a report in 2024 on behalf of the European Council proposing a “28th regime”: an optional EU-wide legal framework for companies, which firms could voluntarily opt into instead of registering under a national system. Technically elegant. Politically blocked for over a year.</p>\n<p>A federation would cut through this knot, not because national systems disappear, but because a real common framework exists. Common corporate-law baseline, common capital-market supervision, common taxation at the federal level with national taxes underneath (as in Switzerland), a proper stock exchange that can compete with the New York Stock Exchange.</p>\n<p>You can see this beginning at the payments layer. The <a href=\"https://en.wikipedia.org/wiki/Digital_euro\">digital euro</a>, a central bank digital currency that the ECB has been developing since 2021, is scheduled for first issuance in 2029, <a href=\"https://www.ecb.europa.eu/euro/digital_euro/html/index.en.html\">assuming EU legislation passes in 2026</a>. The idea: a European retail payment instrument, not tied to Visa or Mastercard, privacy-by-design, with offline functionality. Independently of that, since July 2024 there has been <a href=\"https://en.wikipedia.org/wiki/Wero_(payment)\">Wero</a>, a pan-European mobile payment system by the European Payments Initiative, which has replaced Giropay, Paylib, Payconiq and iDEAL. 14 million users four months after launch, now with Revolut, N26, five Luxembourgish and five Belgian banks integrated, point-of-sale scheduled for 2026. The stated goal: “greater independence from American payment service providers”.</p>\n<p>These are not finished alternatives to the US platforms. But they are infrastructure being built, at a European level, under European rules. A federal state would be the structural prerequisite for these approaches to scale, instead of getting stuck in the usual 27-country mess.</p>\n<hr>\n<h2 id=\"Switzerland-already-exists-by-the-way\"><a href=\"#Switzerland-already-exists-by-the-way\" class=\"headerlink\" title=\"Switzerland already exists, by the way\"></a>Switzerland already exists, by the way</h2><p>Before I go further, I need to clear one objection out of the way that would otherwise sabotage the rest: <em>“But a European federal state means we become America, we lose our culture, Brussels rules everything, Austria turns into a district of Berlin.”</em> I know that objection. I take it seriously. And I think it does not describe the federation I actually mean.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Federalism_in_Switzerland\">Switzerland</a> has been a federal state since 1848. It has 26 cantons, <a href=\"https://en.wikipedia.org/wiki/Languages_of_Switzerland\">four official languages (German 62%, French 23%, Italian 8%, Romansh 0.5%)</a>, and a radical subsidiarity principle: most state authority stays with the cantons; the federal level has only the competencies that have been explicitly transferred to it. That is not the US model. It is almost the opposite of the US model.</p>\n<p>Concretely: the <a href=\"https://en.wikipedia.org/wiki/Federal_Council_(Switzerland)\">Federal Council</a> has seven members, serves as collective head of state, with the presidency rotating annually. No single imperial executive president. Since the Second World War the Federal Council has by convention been a permanent grand coalition including the larger parties and all language regions. The legislature is bicameral: National Council (proportional to population) and <a href=\"https://en.wikipedia.org/wiki/Council_of_States_(Switzerland)\">Council of States</a> (two seats per full canton regardless of population).</p>\n<p>The Council of States is where small-state protection is structurally entrenched. <a href=\"https://en.wikipedia.org/wiki/Council_of_States_(Switzerland)\">Appenzell Innerrhoden has 16,000 inhabitants and one seat; Zurich has 1.46 million and two</a>. The ratio between the smallest and largest canton, measured by inhabitants per seat, is 45.8 to 1. If an EU federation replicates this mechanic, Malta carries roughly the weight of Appenzell, Germany has proportionally more seats but nothing close to proportional to its population, and small states are structurally not overridable.</p>\n<p>Healthcare is cantonal. Education is cantonal (including language of instruction). Police is cantonal. Tax rates are cantonal plus a federal layer. Cultural policy is cantonal. Direct democracy exists at every level: mandatory referenda on constitutional changes and membership in international organisations, optional referenda triggered by 50,000 signatures for any federal law, popular initiatives for constitutional amendments triggered by 100,000 signatures.</p>\n<p>What is centralised? Foreign policy. Defence. Currency. Customs. Federal courts. External representation. These are the domains where a small state alone achieves nothing against a world of empires. These are also the domains where Europe today does not act as one. Exactly overlapping.</p>\n<p>And <a href=\"https://en.wikipedia.org/wiki/History_of_Switzerland\">Swiss consolidation</a> did not happen overnight. 1848 the federal state was proclaimed. 1850 the single currency arrived and the cantonal internal tariffs were abolished. 1851 brought unified postal service and telegraph. 1854 brought federal infrastructure projects. 1859 abolished mercenary service, a step towards having one army instead of several. 1874 the constitution was revised and federal powers extended. Twenty-seven years of gradual consolidation, not one big bang. This is a pattern that can work for the EU if we decide on it.</p>\n<p>The point is: federation is not a synonym for centralised superstate. It is a structural decision about which level gets which competencies. Switzerland has shown for 177 years how you combine this with deep internal diversity. When I say I want Europe to become a federal state, the Swiss pattern is what I aim for, not the American.</p>\n<hr>\n<h2 id=\"What-this-would-concretely-mean-for-Austria\"><a href=\"#What-this-would-concretely-mean-for-Austria\" class=\"headerlink\" title=\"What this would concretely mean for Austria\"></a>What this would concretely mean for Austria</h2><p>Abstract is easy. Let me try concrete: what would change for Austria under a European federal state.</p>\n<p><strong>The Bundesheer.</strong> Today: formally neutral, de-facto in NATO’s Partnership for Peace since 1995, participates in <a href=\"https://en.wikipedia.org/wiki/Permanent_Structured_Cooperation\">PESCO</a>, joined EU sanctions against Russia in 2022, not equipped enough for serious territorial defence, not NATO-interoperable enough to meaningfully contribute to coalition operations. Budget 4.2 billion euros per year. Too little for standalone defence, enough as a serious contribution to a European force if the structures fit.</p>\n<p>Under a federal state: the Bundesheer is absorbed into a European military. Not in addition, as replacement. The 4.2 billion still flows, but into an armaments system that is twelvefold more efficient because no European state is building its own tank line. Austrian officers have careers in European structures. Austrian territory is federal territory, not national-military, but precisely therefore defended collectively, not dependent only on Austrian force capacity. Mutual defence guaranteed not by a treaty but by constitutional structure.</p>\n<p><strong>Neutrality.</strong> Austria formally proclaimed neutrality in 1955 as a condition of the State Treaty. The <a href=\"https://en.wikipedia.org/wiki/Declaration_of_Neutrality\">Neutralitätsgesetz</a> prohibits joining military alliances and hosting foreign military bases. Formally in force. Practically perforated since 1995: EU membership including CFSP, PESCO participation, EU Article 42(7) TEU mutual defence clause, participation in sanctions against Russia. Our neutrality has been ritual, not reality, for thirty years. Switzerland, with its older tradition of armed neutrality, broke its own in February 2022 by joining EU sanctions against Russia. We are formally more neutral than Switzerland. In practice, not.</p>\n<p>Under a federal state: neutrality is honestly retired. No more dirty little secret that we belong to the Western security architecture while pretending to float above it. The SPÖ will find this emotionally hard. The ÖVP will be grateful. The population will be against it in polls at first, and then, as the alternative becomes clearly “dependent on American goodwill and Russian tolerance”, in favour. That is a shift that needs time. It is overdue.</p>\n<p><strong>Asylum and migration.</strong> The current <a href=\"https://en.wikipedia.org/wiki/Dublin_Regulation\">Dublin Regulation</a> loads the burden disproportionately on border states. Italy, Greece, Spain first, Austria occasionally as a transit state. Every migration wave becomes a national escalation spiral, because no one feels responsible. Redistribution among member states does not work, because it is based on voluntary solidarity and no one is voluntarily solidary.</p>\n<p>Under a federal state: federal asylum authority, federal funding, federal jurisdiction. Like the US, where no individual state runs its own immigration policy because it would obviously not work. The asylum decision is made by a common federal body. Housing and integration costs are distributed across all member states, based on population and economic capacity, not based on accident of which border a person crossed. This does not solve the political question of how many people to accept. That is a majority decision. But it does solve the structural injustice that border states carry all of it.</p>\n<p><strong>Economy and tech sovereignty.</strong> Austria is a small, export-dependent economy. A unified capital market, a Letta-28 regime, digital sovereignty, European scale: these are not abstractions for us, they are directly economically relevant. Austrian startups need the European market as a real market, not as 27 regulatory systems to navigate. If the digital euro is available in Austria from 2029 the way cash is, our payment system stops hanging on Visa and Mastercard. When the Capital Markets Union is finally complete, the Vienna stock exchange becomes proportionally smaller, but the European capital market as a whole offers Austrian companies a scale-up environment that Vienna alone never could.</p>\n<p><strong>Civil rights and democratic accountability.</strong> The most common objection to more Brussels is: “But then the Commission has even more power and nobody controls it.” The argument takes the status quo seriously, but it does not take seriously that the current arrangement is not meaningfully controlled by anyone either. The Commission is indirectly legitimated, the European Council is powerful but democratically opaque, the European Parliament has no right of initiative. A federal state with a directly elected executive, a parliament with real powers, and a strong European Court of Justice is not less democratic than what we have now. It is more. Because it becomes accountable.</p>\n<p><strong>Culture, education, language, local politics.</strong> All of this stays with Austria. The way education stays with the cantons in Switzerland, the way culture stays largely with the Länder in Germany. Nobody wants Brussels to regulate the Vienna Opera Ball or standardise the Austrian school curriculum. Most people confuse this out of reflexive fear: federation does not mean abolishing Austria. Federation means Austria stays Austria in everything that makes Austria, and becomes part of something larger in everything where Austria alone is too small.</p>\n<hr>\n<h2 id=\"The-serious-objections\"><a href=\"#The-serious-objections\" class=\"headerlink\" title=\"The serious objections\"></a>The serious objections</h2><p>I believe in this, but I am not naive. There are three objections to a European federal state that I take seriously and have to actually answer. If I do not, this is a manifesto, not an argument.</p>\n<p><strong>First: Germany dominates.</strong> The sociologist <a href=\"https://en.wikipedia.org/wiki/Wolfgang_Streeck\">Wolfgang Streeck</a> calls the EU a “liberal empire”: a hegemonic centre (Germany) imposing austerity conditions on the peripheries (Southern Europe), effectively gutting their democratic sovereignty. The classic case is Greece 2015, where the Troika forced a course on the country that no Greek government wanted to implement. If that is the implicit EU dynamic, Streeck argues, federation does not fix it. It formalises it.</p>\n<p>I take that seriously. The diagnosis is correct. But Streeck’s conclusion does not follow. Germany dominates the EU today through informal bilateral pressure, through its economic size, through ECB policy. That is power without democratic accountability to the people who suffer under it. A federation would formalise this dominance and precisely thereby make it accountable. Majority voting, a Council of States with small-state protection like Switzerland’s, a directly elected federal executive, a constitutional court with real powers. What Streeck wants instead is loose cooperation among sovereign small states. That is what we have. The result is Greece 2015. The argument is correct; the alternative Streeck proposes is the current status quo.</p>\n<p><strong>Second: democratic deficit.</strong> <a href=\"https://en.wikipedia.org/wiki/Andrew_Moravcsik\">Andrew Moravcsik</a>, a Princeton political scientist, has made the reverse argument: the EU is already democratic enough, because the Commission is carried by democratically elected national governments in the Council. That works for regulatory tasks, but it breaks for existential strategic decisions. Negotiation among 27 democracies works for trade rules. It does not work when Russia invades and Hungary blocks.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Dieter_Grimm\">Dieter Grimm</a>, a German constitutional law scholar, put this in a deeper form: democracy requires a demos, a political community that understands itself as such. Europe does not have one. Europeans identify primarily nationally. No demos, no democracy, therefore no federation.</p>\n<p>That is empirically true and still not the argument it wants to be. Switzerland since 1848 has run a federal state with four languages, different religious traditions, deep cantonal identities, and a Sonderbund war in 1847 fought right before federation. The Swiss demos developed with the federal state, not before it. Italian national identity emerged after unification, not before. German, after 1871. Identity is built by institutions, not before them. I personally see myself as more European than Austrian. That is anecdotal, but it illustrates the point: the demos emerges when the structures allow it. Whether it emerges fast enough is open. But the claim that it does not exist at all is refuted daily by the millions of Europeans who study, work, build relationships, and move between cities in different countries as a matter of course.</p>\n<p><strong>Third: Brexit as a warning.</strong> This is the most serious populist critique of federation, and it does not just come from the FPÖ, Lega, Rassemblement National, AfD: if even an EU member with opt-outs and its own currency leaves the union, what happens once we take the step to federation? A federation would trigger further Brexits and eventually destabilise the EU as a whole.</p>\n<p>This is a serious concern. Three counterpoints.</p>\n<p>First, Brexit was overdetermined by British pathologies that do not exist elsewhere in this combination: thirty years of EU-hostile tabloid press, a post-imperial self-image of sovereignty, a political class that sold every EU decision as Brussels diktat. On top of that an island identity, a separate common-law system, a separate currency. The structural conditions for a second Brexit exist nowhere else in Europe in this constellation.</p>\n<p>Second, the <a href=\"https://obr.uk/\">4% GDP loss after eight years is now documented</a>, and polling since 2022 consistently shows a majority of Britons considering Brexit a mistake. In 2016 leaving was a wager without precedent. In 2026 it is a concrete case with measurable costs. If the next populist party tries to sell “Italexit” or “Frexit”, it runs against a very concrete price tag.</p>\n<p>Third, and most importantly: what <em>did not</em> happen. When the UK left, 27 other states stayed, even though the populist temptation politically exists in nearly all of them. No one followed. That is a strong revealed preference. A federation would deepen the staying option.</p>\n<p>Brexit is not an argument against integration, but evidence that half integration is brittle. The real choice is between shared and meaningless sovereignty.</p>\n<hr>\n<h2 id=\"How-this-actually-happens\"><a href=\"#How-this-actually-happens\" class=\"headerlink\" title=\"How this actually happens\"></a>How this actually happens</h2><p>The standard reflex against federation is: “That would need treaty changes, unanimity, referenda, you cannot do it”. That is half right. A full treaty revision is hard. But federation is not a single big bang. It is a direction, and on this direction there are several tools that do not all have the same threshold.</p>\n<p><strong>First: we have already built a lot.</strong> The <a href=\"https://en.wikipedia.org/wiki/Eurozone\">euro</a> is a currency-federal structure covering 20 of 27 member states. <a href=\"https://en.wikipedia.org/wiki/Schengen_Area\">Schengen</a> is an internal-borders-federal structure covering 26 countries. The <a href=\"https://en.wikipedia.org/wiki/European_Union_Customs_Union\">customs union</a> is an external-trade-federal structure covering all 27. <a href=\"https://en.wikipedia.org/wiki/Frontex\">Frontex</a> has had 10,000 of its own border guards since 2019, operating as a federal executive for external border protection. <a href=\"https://en.wikipedia.org/wiki/Permanent_Structured_Cooperation\">PESCO</a>, the permanent structured defence cooperation, has been running since 2017 with 25 of 27 member states (Austria among them). <a href=\"https://en.wikipedia.org/wiki/Next_Generation_EU\">Next Generation EU</a>, the 750-billion-euro recovery instrument from 2020, was the first significant piece of EU common debt. It will be repaid from EU own resources until 2058. That is federal-scale fiscal policy in practice, even if it does not formally use the word.</p>\n<p>So we do not start from zero. We already have fragments of a federation. The question is how we finish building.</p>\n<p><strong>Second: passerelle clauses.</strong> The <a href=\"https://en.wikipedia.org/wiki/Treaty_of_Lisbon\">Treaty of Lisbon</a> contains mechanisms that let specific policy areas move from unanimity to qualified majority voting without a formal treaty amendment requiring national ratification. The general <a href=\"https://en.wikipedia.org/wiki/Passerelle_clause\">passerelle clause</a> in Article 48(7) TEU requires: European Council unanimous, plus European Parliament absolute majority, plus no national parliament objecting within six months. Article 31 TEU allows the same for parts of the Common Foreign and Security Policy. If we want to resolve the Hungarian blockage without running a full constitutional debate, this is the route. Yes, the passerelle itself requires unanimity to activate. But once activated, qualified majority applies permanently in that area.</p>\n<p><strong>Third: enhanced cooperation.</strong> <a href=\"https://en.wikipedia.org/wiki/Enhanced_cooperation\">Enhanced cooperation</a> allows at least nine member states to deepen integration within EU structures, without the others. Schengen started this way with five countries and has grown to 26. PESCO is enhanced cooperation on defence. The euro is in effect enhanced cooperation on currency. If a federal core emerges within the EU, this is the mechanism: the willing first, the others later.</p>\n<p><strong>Fourth: the constitutional convention.</strong> The European Parliament formally called for a <a href=\"https://en.wikipedia.org/wiki/Conference_on_the_Future_of_Europe\">constitutional convention</a> for treaty revision in June 2022, after the Conference on the Future of Europe produced 49 concrete reform proposals through citizens’ panels in 2021-2022. Among them: abolition of unanimity in specific policy areas, direct election of the Commission President, transnational lists in EP elections. Member states, especially the smaller ones unwilling to surrender their veto, ignored this. But the demand stands. At the next crisis that makes treaty reform plausible, it will be raised again.</p>\n<p><strong>Fifth: crisis as catalyst.</strong> This is the uncomfortable part. Federation historically happens when the external environment forces it. Switzerland in 1848 was constituted out of the Sonderbund war, in the middle of the European revolutionary year. The US made the jump from the Articles of Confederation to the Constitution in 1787 because the confederal structure had collapsed under trade disputes and debt. Both federations were crisis-born. The EU is currently facing a combination of crises not seen since 1957: the 2022 Russian invasion, 2025 US tariffs and NATO retreat under Trump 2.0, Hungarian blockages, widening economic gap to the US and China, tech dependence. Somewhere in the next five to fifteen years, one of these crises will be acute enough to make treaty reform politically plausible. We should not wait for it. But we should not exclude it either.</p>\n<p>The realistic sequence, as I see it: 2025 to 2030 brings the activation of the passerelle for parts of the CFSP, the digital euro is issued, Wero establishes itself as European payment infrastructure, the defence industry consolidates under the <a href=\"https://en.wikipedia.org/wiki/European_Defence_Fund\">European Defence Fund</a> and the 150-billion-euro loans-for-arms fund agreed in 2025. 2030 to 2040: a constitutional convention is convened, enhanced cooperation among the willing for deeper fiscal integration, a European military grows organically out of PESCO, the Capital Markets Union is completed. 2040 and beyond: a full federal treaty, probably in response to a concrete crisis that has no other resolution.</p>\n<p>Maybe that is too optimistic. But it is not “never”. It is a sequence built on processes already running. That is the difference between utopia and direction.</p>\n<hr>\n<h2 id=\"An-old-idea\"><a href=\"#An-old-idea\" class=\"headerlink\" title=\"An old idea\"></a>An old idea</h2><p>Before closing, a short historical panorama. The idea of a united Europe is not a Macron invention, not a Schuman invention, not even a twentieth-century invention. It reaches far back and has been articulated repeatedly in different languages.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Victor_Hugo\">Victor Hugo</a> said at the 1849 Paris Peace Congress: <em>“A day will come when we will see the United States of America and the United States of Europe face to face, reaching their hands to each other across the seas.”</em> He planted a tree during his exile on Guernsey and said that when the tree was mature, the United States of Europe would exist. The tree is still standing. In 1867 in Geneva, Hugo, Giuseppe Garibaldi, John Stuart Mill, and Mikhail Bakunin together signed an appeal for a European federation at the League of Peace and Freedom Congress. Bakunin: <em>“To achieve the triumph of liberty, justice and peace, only one path lies open: to constitute the United States of Europe.”</em></p>\n<p>An Austrian belongs to the key twentieth-century figures of this line: <a href=\"https://en.wikipedia.org/wiki/Richard_von_Coudenhove-Kalergi\">Richard Coudenhove-Kalergi</a>, founder of the Pan-Europa movement in Vienna in 1923. His vision of a united Europe was later picked up in France and Italy, but it began in Vienna. <a href=\"https://en.wikipedia.org/wiki/Altiero_Spinelli\">Altiero Spinelli</a> wrote the <a href=\"https://en.wikipedia.org/wiki/Ventotene_Manifesto\">Ventotene Manifesto</a> in 1941 while imprisoned by Mussolini, the founding document of postwar federalism. From this line comes <a href=\"https://en.wikipedia.org/wiki/Schuman_Declaration\">Robert Schuman’s declaration</a> of 1950, which founded the European Community. From this line comes <a href=\"https://en.wikipedia.org/wiki/Jean_Monnet\">Jean Monnet</a>, the architect of practical European unification.</p>\n<p>In the present: <a href=\"https://en.wikipedia.org/wiki/J%C3%BCrgen_Habermas\">Jürgen Habermas</a> has argued for a European constitutional patriotism for over twenty years. <a href=\"https://en.wikipedia.org/wiki/Guy_Verhofstadt\">Guy Verhofstadt</a>, former Belgian prime minister, is one of the most visible federalist voices in the EP. <a href=\"https://en.wikipedia.org/wiki/Mario_Draghi\">Mario Draghi</a>, former ECB President and Italian prime minister, said in a major speech at European Parliamentary Week in Brussels in February 2025: <a href=\"https://en.wikipedia.org/wiki/Mario_Draghi\"><em>“The EU must operate more and more as if we were one state.”</em></a> Emmanuel Macron gave Sorbonne speeches in 2017 and 2024 calling for federation in everything but name. <a href=\"https://en.wikipedia.org/wiki/Enrico_Letta\">Enrico Letta</a> delivered the 2024 report <em>Much More Than a Market</em> with concrete federation-adjacent proposals. The <a href=\"https://en.wikipedia.org/wiki/Cabinet_of_Olaf_Scholz\">German coalition agreement of 2021</a> explicitly included European federalism as a goal. And <a href=\"https://www.derstandard.at/story/3000000285818/ist-es-an-der-zeit-fuer-ein-united-states-of-europe\">DerStandard</a>, one of Austria’s larger newspapers, publishes forum pieces titled <em>“Is it time for a United States of Europe?”</em>.</p>\n<p>Modern movements: the <a href=\"https://en.wikipedia.org/wiki/Union_of_European_Federalists\">Union of European Federalists</a>, founded in 1946, still active. <a href=\"https://en.wikipedia.org/wiki/Volt_Europa\">Volt Europa</a>, a pan-European party with MEPs in the European Parliament. Since Trump 2.0, all of this has gained momentum.</p>\n<p>A 175-year-old line, not a fringe reflex, back in the political mainstream for the first time since Schuman. I am writing nothing here that Victor Hugo did not formulate better in 1849.</p>\n<hr>\n<h2 id=\"What-remains\"><a href=\"#What-remains\" class=\"headerlink\" title=\"What remains\"></a>What remains</h2><p><img src=\"/2026/04/25/european-federalism/what-remains.webp\" alt=\"A child&#39;s drawing: a globe with children of different skin colours holding hands around it\"></p>\n<p>The poster does not hang in any schools anymore. Or maybe it does, I don’t know, maybe it has been replaced with other motifs, maybe my memory is just cheating me.</p>\n<p>What was on it was never a state of the world. It was a direction: children reaching their hands across a globe, different skin colours, no background that placed one nation above the others. That was never the case. That was what was meant.</p>\n<p>I am not eight anymore. I know today that the adults who put up the poster did not know how far from the picture we still were either. That does not change the fact that the direction was the right one. Since 2016 we have been moving away from it, that is the state of things. The question is whether it stays that way, or whether we decide to correct the direction.</p>\n<p>My bet is we will. Not because the signs right now look promising, they look terrible. But because the alternative, continued fragmentation, eventually becomes unbearable even in the smallest nations. At some point a generation decides to come together, because everything else is crushing it. I want to be part of that generation. I think I will live to see it.</p>\n<p>And at some point, maybe in ten years, maybe in twenty, a poster hangs again in a classroom somewhere in Europe. Maybe drawn differently, maybe with a few more countries, but the same idea. And a child stands in front of it, eight years old, and learns that this is how it is meant to be.</p>\n<p>That is not a forecast. It is a stance. And if you have read this far, you are welcome to share it.</p>\n",
            "tags": [
                "Austria Politics",
                "European Federalism",
                "EU",
                "Geopolitics",
                "Foreign Policy",
                "Defense",
                "European Integration",
                "United States of Europe",
                "Digital Sovereignty",
                "Capital Markets Union",
                "Swiss Model",
                "Democratic Reform",
                "Treaty Change",
                "Trump",
                "Russia"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2026/03/08/coffeeshop/",
            "url": "https://tim.kicker.dev/2026/03/08/coffeeshop/",
            "title": "CoffeeShop - What Modern Wii-U Homebrew Development Looks Like",
            "date_published": "2026-03-08T00:00:00.000Z",
            "content_html": "<p><img src=\"/2026/03/08/coffeeshop/browse.webp\" alt=\"CoffeeShop\"></p>\n<p>The Wii U came out in 2012 and was largely considered a commercial failure. Nintendo moved on, shifted focus to the Switch and stopped caring about the platform. The modding community did not.</p>\n<p><a href=\"https://github.com/timkicker/coffeeshop\">CoffeeShop</a> is a mod manager for the Wii U. It runs directly on the console, connects to community-hosted repositories over Wi-Fi and lets you browse, download, install and manage <a href=\"https://github.com/wiiu-env/sdcafiine\">SDCafiine</a> mods without ever touching the SD card (<a href=\"https://youtu.be/FF4uRc8NvnI\">Video tutorial</a>). This post covers what that actually involved: the hardware, the toolchain, what it’s like to develop for a platform whose manufacturer actively doesn’t want you to and the various ways things broke before they worked.</p>\n<p>If you have never heard of Wii U homebrew before, that is fine. There is quite a bit of background worth covering before getting to the code.</p>\n<hr>\n<h2 id=\"What-it-does-and-why\"><a href=\"#What-it-does-and-why\" class=\"headerlink\" title=\"What it does and why\"></a>What it does and why</h2><p>Game mods on the Wii U work through a piece of software called <strong><a href=\"https://github.com/wiiu-env/sdcafiine\">SDCafiine</a></strong>, a plugin for Aroma (the custom firmware covered in a later section) that intercepts file reads during gameplay and redirects them to a folder on the SD card. When a game tries to load a model or texture from its internal storage, SDCafiine checks if there is a replacement file on the SD card first. If there is, it uses that instead. The original game data is untouched; the plugin just transparently swaps files at runtime.</p>\n<p>The standard workflow for installing a mod is: download a ZIP on your PC, extract it, figure out the correct folder structure, copy it to the right place on the SD card, put the card back in the console and hope nothing went wrong. For trying a few mods that is fine. For managing many mods across multiple games, comparing versions or switching between them, it gets tedious.</p>\n<p>CoffeeShop manages the <code>sdcafiine</code> folder for you. It pulls metadata from structured JSON repositories hosted on static web servers, presents mods as a browsable UI, handles downloads and extraction, tracks what is installed, detects version updates and checks for file conflicts between active mods. All of this runs on the Wii U itself over the console’s built-in Wi-Fi.</p>\n<p>The feature list:</p>\n<ul>\n<li>Browse and install mods from community-hosted repositories</li>\n<li>Per-game mod list with icons, tags and metadata</li>\n<li>Download queue with progress and error recovery</li>\n<li>Activate and deactivate mods without uninstalling</li>\n<li>Conflict detection between active mods</li>\n<li>Update badges when newer versions are available</li>\n<li>Settings tab with repo management, cache control and log viewer</li>\n</ul>\n<hr>\n<h2 id=\"The-hardware\"><a href=\"#The-hardware\" class=\"headerlink\" title=\"The hardware\"></a>The hardware</h2><p>Before getting into the development, it helps to understand the machine.</p>\n<p>The Wii U has two CPUs. The <strong><a href=\"https://wiiubrew.org/wiki/Hardware/Espresso\">Espresso</a></strong> is an IBM PowerPC 750-derivative with three cores at 1.24 GHz and runs games and homebrew. The <strong><a href=\"https://wiiubrew.org/wiki/Hardware/Starbuck\">Starbuck</a></strong> is an ARM processor that handles the OS internals. Homebrew runs exclusively on the PowerPC side.</p>\n<p>The two processors run separate operating systems that communicate over an internal interface. The PowerPC side runs <strong><a href=\"https://wiiubrew.org/wiki/Cafe_OS\">Cafe OS</a></strong>, Nintendo’s application environment where games and the home menu execute. The ARM side runs the <strong><a href=\"https://wiiubrew.org/wiki/IOS\">IOSU</a></strong>, a security-focused microkernel responsible for hardware access, boot verification and enforcing code signing. All digital signature checks happen in the IOSU. The Cafe OS cannot directly access sensitive hardware or cryptographic material; it has to ask the IOSU, which decides what to allow. This separation means that even if you find a bug in a game and execute arbitrary code on the PowerPC side, you do not automatically have control over the whole system.</p>\n<p>The storage situation is a mix. The main filesystem is proprietary, but the SD card slot is standard FAT32, accessible through POSIX-ish wrappers. Networking goes through the built-in Wi-Fi chip, exposed to homebrew via sockets.</p>\n<p>The CPU architecture is the most immediately relevant constraint. PowerPC 750 is a late-1990s chip design, pre-dating a lot of what modern C++ assumes about hardware. Different endianness from x86 (big-endian), no <a href=\"https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions\">SIMD extensions</a> you would normally reach for and you are cross-compiling from a modern development machine to a platform that stopped being manufactured over a decade ago. The toolchain handles most of this transparently, but it shapes what you can realistically do and what will compile without changes.</p>\n<h3 id=\"The-process-model\"><a href=\"#The-process-model\" class=\"headerlink\" title=\"The process model\"></a>The process model</h3><p>The Wii U’s process model is more constrained than anything you would encounter on a desktop OS and understanding it is essential for writing software that actually behaves correctly.</p>\n<p>Cafe OS does not allow arbitrary process creation. Instead, it reserves fixed memory regions for a predetermined set of process slots, identified by a <strong>RAMPID</strong> (a slot identifier that says where in memory a process lives). The slots are: kernel, root, a single background app slot, the home menu, an error display process and a single foreground app slot. That is the complete list. There is no <code>fork()</code>, no spawning additional processes at will. When you write a Wii U app, you are always the foreground app: RAMPID 7.</p>\n<p>At any given time, exactly one foreground app and one background app can be loaded. The foreground app gets the bulk of available memory. The background app runs with significantly less, restricted to a single CPU core. When the user presses the Home button, the currently running app moves to the background slot and the home menu takes the foreground. When they return to the app, the foreground slot switches back. If they launch a second app from the home menu, whatever was in the background slot gets evicted.</p>\n<p>This is not multitasking in the way a desktop OS does it. It is a carefully controlled slot-swap system. The OS keeps process data in memory for both slots simultaneously, but only executes one at a time.</p>\n<p>One more thing worth noting about RAM: the Wii U ships with 2 GB of DDR3. Cafe OS consumes 1 GB of that (half the total RAM) just to run. Games and homebrew get the other 1 GB. This was considered a significant design problem even at launch, notable enough that Nintendo reportedly planned SDK updates to reduce OS memory footprint. Those updates never shipped before the platform was discontinued.</p>\n<p>Additionally, the foreground app can claim an extra 40 MB of MEM1 while it is in the foreground. The moment the user switches to the home menu or a background app, that block gets automatically deallocated. The developer is responsible for managing this transition explicitly via callbacks.</p>\n<hr>\n<h2 id=\"What-the-Wii-U-learned-from-the-Wii\"><a href=\"#What-the-Wii-U-learned-from-the-Wii\" class=\"headerlink\" title=\"What the Wii U learned from the Wii\"></a>What the Wii U learned from the Wii</h2><p>The Wii U’s OS design makes a lot more sense when you know what it replaced.</p>\n<p>The original Wii ran what Nintendo called <a href=\"https://duckduckgo.com/?t=ffab&q=wii%20ios&ia=web\">IOS</a> (the ARM-side operating system. No, not the one on the iPhone) as a set of versioned modules. Every piece of software, including games on disc, had a specific IOS version hardcoded into it. When a game booted, the ARM processor shut down and restarted with the IOS version that particular game required. This meant that multiple IOS versions coexisted on the console, that game discs often shipped with system update partitions to install the version they needed and that the ARM OS effectively rebooted every time you launched a game.</p>\n<p>It also meant there was no shared, stable OS for PowerPC-side code to rely on. On the Wii, each game included its own copy of the system libraries, statically linked into the binary. There was no process isolation. No common kernel supervising applications. No shared address space management. A game on the Wii ran on essentially bare metal, with full hardware access and whatever runtime it bundled.</p>\n<p>The most visible consequence of this was the Home button menu. When you pressed Home during a Wii game, the overlay that appeared was not part of the console’s OS. It was <strong>part of the game disc itself</strong>. Nintendo shipped a standard implementation of the Home Menu that developers were expected to include, but it was bundled per-game. This is why some third-party Wii games had subtly different Home Menu layouts, slightly different behavior or missing features that first-party titles had: the developers had varying degrees of attention to that part of the bundle.</p>\n<p>The Wii U fixed all of this. Cafe OS is a proper shared kernel. Games link dynamically against system libraries that live in the console’s memory, not in their own package. The Home Menu is an independent OS process (RAMPID 5) that the kernel manages, it has nothing to do with whatever game is running. You press Home and Cafe OS transitions the foreground slot; the game does not get a say in what that looks like. The OS-level functions that the Wii Menu had to include: version tracking, update management, process control etc. were moved out of the menu app and into Cafe OS itself.</p>\n<p>The IOSU side also changed significantly. Rather than a versioned, per-game ARM OS, the Wii U has a single unified IOSU that all software shares. It handles hardware access and security enforcement. Games cannot bypass it or bring their own version.</p>\n<p>The tradeoff the Wii U made for this cleaner design: 1 GB of RAM permanently allocated to running all of this. On a 2 GB console that hurts. The Wii’s approach was chaotic but it did not cost you half your addressable memory.</p>\n<hr>\n<h2 id=\"Developing-against-the-manufacturer\"><a href=\"#Developing-against-the-manufacturer\" class=\"headerlink\" title=\"Developing against the manufacturer\"></a>Developing against the manufacturer</h2><p>Nintendo has never been friendly toward homebrew. Their legal track record with fan-games, chip manufacturers and emulator developers <a href=\"https://www.suedbynintendo.com/\">is well-documented</a>. They do not openly publish SDKs, do not document the hardware publicly and include mechanisms in every console designed to prevent unsigned code from running.</p>\n<p>The technical mechanism is called a <strong>chain of trust</strong>. The <a href=\"https://wiiubrew.org/wiki/Boot_process\">boot ROM</a>, burned directly into hardware and unmodifiable, checks the digital signature of the next boot stage before executing it. That stage checks the signature of the one after it. This extends all the way to the application level: every piece of software that runs on a Wii U must be signed by Nintendo’s private key. Without that signature, the system refuses to execute it. Since Nintendo’s private key is not public, you cannot simply produce valid signatures for your own code. The only way to run unsigned software is to find and exploit a bug in the system that bypasses the signature check.</p>\n<p>This creates a specific development dynamic. Every piece of infrastructure the homebrew community uses: every header file, every system call wrapper, every emulator was built by reverse engineering. The <a href=\"https://wiiubrew.org/wiki/Main_Page\">WiiUBrew wiki</a> is the main repository for this reverse-engineered knowledge. The people who wrote <a href=\"https://github.com/devkitPro/wut\">WUT</a> (the main Wii U homebrew SDK) had to figure out what the OS system calls actually do by observing behavior, not by reading documentation. The Cemu emulator, which is the main development tool for Wii U homebrew, was built the same way.</p>\n<p>There is also a persistent legal ambiguity. In most jurisdictions, modifying hardware you own is legal. Running custom code on a device you own is legal. Distributing tools that enable this sits in a grey area that Nintendo has historically been aggressive about. Aroma, the custom firmware most Wii U homebrew requires, only runs if the user has already applied an exploit to their own console. The software itself does not ship with exploits or copyrighted Nintendo code. Whether that is sufficient legal cover depends heavily on jurisdiction and circumstance.</p>\n<p>Practically, this means building on shared infrastructure that could theoretically be targeted at any point, using tools with no official support if something breaks and working on a platform where the manufacturer is actively working against you. It also means the community that has formed around it is genuinely knowledgeable and collaborative in ways that official ecosystems often are not, because everyone is figuring things out together.</p>\n<p>CoffeeShop itself does not contain Nintendo’s code. It is a C++ application that runs in the Aroma environment using community-maintained SDKs. It is a third-party software for a platform and does not enable piracy. But the context matters.</p>\n<hr>\n<h2 id=\"Aroma-and-the-entry-point\"><a href=\"#Aroma-and-the-entry-point\" class=\"headerlink\" title=\"Aroma and the entry point\"></a>Aroma and the entry point</h2><p>Getting homebrew to run on the Wii U at all requires bypassing Nintendo’s code signing. For most of the Wii U’s homebrew history, this meant using a browser exploit on every boot or relying on a vulnerability in a downloaded Nintendo DS game to inject code at startup (a technique called <a href=\"https://wiiubrew.org/wiki/Haxchi\">haxchi</a>). These approaches worked but were fragile, hard to maintain and had limitations: you could not easily run plugins and homebrew applications at the same time and the whole setup had to be bootstrapped again if something went wrong.</p>\n<p>The current standard is <strong><a href=\"https://aroma.foryour.cafe/\">Aroma</a></strong>, a custom firmware environment developed over several years by <a href=\"https://github.com/Maschell\">Maschell</a>. Aroma installs persistently to the SD card. After a one-time setup (which does require using an exploit, but only once), it starts automatically on every boot. The original Nintendo home menu keeps working normally. Official games run as usual. Aroma sits as a layer between the OS and everything running on top of it.</p>\n<p>Technically, Aroma introduces two layers of extensibility. <strong>Aroma Modules</strong> are persistent pieces of code that stay resident in memory and can export functions to other components. One module handles kernel-level access, another handles patching OS functions, another provides the plugin backend. These run at all times in the background.</p>\n<p>On top of modules, Aroma provides a <strong>plugin system</strong>. Plugins are loaded from the SD card and can intercept and modify OS behavior at runtime, including during gameplay. SDCafiine, the file-redirection plugin that mod support is built on, is an Aroma plugin. So is the component that makes homebrew apps show up on the home menu.</p>\n<p>For app distribution, Aroma introduced the <strong>.wuhb</strong> (Wii U Homebrew Bundle) format. A <code>.wuhb</code> file packages the executable, app metadata (name, icon, author) and any content files the app needs into a single file. Place it on the SD card in the right folder and Aroma’s home menu integration will display it as a launchable app. This is the format CoffeeShop is distributed as.</p>\n<p>For developers, Aroma means a reasonably stable API maintained by people who care about backwards compatibility. The alternative would be targeting raw system calls that can change between firmware versions with no notice.</p>\n<p>One important consequence: the Home button is intercepted by Aroma before it reaches any application. <code>VPAD_BUTTON_HOME</code> never arrives in homebrew code. This has real implications for exit handling, covered in detail below.</p>\n<hr>\n<h2 id=\"The-toolchain\"><a href=\"#The-toolchain\" class=\"headerlink\" title=\"The toolchain\"></a>The toolchain</h2><p>WUT (Wii U Toolchain) is the homebrew SDK for the Wii U. It provides C&#x2F;C++ wrappers around the native OS system calls. Without WUT you would be manually resolving function addresses from symbol tables and calling them with the correct PowerPC calling convention. WUT abstracts that into usable headers: <code>coreinit</code> for core OS functions, <code>ProcUI</code> for process management, <code>vpad</code> for gamepad input, <code>nn::ac</code> for network connections, <code>nsysnet</code> for sockets, <code>sysapp</code> for launching system applications.</p>\n<p>Understanding why WUT exists the way it does requires a brief detour into how Wii U executables work. The native executable format is RPX, a modified ELF with compressed sections and Windows-style dynamic linking. Libraries use the same format with a different extension: RPL. All of the system libraries ( <code>coreinit.rpl</code>, <code>gx2.rpl</code>, <code>vpad.rpl</code>, <code>nsysnet.rpl</code> and dozens more) live in the console’s memory, permanently loaded. When a game or app launches, the OS loader dynamically links it against those libraries. <code>coreinit.rpl</code> is loaded first, before even the main executable, because everything else depends on it for memory management and thread primitives.</p>\n<p>This is the opposite of how the Wii worked. On the Wii, each game statically bundled its own copy of every library it needed. On the Wii U, the libraries are shared OS infrastructure. The consequence for homebrew is that WUT provides stub libraries to link against at build time and the real resolution happens at runtime on the console against whatever <code>coreinit.rpl</code> and friends are actually loaded there. You call <code>OSDynLoad_Acquire(&quot;gx2.rpl&quot;, &amp;handle)</code> and <code>OSDynLoad_FindExport(handle, 0, &quot;GX2Init&quot;, &amp;fn)</code> to get a function pointer, or you use WUT’s headers and the linker handles it automatically.</p>\n<p><a href=\"https://devkitpro.org/\">devkitPro</a> is the package manager that provides the actual compiler. <a href=\"https://devkitpro.org/wiki/devkitPPC\">devkitPPC</a> is the specific toolchain for PowerPC targets. It is a GCC cross-compiler that runs on x86_64 Linux, macOS or Windows and produces PowerPC binaries. The C standard library is newlib, not glibc. Some standard library functions you would expect to just work are absent or behave differently. Dynamic linking does not exist for homebrew in the traditional sense; the RPX format handles it through the OS loader, but you cannot use shared libraries you built yourself, only the system RPLs. This means binary size grows with every third-party library added, though on modern SD cards this is not a meaningful constraint.</p>\n<p>The most notable absence is <code>std::filesystem</code>. Every directory operation is POSIX: <code>opendir</code>&#x2F;<code>readdir</code>&#x2F;<code>stat</code>&#x2F;<code>rename</code>&#x2F;<code>mkdir</code>. This affects more than convenience: every recursive directory walk, every existence check and every move or delete is written by hand. The recursive <code>rmrf()</code> that uninstalls a mod is about 20 lines of POSIX calls that <code>std::filesystem::remove_all</code> would replace with one. <code>std::thread</code> is similarly unavailable; threading goes through <code>OSThread</code> from <code>coreinit</code>. <code>fopen()</code> and the rest of stdio work fine via WUT’s wrappers. For sockets, <code>read()</code>&#x2F;<code>write()</code> do not work on the Wii U, use <code>recv()</code>&#x2F;<code>send()</code> instead.</p>\n<p><a href=\"https://devkitpro.org/wiki/portlibs\">portlibs</a> provides additional libraries cross-compiled for PowerPC: SDL2, libcurl, zlib, libpng, freetype, mbedTLS and more. These are the same libraries as on any platform, just compiled for the target.</p>\n<p>The build system is CMake with <code>wut.cmake</code> included. One footgun: you must invoke <code>/opt/devkitpro/portlibs/wiiu/bin/powerpc-eabi-cmake</code> rather than plain <code>cmake</code>. devkitPro provides its own wrapper binary that sets the toolchain file and environment variables correctly. Running plain <code>cmake</code> produces subtly broken builds or fails to find portlibs entirely. The two relevant output steps:</p>\n<ul>\n<li><code>wut_create_rpx()</code> produces a <code>.rpx</code> file, the Wii U’s native executable format. It is based on ELF (the same format Linux uses for binaries) with Nintendo-specific extensions.</li>\n<li><code>wut_create_wuhb()</code> packages the RPX plus a content folder (fonts, images, config files) into a <code>.wuhb</code> (Wii U Homebrew Bundle). This is the distribution format Aroma uses.</li>\n</ul>\n<p>The content folder is embedded into the bundle and accessible at <code>/vol/content/</code> at runtime as a read-only filesystem. Writable data goes directly to the SD card. The <code>.wuhb</code> goes to <code>SD:/wiiu/apps/coffeeshop/coffeeshop.wuhb</code> and Aroma’s home menu integration picks it up automatically as a launchable app.</p>\n<p>Compiler flags: <code>-mcpu=750 -meabi -mhard-float</code>. C++ exceptions can be enabled but have a performance cost. RTTI is optional. Static library link order in CMake matters: <code>wut</code> must be last in the target link libraries list or the linker produces mysterious undefined reference errors.</p>\n<p>One consequence of developing for both Cemu and real hardware is that hardware-specific initialization (network bring-up, socket library init) is guarded behind a <code>BUILD_HW</code> compile flag in my case. In Cemu builds, those code paths are compiled out entirely. This is why certain bugs only appeared on hardware: the code triggering them was not present in the emulator build at all. It is a clean separation, but it means the emulator and hardware builds are not identical binaries.</p>\n<hr>\n<h2 id=\"Starting-the-project\"><a href=\"#Starting-the-project\" class=\"headerlink\" title=\"Starting the project\"></a>Starting the project</h2><p>The stack was C++17, <a href=\"https://libsdl.org/\">SDL2</a> for rendering and UI, libcurl for HTTP, nlohmann&#x2F;json for JSON parsing. The first working build had SDL2 initialization, a window, VPAD input reading and a basic config structure.</p>\n<p>Most of the development happened in <strong><a href=\"https://cemu.info/\">Cemu</a></strong>, a Wii U emulator for Linux, macOS and Windows. Cemu loads <code>.wuhb</code> files directly, maps the SD card to a folder on the host machine and makes iteration fast: build, reload, observe, repeat, without touching real hardware. It is itself a product of reverse engineering work by the community. For most development purposes, behavior in Cemu matches behavior on hardware. For some things it does not, which is why hardware testing still matters for every release, particularly for anything involving networking, filesystem operations or process lifecycle. All three of the exit freezes described later were hardware-only bugs that did not reproduce in Cemu.</p>\n<p>Getting that first build running in Cemu took longer than expected because the CMake setup for WUT has footguns around how it expects devkitPro environment variables to be set. Once sorted, iteration got faster.</p>\n<p>The architecture settled into clear components early: a repository system to fetch and parse mod metadata, an image cache for thumbnails, a download queue with a background worker thread, a filesystem layer to handle installation and activation, a conflict checker and an SDL2 UI that surfaces all of this.</p>\n<hr>\n<h2 id=\"The-repository-format\"><a href=\"#The-repository-format\" class=\"headerlink\" title=\"The repository format\"></a>The repository format</h2><p>The repo format i designed is pretty straight-forward: a <code>repo.json</code> on any static web server lists available games:</p>\n<pre><code class=\"highlight json\"><span class=\"punctuation\">&#123;</span>\n  <span class=\"attr\">&quot;formatVersion&quot;</span><span class=\"punctuation\">:</span> <span class=\"number\">1</span><span class=\"punctuation\">,</span>\n  <span class=\"attr\">&quot;games&quot;</span><span class=\"punctuation\">:</span> <span class=\"punctuation\">[</span>\n    <span class=\"punctuation\">&#123;</span> <span class=\"attr\">&quot;id&quot;</span><span class=\"punctuation\">:</span> <span class=\"string\">&quot;mario-kart-8&quot;</span><span class=\"punctuation\">,</span> <span class=\"attr\">&quot;meta&quot;</span><span class=\"punctuation\">:</span> <span class=\"string\">&quot;https://example.com/mario-kart-8/game.json&quot;</span> <span class=\"punctuation\">&#125;</span>\n  <span class=\"punctuation\">]</span>\n<span class=\"punctuation\">&#125;</span></code></pre>\n\n<p>Each <code>game.json</code> contains game metadata (name, title IDs for different regions, icon URL) and a list of mods. Each mod entry has: ID, name, author, version, download URL (a ZIP), thumbnail, screenshots, tags, license, requirements and changelog. The <code>formatVersion</code> field exists so future breaking changes can be detected and handled gracefully.</p>\n<p>Repos can be hosted anywhere that serves raw files: GitHub, Gitea, a VPS. Multiple repos are merged at runtime, so a user can pull from several sources simultaneously. The template repo includes a validation script and a GitHub Action that checks structure on every pull request.</p>\n<p>One early trap: the test repo was hosted on Gitea. The URLs being used were <code>/src/branch/main/</code> format, which serves the HTML page for the file, not the raw content. Gitea raw URLs use <code>/raw/branch/main/</code>. Every repository URL had to be corrected. Not interesting, but the kind of thing that wastes some time.</p>\n<hr>\n<h2 id=\"The-process-management-loop\"><a href=\"#The-process-management-loop\" class=\"headerlink\" title=\"The process management loop\"></a>The process management loop</h2><p>The fixed process slot model described earlier has a direct consequence for how every Wii U application must be structured.</p>\n<p>Because the OS manages foreground and background transitions at the kernel level, your application cannot just run a game loop and exit when it wants. It has to participate in the OS’s state machine for as long as it is alive. The mechanism for this is ProcUI.</p>\n<p><code>ProcUIProcessMessages()</code> is the function that drives this. Called once per frame, it returns one of four states:</p>\n<pre><code class=\"highlight plaintext\">PROCUI_STATUS_IN_FOREGROUND      → normal operation, render and update\nPROCUI_STATUS_RELEASE_FOREGROUND → OS needs the foreground; free MEM1 NOW\nPROCUI_STATUS_IN_BACKGROUND      → suspended, running on one core, minimal work only\nPROCUI_STATUS_EXITING            → OS wants the app gone; clean up and call SYSLaunchMenu()</code></pre>\n\n<p>The <code>RELEASE_FOREGROUND</code> state is the one that catches developers off guard. When the user presses the Home button, the OS does not just take the foreground. It first asks your application to release it. Your app must respond by freeing MEM1 resources and acknowledging the transition. If it does not respond, the OS waits. It does not time out. It just waits.</p>\n<p>WUT wraps all of this in <code>WHBProcIsRunning()</code>, which returns false when the EXITING state is reached. The minimal version of the main loop is:</p>\n<pre><code class=\"highlight cpp\"><span class=\"keyword\">while</span> (<span class=\"built_in\">WHBProcIsRunning</span>()) &#123;\n    <span class=\"built_in\">update</span>();\n    <span class=\"built_in\">render</span>();\n&#125;\n<span class=\"built_in\">WHBProcShutdown</span>();</code></pre>\n\n<p>This is not optional infrastructure. If you build your own exit condition and break out of the loop before ProcUI has naturally signaled shutdown, <code>WHBProcShutdown()</code> will hang. This was the root cause of the third freeze in the exit problem described below.</p>\n<p>The other important constraint: on the Wii U, you never exit by returning from <code>main()</code>. The OS always needs to know what to launch next. Exiting always goes through <code>SYSLaunchMenu()</code> (or a similar sysapp call), which queues a transition request that ProcUI will eventually deliver as the EXITING state. The app loop drains to a halt through the message system rather than through a direct return path.</p>\n<hr>\n<h2 id=\"Networking\"><a href=\"#Networking\" class=\"headerlink\" title=\"Networking\"></a>Networking</h2><p>Network initialization is explicit and manual. <code>nn::ac::Initialize()</code> and <code>nn::ac::Connect()</code> bring up the Wi-Fi connection. <code>socket_lib_init()</code> initializes the socket stack. At shutdown, both must be finalized in order: <code>socket_lib_finish()</code> first, then <code>nn::ac::Finalize()</code>. Skip this and <code>WHBProcShutdown()</code> hangs. This was the second freeze.</p>\n<p>libcurl works well on the Wii U with two important caveats. SSL certificate verification must be disabled (<code>CURLOPT_SSL_VERIFYPEER</code> set to 0) because there is no CA bundle available on the platform. This is a known platform limitation. Additionally, always set connection timeouts and low-speed limits. Without them, a stalled download hangs the worker thread indefinitely.</p>\n<p>Progress reporting uses <code>CURLOPT_XFERINFOFUNCTION</code>. The callback does double duty: it updates the progress shown in the download queue UI and it checks a cancellation flag. If the flag is set, the callback returns 1, which tells libcurl to abort immediately. This is the correct mechanism for stopping a download thread: do not try to kill it from outside, tell curl to stop cooperating and let the thread exit naturally.</p>\n<hr>\n<h2 id=\"SDL2-on-the-Wii-U\"><a href=\"#SDL2-on-the-Wii-U\" class=\"headerlink\" title=\"SDL2 on the Wii U\"></a>SDL2 on the Wii U</h2><p>SDL2 via portlibs runs well. The renderer backend is OpenGL ES internally, but that is transparent through the SDL2 abstraction. SDL2_ttf handles fonts, SDL2_image handles PNG and JPG loading, SDL2_mixer handles audio.</p>\n<p>The most important SDL2 performance rule: <code>SDL_CreateTextureFromSurface</code> is expensive. Never call it per frame like i did at first (yeah i know…). The pattern throughout CoffeeShop is to create textures once and cache them, then call <code>SDL_RenderCopy</code> in the render loop. For text, <code>TTF_RenderUTF8_Blended</code> produces a surface, that surface becomes a texture and the texture stays alive as long as the text content does not change.</p>\n<p>SDL texture creation must happen on the main thread. This matters for the image cache: a background thread fetches image data via libcurl and writes raw bytes to the SD card cache, then sets an atomic flag. The main thread checks the flag and creates the SDL texture on the next frame. Moving texture creation into the background thread causes crashes.</p>\n<p>Semi-transparent overlays require setting <code>SDL_SetRenderDrawBlendMode</code> to <code>SDL_BLENDMODE_BLEND</code> before rendering the overlay rectangle, then resetting it afterward. Without this, the default blend mode does not composite correctly and text behind the overlay bleeds through.</p>\n<hr>\n<h2 id=\"Thumbnail-handling\"><a href=\"#Thumbnail-handling\" class=\"headerlink\" title=\"Thumbnail handling\"></a>Thumbnail handling</h2><p>Thumbnails presented two problems. First, loading image data from the network on every start would be slow. The image cache writes raw bytes to <code>SD:/wiiu/apps/coffeeshop/cache/</code> on first download and loads from there on subsequent starts.</p>\n<p>Second, aspect ratio. <code>SDL_RenderCopy</code> without a source rectangle scales the image to fill the entire destination rectangle, stretching anything that is not exactly the right dimensions. The fix is a center crop:</p>\n<pre><code class=\"highlight cpp\"><span class=\"type\">int</span> srcH = (texture_width * target_height) / target_width;\nSDL_Rect srcRect = &#123;<span class=\"number\">0</span>, <span class=\"number\">0</span>, texture_width, srcH&#125;;\n<span class=\"built_in\">SDL_RenderCopy</span>(renderer, texture, &amp;srcRect, &amp;destRect);</code></pre>\n\n<p>This scales to the full target width and crops vertically from the top, preserving aspect ratio while filling the card completely.</p>\n<hr>\n<h2 id=\"Input-handling\"><a href=\"#Input-handling\" class=\"headerlink\" title=\"Input handling\"></a>Input handling</h2><p>VPAD is the WUT API for the Wii U GamePad. <code>VPADRead()</code> fills a <code>VPADStatus</code> struct with button state and analog stick values. Buttons are bitmasks. As noted, <code>VPAD_BUTTON_HOME</code> never arrives; Aroma intercepts it. Exit must go through <code>SYSLaunchMenu()</code>.</p>\n<p>Analog sticks return float values from -1.0 to 1.0. There is no automatic deadzone, so you implement your own to prevent drift on worn hardware. There is also no automatic key repeat for held buttons, so navigation repeat requires manual timer tracking.</p>\n<p>Grid navigation uses modulo arithmetic for row and column calculation. Overflow navigation (pressing right at the end of a row advances to the next game, pressing left at the start goes to the previous) was added after initial testing and makes the browse view noticeably more comfortable than requiring a dedicated game-select button.</p>\n<p>There was a button conflict with the Y button. It was originally mapped to both the download queue (in the browse tab) and deinstall (in the installed tab). Switching tabs while the queue was visible produced confusing behavior. The download queue toggle moved to Plus and Y became exclusively an installed-tab action.</p>\n<hr>\n<h2 id=\"The-download-queue\"><a href=\"#The-download-queue\" class=\"headerlink\" title=\"The download queue\"></a>The download queue</h2><p>The queue runs a background worker thread. The main loop pushes download requests into a thread-safe queue. The worker picks them up, runs the curl transfer to a temporary file, validates the ZIP magic bytes, extracts to the sdcafiine folder and writes a <code>modinfo.json</code> into the mod directory:</p>\n<pre><code class=\"highlight json\"><span class=\"punctuation\">&#123;</span>\n  <span class=\"attr\">&quot;id&quot;</span><span class=\"punctuation\">:</span> <span class=\"string\">&quot;my-mod&quot;</span><span class=\"punctuation\">,</span>\n  <span class=\"attr\">&quot;version&quot;</span><span class=\"punctuation\">:</span> <span class=\"string\">&quot;1.2.0&quot;</span><span class=\"punctuation\">,</span>\n  <span class=\"attr\">&quot;repo&quot;</span><span class=\"punctuation\">:</span> <span class=\"string\">&quot;https://example.com/repo.json&quot;</span>\n<span class=\"punctuation\">&#125;</span></code></pre>\n\n<p>The installed scanner reads these to know what is installed, compare against current repository versions and flag available updates. Mods without a <code>modinfo.json</code> are treated as corrupted and flagged at startup.</p>\n<p>Deactivating a mod moves its folder from <code>SD:/wiiu/sdcafiine/TitleID/ModID/</code> to <code>SD:/wiiu/apps/coffeeshop/disabled/TitleID/ModID/</code>. Reactivating moves it back. Folder rename rather than copy, to minimize SD card write operations. SDCafiine only reads from the sdcafiine directory, so absent folders are simply inactive.</p>\n<p><strong>The region problem</strong></p>\n<p>SDCafiine matches mods by Title ID. The same game has a different Title ID per region: Mario Kart 8 is <code>000500001010eb00</code> in Japan, <code>000500001010ec00</code> in the US and <code>000500001010ed00</code> in Europe. A mod installed under the European Title ID will not load on a US console. SDCafiine checks the exact ID of the running game and finds nothing.</p>\n<p>The repository format handles this by listing multiple Title IDs per game entry. When a user installs a mod for a game that has more than one Title ID in the repository, CoffeeShop cannot determine the console’s region automatically and has to ask. A <code>RegionSelectScreen</code> appears, the user picks their region and the download goes to the correct Title ID path. It is one extra interaction per game and only shows up the first time for each game.</p>\n<p>At startup, <code>CacheManager::cleanupStaleZips()</code> and <code>cleanupCorruptMods()</code> run before the UI is shown. The first removes half-finished <code>.zip</code> files left over from interrupted downloads. The second finds mod directories missing a <code>modinfo.json</code> and removes them. Both are a direct consequence of a download process that can be interrupted at any point: a crash, a network drop or the user powering off.</p>\n<hr>\n<h2 id=\"Conflict-detection\"><a href=\"#Conflict-detection\" class=\"headerlink\" title=\"Conflict detection\"></a>Conflict detection</h2><p>Activating a mod runs a conflict check first. The <code>ConflictChecker</code> takes the file list of the mod being activated and the file lists of all currently active mods and returns which mods conflict and which specific files collide. If there is a conflict, a dialog shows the affected mods and up to three example file paths.</p>\n<p>The conflict dialog layout had significant problems early on. Text overflowed card boundaries, buttons were wrongly positioned, the semi-transparent overlay caused text to bleed through because <code>SDL_BLENDMODE_BLEND</code> was not being set before rendering the overlay rectangle. The dialog was rebuilt with fixed card dimensions, a defined left margin for all text elements, a divider line above the buttons and explicit line spacing.</p>\n<hr>\n<h2 id=\"Audio\"><a href=\"#Audio\" class=\"headerlink\" title=\"Audio\"></a>Audio</h2><p>SDL2_mixer handles sound effects and background music. There is a three-state music toggle: off, main theme, alternative theme. Sound effects for navigation, download start, download end, errors, mod activation and deactivation. The music setting persists in <code>config.json</code>.</p>\n<p>The shutdown sequence is order-sensitive: <code>Mix_FreeChunk</code>, <code>Mix_FreeMusic</code>, <code>Mix_CloseAudio</code>, <code>Mix_Quit</code>. Out of order or skipped, the audio subsystem shutdown hangs. Another item on the “must finalize explicitly” list for this platform.</p>\n<hr>\n<h2 id=\"Logging-and-debugging\"><a href=\"#Logging-and-debugging\" class=\"headerlink\" title=\"Logging and debugging\"></a>Logging and debugging</h2><p>There is no convenient printf-to-terminal while the app is running on hardware. The logging setup has three layers, each covering a different failure window.</p>\n<p><strong>Early log.</strong> <code>main()</code> opens <code>early.log</code> on the SD card immediately after <code>WHBProcInit()</code>, before the main logger or any other subsystem initializes. Every write is followed by <code>fsync()</code>. This is not caution: it is the only way to capture crashes that happen during initialization, before the buffer would ever be flushed. If the app crashes during startup, <code>early.log</code> contains every message up to the last line written before the crash.</p>\n<p><strong>UDP log.</strong> <code>WHBLogUdpInit()</code> streams log output over UDP to a <code>udplogserver</code> running on the development machine. This is the primary tool during active development in Cemu, where the network is always available. On hardware it works once Wi-Fi is up, which is not guaranteed during early startup or shutdown.</p>\n<p><strong>File logger + in-app viewer.</strong> The main <code>Logger</code> class writes to <code>app.log</code> on the SD card and keeps a rolling in-memory buffer of recent lines. The Settings tab has a built-in log viewer: pressing “View log” opens a scrollable overlay showing those lines, color-coded by severity (errors in red, warnings in yellow). This matters specifically for hardware debugging without a development machine attached: the log is readable directly on the console.</p>\n<p>For crashes, Aroma’s crash handler dumps register state. Stack traces without debug symbols are hard to read, but the combination of <code>early.log</code>, the file logger and the crash dump is usually enough to locate the problem. All of the exit freeze diagnosis below was done by adding log calls before and after every cleanup step and looking at where the output stopped.</p>\n<hr>\n<h2 id=\"The-exit-problem-i-had\"><a href=\"#The-exit-problem-i-had\" class=\"headerlink\" title=\"The exit problem i had\"></a>The exit problem i had</h2><p>The first hardware test ran correctly until you tried to leave. Every exit path froze the console.</p>\n<p><strong>Freeze 1: the download worker</strong></p>\n<p>The initial exit approach set <code>m_running = false</code> to break the main loop, then called <code>join()</code> on the worker thread. <code>join()</code> never returned because the thread was blocked inside a libcurl network call.</p>\n<p>Fix: the cancellation flag in the curl progress callback. When set, the callback returns 1, telling libcurl to abort the transfer. libcurl returns, the thread exits naturally, <code>join()</code> completes. This is the correct pattern: do not attempt to terminate the thread from outside, tell curl to stop cooperating.</p>\n<p><strong>Freeze 2: the network stack</strong></p>\n<p>After the thread fix, the app still froze. The <code>elog()</code> trace showed it hanging inside <code>WHBProcShutdown()</code>. Cause: <code>nn::ac::Initialize()</code> and <code>socket_lib_init()</code> were called at startup, but <code>nn::ac::Finalize()</code> and <code>socket_lib_finish()</code> were never called before <code>WHBProcShutdown()</code>. The network stack does not clean itself up. Call order: <code>socket_lib_finish()</code> first, then <code>nn::ac::Finalize()</code>.</p>\n<p><strong>Freeze 3: ProcUI state</strong></p>\n<p>After both fixes, still a freeze. The cause was pretty subtle.</p>\n<p><code>WHBProcShutdown()</code> expects to be called after <code>WHBProcIsRunning()</code> has naturally returned false through the ProcUI message loop. If you break out of the loop early with your own boolean, <code>WHBProcShutdown()</code> finds ProcUI in an intermediate state and waits for a state transition that will never arrive.</p>\n<p>The actual fix was to not call <code>WHBProcShutdown()</code> at all. The shutdown sequence calls <code>SYSLaunchMenu()</code>, which transfers control back to the home menu. The OS terminates the process as part of that transition. <code>WHBProcShutdown()</code> never gets reached and there is nothing left to hang. The comment in the source is explicit: <code>WHBProcShutdown() omitted - hangs when loop exits via m_running=false</code>.</p>\n<p>The main loop condition reflects the hybrid approach:</p>\n<pre><code class=\"highlight cpp\"><span class=\"keyword\">while</span> (m_running &amp;&amp; !m_screens.<span class=\"built_in\">empty</span>() &amp;&amp; <span class=\"built_in\">WHBProcIsRunning</span>()) &#123;\n    <span class=\"built_in\">update</span>();\n    <span class=\"built_in\">render</span>();\n&#125;\n<span class=\"comment\">// WHBProcShutdown() omitted - hangs when loop exits via m_running=false</span>\n<span class=\"built_in\">SYSLaunchMenu</span>();</code></pre>\n\n<p>It is not the textbook ProcUI pattern. It works because the OS does not require a graceful <code>WHBProcShutdown()</code> when <code>SYSLaunchMenu()</code> is used. The process is cleaned up by the OS regardless.</p>\n<p>None of the three freezes reproduced in Cemu. The emulator’s ProcUI implementation is more forgiving about internal state at shutdown. All three required real hardware to manifest.</p>\n<hr>\n<h2 id=\"The-app-icon-issue-i-had-as-well\"><a href=\"#The-app-icon-issue-i-had-as-well\" class=\"headerlink\" title=\"The app icon issue i had as well\"></a>The app icon issue i had as well</h2><p><code>wut_create_wuhb()</code> has an <code>ICON</code> parameter for this and the icon showed correctly in the home launcher.</p>\n<p>When the app tried to load the icon as an SDL texture at runtime for display inside the app itself, the file was not there. The <code>ICON</code> parameter embeds the image into the WUHB bundle’s metadata section, which is handled by the OS and not exposed as a file path at <code>/vol/content/</code>. The content folder and the metadata section are separate.</p>\n<p>Fix: copy <code>icon.png</code> into <code>meta/content/</code> as well. That path gets embedded into the content bundle and is accessible at <code>/vol/content/icon.png</code> at runtime. The content copy and the metadata copy are the same file duplicated into two places in the bundle.</p>\n<p>The icon rendering also needed a center-crop. The coffee cup graphic has whitespace around it and without cropping it renders smaller than it should. Same crop calculation as thumbnails.</p>\n<hr>\n<h2 id=\"Settings-performance-because-i-was-just-stupid-i-guess\"><a href=\"#Settings-performance-because-i-was-just-stupid-i-guess\" class=\"headerlink\" title=\"Settings performance (because i was just stupid i guess)\"></a>Settings performance (because i was just stupid i guess)</h2><p>The Settings tab was extremely slow. Multiple seconds of delay when switching to it and noticeable lag on every input event within it.</p>\n<p>The cause: <code>buildSettingsItems()</code> was being called in two places, inside <code>handleSettingsInput()</code> on every input event and inside <code>renderSettings()</code> on <strong>every frame</strong>. Inside <code>buildSettingsItems()</code> was <code>InstalledScanner::scan()</code> traversing the sdcafiine folder, <code>dirSize()</code> recursively measuring cache folders and <code>statvfs()</code> for free space. All SD card I&#x2F;O, running 60 times per second plus on every button press.</p>\n<p>Fix: cache the built items as a member variable. Rebuild only on <code>onEnter()</code> and after any button action that changes state. A <code>m_textureCacheDirty</code> flag separates item data from rendered textures: items are rebuilt rarely, textures are rebuilt from the item data when the dirty flag is set and neither touches the SD card in the render loop.</p>\n<p>The second performance issue was in <code>renderText()</code>. The original called <code>TTF_RenderUTF8_Blended</code>, <code>SDL_CreateTextureFromSurface</code> and <code>SDL_DestroyTexture</code> on every invocation. With 20 visible items that is 20 texture allocations per frame. Fix: cache text textures in the item structs inside <code>buildTextureCache()</code>, use only <code>SDL_RenderCopy</code> in the render loop. <code>buildTextureCache()</code> runs once when the dirty flag is set; after that the render path is pure GPU copy.</p>\n<hr>\n<h2 id=\"Tests\"><a href=\"#Tests\" class=\"headerlink\" title=\"Tests\"></a>Tests</h2><p>The test setup uses Catch2 and runs as a normal x86_64 binary on the development machine. Only components without WUT, SDL or curl dependencies are testable this way.</p>\n<p>In practice that covers the <code>ConflictChecker</code> (7 scenarios: no conflict, single conflict, multiple conflicts, the three-file display cap, empty mod list, empty active list, both empty), <code>RepoManager::parseGameFromJson</code> (11 scenarios: valid input, missing required fields, invalid mod IDs, invalid download URLs, optional fields absent, mix of valid and invalid mods) and <code>InstalledScanner::hasUpdate</code> for version comparison edge cases.</p>\n<p>The goal is not exhaustive line coverage. It is confidence that parsing will not crash or silently accept garbage when a community repository has a mistake and that conflict detection is correct at the boundary cases.</p>\n<p>CI runs through GitHub Actions on every push using devkitPro’s Docker images for the build step.</p>\n<hr>\n<h2 id=\"Cemu-vs-real-hardware\"><a href=\"#Cemu-vs-real-hardware\" class=\"headerlink\" title=\"Cemu vs. real hardware\"></a>Cemu vs. real hardware</h2><p>Cemu is excellent for development iteration: fast builds, no SD card handling, debuggable on the host. It loads <code>.wuhb</code> files directly and maps <code>/vol/external01/</code> to a configurable host folder.</p>\n<p>It does not behave identically to hardware. Network timing differs. Some WUT calls behave slightly differently. ProcUI diverges in subtle ways, as demonstrated by all three exit freezes being hardware-only. Crashes that appear on hardware do not necessarily reproduce in Cemu.</p>\n<p>Practical workflow: develop in Cemu for most iterations, test on hardware for every release candidate and for anything touching network, filesystem or process lifecycle.</p>\n<hr>\n<h2 id=\"Gallery\"><a href=\"#Gallery\" class=\"headerlink\" title=\"Gallery\"></a>Gallery</h2><p><img src=\"/2026/03/08/coffeeshop/browse.webp\"></p>\n<p><img src=\"/2026/03/08/coffeeshop/detail.webp\"></p>\n<p><img src=\"/2026/03/08/coffeeshop/settings.webp\"></p>\n<hr>\n<p>CoffeeShop is open source under GPLv3. The latest release is on <a href=\"https://github.com/timkicker/coffeeshop/releases/latest\">GitHub</a>. It requires a Wii U with <a href=\"https://aroma.foryour.cafe/\">Aroma</a> installed and a community-hosted repository to pull mods from. A repository template is also available on GitHub for anyone who wants to host their own.</p>\n<p>If you want to go deeper on how the Wii U homebrew ecosystem works, Maschell’s blog series on <a href=\"https://maschell.github.io/homebrew/2019/11/20/new-environment-part1.html\">building a homebrew environment for the Wii U</a> and the <a href=\"https://maschell.github.io/homebrew/2022/09/05/aroma.html\">Aroma release post</a> are the most thorough technical explanations available.</p>\n",
            "tags": [
                "project",
                "wiiu",
                "homebrew",
                "cpp",
                "sdl2",
                "nintendo",
                "reverse-engineering",
                "gamedev"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2026/02/21/nobody-wants-to-work-anymore/",
            "url": "https://tim.kicker.dev/2026/02/21/nobody-wants-to-work-anymore/",
            "title": "Nobody Wants to Burn Out Anymore",
            "date_published": "2026-02-21T08:00:00.000Z",
            "content_html": "<p><img src=\"/2026/02/21/nobody-wants-to-work-anymore/thumbnail.webp\" alt=\"nobody wants to work anymore\"></p>\n<p>You’ve probably heard it countless times: <em>“Nobody wants to work anymore.”</em> It shows up everywhere, from casual conversations to headlines and social media posts.</p>\n<p>But here is the catch: this is not a new complaint. It is (way, wayyy) older than you think.</p>\n<hr>\n<p>Before we get into it, a quick note about me: I am writing this as a student. I can work less than full time because my parents support me. That is a privilege, not a moral flex. I am not trying to speak for every young person. I am pushing back on a narrative that keeps getting recycled while the deal around work keeps shifting.</p>\n<p>Also, I am going to mix countries and examples in this post. Some links are Austrian, some are German and some are US focused. The underlying pattern still matters, but the exact numbers and institutions differ by country.</p>\n<hr>\n<h2 id=\"Where-does-it-come-from\"><a href=\"#Where-does-it-come-from\" class=\"headerlink\" title=\"Where does it come from?\"></a>Where does it come from?</h2><p>Take a look at the graphic below, or read Snopes’ detailed fact check with sources <a href=\"https://www.snopes.com/fact-check/nobody-wants-to-work-anymore/\">on the origin of the phrase “nobody wants to work anymore”</a>. It shows that this exact phrase has been circulating since at least 1894. For over 130 years, people have accused younger generations of being lazy, entitled or unwilling to put in the effort.</p>\n<p>And yet, generation after generation, people keep working.</p>\n<p><img src=\"/2026/02/21/nobody-wants-to-work-anymore/nobodyworkwahwah.webp\" alt=\"list over the years\"></p>\n<p>So no, it is not really about work ethic. When someone says “nobody wants to work anymore”, what they usually mean is “nobody wants to work the way I had to.”</p>\n<p>There is pride in hardship and there is also resentment that can show up when younger generations push back against norms that used to be non-negotiable. Add to that a reluctance to acknowledge that the economic and social reality has changed. Housing prices are <a href=\"https://www.statistik.at/statistiken/volkswirtschaft-und-oeffentliche-finanzen/preise-und-preisindizes/immobilien-durchschnittspreise\">astronomically higher in Austria according to Statistik Austria</a>. Job security is increasingly fragile in many sectors, as discussed in a <a href=\"https://www.researchgate.net/publication/375885311_Research_Review_Job_Security_and_Insecurity/fulltext/65609be3ce88b87031097f82/Research-Review-Job-Security-and-Insecurity.pdf?origin=publication_detail&_tp=eyJjb250ZXh0Ijp7ImZpcnN0UGFnZSI6InB1YmxpY2F0aW9uIiwicGFnZSI6InB1YmxpY2F0aW9uRG93bmxvYWQiLCJwcmV2aW91c1BhZ2UiOiJwdWJsaWNhdGlvbiJ9fQ\">research review on job security and insecurity</a>. Wages and bargaining power have also been a pressure point for a long time, with discussion about long term labor movement effects in <a href=\"https://zcullen.github.io/assets/docs/Labor_Movement_WP.pdf\">this working paper by Cullen</a>.</p>\n<p>It is easier to frame all of this as laziness than to admit that the system people are inheriting is often tense, expensive and disrespectful. Surveys of people who actually quit jobs tend to point to low pay, no advancement and feeling disrespected, as summarized in <a href=\"https://www.pewresearch.org/short-reads/2022/03/09/majority-of-workers-who-quit-a-job-in-2021-cite-low-pay-no-opportunities-for-advancement-feeling-disrespected/\">Pew Research Center’s survey on why workers quit in 2021</a>.</p>\n<hr>\n<h2 id=\"Why-it-can-look-like-nobody-wants-to-work\"><a href=\"#Why-it-can-look-like-nobody-wants-to-work\" class=\"headerlink\" title=\"Why it can look like nobody wants to work\"></a>Why it can look like nobody wants to work</h2><p>If you work in hospitality, retail or any kind of service job, the frustration is real. Places are understaffed. Waiting times are longer. People quit and do not come back.</p>\n<p>Sometimes you also meet people who are unreliable, checked out or genuinely done. That happens.</p>\n<p>A lot of this debate is also about visibility. Plenty of young adults spend longer in education. Many work part time while studying, then disappear during exams, internships or thesis phases. If you are the person trying to staff a shift, that can look like “nobody shows up.”</p>\n<p>Demographics matter too. If a society gets older, you can get shortages even if nobody changes their attitude. So yes, the surface level impression has some basis. The question is what explains it best.</p>\n<hr>\n<h2 id=\"The-shortage-is-not-a-moral-failure\"><a href=\"#The-shortage-is-not-a-moral-failure\" class=\"headerlink\" title=\"The shortage is not a moral failure\"></a>The shortage is not a moral failure</h2><p>COVID did not create these tensions, but it cracked them open. What many commentators called “the Great Resignation” often looked less like a tantrum and more like a reassessment, which is how the <a href=\"https://www.ft.com/content/eabd1aba-3ea9-4a11-af3d-e3e10c468b96\">Financial Times described the phenomenon</a>.</p>\n<p>People had time to ask themselves whether they really wanted to return to jobs that left them drained, underpaid and barely able to keep up with their bills. A <a href=\"https://www.pewresearch.org/short-reads/2022/03/09/majority-of-workers-who-quit-a-job-in-2021-cite-low-pay-no-opportunities-for-advancement-feeling-disrespected/\">Pew Research Center survey of workers who quit in 2021</a> lists boring reasons: low pay, no opportunities for advancement and feeling disrespected.</p>\n<p>Then you add inflation. <a href=\"https://www.brookings.edu/articles/has-pay-kept-up-with-inflation/\">Brookings discusses whether pay has kept up with inflation</a>. If a job does not buy stability, and it also demands your health and your weekends, it is not a mystery why people avoid it.</p>\n<p>It is not that people do not want to work. It is that people do not want to sacrifice their health, dignity and future just to stay afloat.</p>\n<hr>\n<h2 id=\"“Gen-Z-is-lazy”\"><a href=\"#“Gen-Z-is-lazy”\" class=\"headerlink\" title=\"“Gen Z is lazy”\"></a>“Gen Z is lazy”</h2><p>It is a tempting story because it makes the world simple. It also ignores what is actually happening.</p>\n<p>For example, some recent reporting suggests that employment among younger age groups has risen in recent years, driven in part by students working alongside education. <a href=\"https://www.nationalgeographic.de/geschichte-und-kultur/2025/04/gen-z-junge-leute-arbeiten-so-viel-wie-lange-nicht\">National Geographic Germany discusses how much Gen Z works compared to previous years</a> and points to German labor market data.</p>\n<p>That does not mean every young person is grinding 60 hours a week. It means the “they just do not want to work” storyline is a lazy shortcut.</p>\n<p>Also, a lot of young workers are not rejecting work. They are rejecting bullshit jobs. By that I mean: low pay, high stress, no upside and zero respect.</p>\n<p>Mental health is another factor that is easy to mock and hard to ignore. People still want to work, they just want more control over their time, which is the core argument in <a href=\"https://hbr.org/2024/07/research-people-still-want-to-work-they-just-want-control-over-their-time\">Harvard Business Review’s piece on control over time</a>. Gen Z and Millennials also talk more openly about mental well being, and they are more willing to take time off when something is wrong, as described in <a href=\"https://www.verywellhealth.com/why-gen-z-are-taking-more-sick-days-8742111\">Verywell Health’s report on Gen Z sick days</a>.</p>\n<p>This is not only a vibes argument. The American Psychological Association reports that <a href=\"https://www.apa.org/topics/stress/generation-z-millennials-young-adults-worries\">Gen Z adults show high levels of stress and mental health symptoms</a> compared to other age groups in their reporting.</p>\n<p>If a job leaves people sick, numb or hopeless, maybe the question should not be “why do they not want to work?” Maybe it should be “why is this still considered acceptable?”</p>\n<hr>\n<h2 id=\"What-people-actually-ask-for\"><a href=\"#What-people-actually-ask-for\" class=\"headerlink\" title=\"What people actually ask for\"></a>What people actually ask for</h2><p>When people say they want “better work”, they usually mean boring basics: decent pay, predictable schedules, fair treatment and tasks that do not feel soul crushing.</p>\n<p>That is not entitlement. That is a workforce reacting to incentives.</p>\n<p>Worker surveys often mention flexibility as one of several reasons people leave or refuse certain jobs, including in <a href=\"https://www.pewresearch.org/short-reads/2022/03/09/majority-of-workers-who-quit-a-job-in-2021-cite-low-pay-no-opportunities-for-advancement-feeling-disrespected/\">Pew Research Center’s survey on job quitting reasons</a>. In German speaking debates, you see similar themes around flexible work and fair pay in <a href=\"https://www.derstandard.de/story/3000000261642/gen-z-wuenscht-sich-flexibles-arbeiten-und-faires-gehalt\">Der Standard’s article on Gen Z work expectations</a>. You also see workplace orgs talk about what makes younger employees actually motivated in <a href=\"https://www.greatplacetowork.at/blog/was-die-gen-z-dazu-bringt-sich-besonders-anzustrengen/\">Great Place To Work Austria’s blog post on Gen Z effort</a> and unions frame it as a necessary adaptation for employers in <a href=\"https://www.oegb.at/themen/arbeitsmarkt/arbeitsmarktpolitik/arbeitgeber-werden-tanzen-muessen---beduerfnisse-der-gen-z\">ÖGB’s commentary on employers needing to adapt</a>.</p>\n<p>Also, be careful with generational stereotypes in general. A useful discussion of that is the WSI Institute piece <a href=\"https://www.wsi.de/de/blog-17857-jung-faul-wehleidig-hat-die-gen-z-den-generationenvertrag-gekuendigt-63035.htm\">Jung, faul, wehleidig? Hat die Gen Z den Generationenvertrag gekündigt?</a>. The point is not that one age group is great and another is bad. The point is that commitment, motivation and expectations depend heavily on conditions, life phase and culture.</p>\n<p>Not every job can be remote. Not every workplace can offer full flexibility. Some work is physically hard by nature. That makes the question sharper, not softer: why are the jobs that must be on site so often the ones with the worst pay and the least respect?</p>\n<hr>\n<h2 id=\"So-what-is-going-on\"><a href=\"#So-what-is-going-on\" class=\"headerlink\" title=\"So what is going on?\"></a>So what is going on?</h2><p>People do want to work. They just do not want to be treated like disposable parts in a machine.</p>\n<p>So maybe the issue is not that nobody wants to work anymore. Maybe it’s that nobody wants to work like it’s still 1980 with worse rent and better coffee.</p>\n<p>It is also worth saying out loud that a lot of the tension is about fairness. Many older workers suffered through inflexible jobs, toxic bosses and zero room to complain. In Austria, reforms associated with people like <a href=\"https://en.wikipedia.org/wiki/Bruno_Kreisky\">Bruno Kreisky</a> shifted parts of that landscape.</p>\n<p>So when a younger person says “no thanks” to the same misery, it can sting. It can feel like someone is skipping the struggle you had to endure.</p>\n<p>But is that not the point of progress?</p>\n<p>If the next generation can demand better working conditions, that is not a moral decline. It is a signal that the old deal stopped making sense. It is also a chance to rebuild it, instead of turning exhaustion into a tradition.</p>\n<p>And yes, sometimes the criticism hits home for people like me, too. I get support. I get options. That is exactly why I am not buying the “everyone is just lazy” line. The problem is not young people. The problem is that too many jobs are structured in a way that only works if someone else silently subsidizes your survival, whether that is parents, a partner or your future pension.</p>\n<p>Speaking of pensions: plenty of young people do not feel confident they will get one, and that anxiety is part of how they judge the tradeoffs of work and life, as discussed in <a href=\"https://www.versfinanz.at/newsbeitrag/pensionen-was-junge-menschen-erwarten-und-befuerchten/\">VersicherungsFinanz’s piece on what young people expect and fear about pensions</a>. Public discussions around early retirement in Germany also show how widespread the desire to exit earlier can be and how quickly debates turn into moral judgments, as covered by <a href=\"https://www.mdr.de/nachrichten/deutschland/politik/fruehrente-vorzeitiger-renteneintritt-weniger-rente-100.html\">MDR on early retirement and policy debates</a>.</p>\n<p>If the promised finish line looks fuzzy, it is not shocking that people start questioning the race.</p>\n",
            "tags": [
                "Work",
                "Labor Shortage",
                "Gen Z",
                "Millennials",
                "Employment",
                "Great Resignation",
                "Workplace Culture",
                "Mental Health",
                "Work-Life Balance",
                "Workforce Expectations"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2026/02/21/nobody-wants-to-work-anymore/de/",
            "url": "https://tim.kicker.dev/2026/02/21/nobody-wants-to-work-anymore/de/",
            "title": "Nobody Wants to Burn Out Anymore",
            "date_published": "2026-02-21T08:00:00.000Z",
            "content_html": "<p><img src=\"/2026/02/21/nobody-wants-to-work-anymore/thumbnail.webp\" alt=\"nobody wants to work anymore\"></p>\n<p>Man hat es schon unzählige Male gehört: <em>“Nobody wants to work anymore</em> (“Niemand will mehr arbeiten”). Der Satz taucht überall auf, in lockeren Gesprächen, in Schlagzeilen und in Social-Media-Posts.</p>\n<p>Der Punkt ist nur: Das ist keine neue Beschwerde. Die Aussage ist (viel, vieeel) älter, als man annehmen könnte.</p>\n<hr>\n<p>Bevors losgeht, kurz zu mir: Ich schreibe dies als Student. Ich muss nicht Vollzeit arbeiten, da meine Eltern mich finanziell unterstützen. Das ist ein Privileg, keine Selbstverständlichkeit . Ich versuche nicht, für jeden jungen Menschen zu sprechen. Ich hinterfrage ein Narrativ, das ständig recycelt wird, während sich der Deal rund um Arbeit weiter verschiebt.</p>\n<p>Außerdem mische ich in diesem Post Länder und Beispiele. Manche Links sind aus Österreich, manche aus Deutschland, manche aus den USA. Das Muster dahinter bleibt, aber die konkreten Zahlen und Institutionen unterscheiden sich je nach Land.</p>\n<hr>\n<h2 id=\"Woher-kommt-der-Satz\"><a href=\"#Woher-kommt-der-Satz\" class=\"headerlink\" title=\"Woher kommt der Satz?\"></a>Woher kommt der Satz?</h2><p>Ein Blick auf die Zusammenstellung unten reicht. Und sonst hat “Snopes” einen ausführlichen Fact-Check <a href=\"https://www.snopes.com/fact-check/nobody-wants-to-work-anymore/\">zur Herkunft der Formulierung “nobody wants to work anymore”</a>. Dort wird gezeigt, dass genau dieser Satz mindestens seit 1894 kursiert. Seit über 130 Jahren wird jüngeren Generationen nachgesagt, sie seien faul, verwöhnt oder nicht bereit, sich anzustrengen.</p>\n<p>Und trotzdem arbeiten Generation für Generation Menschen weiter.</p>\n<p><img src=\"/2026/02/21/nobody-wants-to-work-anymore/nobodyworkwahwah.webp\" alt=\"list over the years\"></p>\n<p>Es geht also nicht wirklich um Arbeitsmoral. Wenn jemand sagt “nobody wants to work anymore”, dann meint man oft: Niemand will mehr so arbeiten, wie man früher arbeiten musste.</p>\n<p>In Härte steckt oft Stolz und manchmal steckt auch ein bisschen Groll drin, wenn jüngere Leute Regeln brechen, die früher als unverhandelbar gegolten haben. Dazu kommt, dass man sich ungern eingesteht, dass sich die wirtschaftliche und soziale Realität verändert hat. Wohnpreise beispielsweise sind <a href=\"https://www.statistik.at/statistiken/volkswirtschaft-und-oeffentliche-finanzen/preise-und-preisindizes/immobilien-durchschnittspreise\">laut Statistik Austria astronomisch höher</a> oder Jobsicherheit ist in vielen Branchen fragiler geworden, wie es ein <a href=\"https://www.researchgate.net/publication/375885311_Research_Review_Job_Security_and_Insecurity/fulltext/65609be3ce88b87031097f82/Research-Review-Job-Security-and-Insecurity.pdf?origin=publication_detail&_tp=eyJjb250ZXh0Ijp7ImZpcnN0UGFnZSI6InB1YmxpY2F0aW9uIiwicGFnZSI6InB1YmxpY2F0aW9uRG93bmxvYWQiLCJwcmV2aW91c1BhZ2UiOiJwdWJsaWNhdGlvbiJ9fQ\">Research Review zu Job Security und Insecurity</a> diskutiert. Ebenso hat es sich verändet, dass Arbeitnehmer über Löhne und Arbeitsbedinungen mitbestimmen können. Eine Diskussion über langfristige Effekte von Arbeitsbewegungen, <a href=\"https://zcullen.github.io/assets/docs/Labor_Movement_WP.pdf\">wie in diesem Worping Paper von Culling dargestellt.</a>.</p>\n<p>Es ist einfacher, all das als Faulheit zu framen, als sich einzugestehen, dass das System, das viele erben, oft angespannt, teuer und respektlos ist. Umfragen unter Menschen, die tatsächlich gekündigt haben, zeigen meistens nicht “plötzliche Faulheit”, sondern niedrige Bezahlung, keine Entwicklung und fehlenden Respekt, so wie es das <a href=\"https://www.pewresearch.org/short-reads/2022/03/09/majority-of-workers-who-quit-a-job-in-2021-cite-low-pay-no-opportunities-for-advancement-feeling-disrespected/\">Pew Research Center zu Kündigungsgründen 2021 zusammenfasst</a>.</p>\n<hr>\n<h2 id=\"Warum-es-so-wirkt-als-wolle-niemand-arbeiten\"><a href=\"#Warum-es-so-wirkt-als-wolle-niemand-arbeiten\" class=\"headerlink\" title=\"Warum es so wirkt, als wolle niemand arbeiten\"></a>Warum es so wirkt, als wolle niemand arbeiten</h2><p>In Gastronomie, Handel oder generell im Service ist der Frust echt. Viele Betriebe sind einfach unterbesetzt. Wartezeiten für den Kunden werden länger. Arbeiter gehen und kommen nicht zurück.</p>\n<p>Man trifft auch Menschen, die unzuverlässig sind, komplett abgemeldet oder einfach durch. Das passiert.</p>\n<p>Ein großer Teil der Debatte ist Sichtbarkeit. Viele junge Erwachsene verbringen länger in Ausbildung. Viele arbeiten Teilzeit neben dem Studium, verschwinden dann aber während Prüfungen, Praktika oder Abschlussphasen. Wenn man gerade versucht, eine Schicht zu besetzen, schaut das schnell so aus wie: “niemand kommt”.</p>\n<p>Demografie spielt auch rein. Wenn eine Gesellschaft älter wird, entstehen Engpässe auch dann, wenn sich an der Einstellung niemand ändert. Ja, der Eindruck hat also eine Basis. Die Frage ist, was ihn am besten erklärt.</p>\n<hr>\n<h2 id=\"Der-Mangel-ist-kein-Moralproblem\"><a href=\"#Der-Mangel-ist-kein-Moralproblem\" class=\"headerlink\" title=\"Der Mangel ist kein Moralproblem\"></a>Der Mangel ist kein Moralproblem</h2><p>COVID hat diese Spannungen nicht erfunden, aber es hat sie aufgerissen. Was viele Medien als <a href=\"https://en.wikipedia.org/wiki/Great_Resignation\">“Great Resignation”</a> genannt haben, wirkte oft weniger wie ein Trotzanfall und mehr wie eine Neubewertung, so wie es die <a href=\"https://www.ft.com/content/eabd1aba-3ea9-4a11-af3d-e3e10c468b96\">Financial Times beschrieben hat</a>.</p>\n<p>Plötzlich war Zeit da, um sich zu fragen, ob man wirklich zurück in Jobs will, die auslaugen, schlecht bezahlt sind und einen kaum über die Rechnungen bringen. Eine <a href=\"https://www.pewresearch.org/short-reads/2022/03/09/majority-of-workers-who-quit-a-job-in-2021-cite-low-pay-no-opportunities-for-advancement-feeling-disrespected/\">Pew-Umfrage unter Beschäftigten, die 2021 gekündigt haben</a> listet ziemlich unspektakuläre Gründe: niedrige Bezahlung, keine Aufstiegschancen und das Gefühl, nicht respektiert zu werden.</p>\n<p>Dann kommt Inflation dazu. <a href=\"https://www.brookings.edu/articles/has-pay-kept-up-with-inflation/\">Brookings diskutiert, ob Löhne mit Inflation mitgehalten haben</a>. Wenn ein Job keine Stabilität sichert und gleichzeitig Gesundheit und Wochenenden frisst, ist es nicht geheimnisvoll, warum man ihn meidet.</p>\n<p>Nicht die Arbeit an sich ist das Problem. Das Problem ist, dass viele Leute nicht bereit sind, Gesundheit, Würde und Zukunft zu opfern, nur um irgendwie über Wasser zu bleiben.</p>\n<hr>\n<h2 id=\"“Die-heutige-Jugend-ist-faul”\"><a href=\"#“Die-heutige-Jugend-ist-faul”\" class=\"headerlink\" title=\"“Die heutige Jugend ist faul”\"></a>“Die heutige Jugend ist faul”</h2><p>Das ist eine verführerische Geschichte, weil sie die Welt simpel macht. Sie ignoriert aber nur, was tatsächlich passiert.</p>\n<p>Zum Beispiel gibt es Berichte, die nahelegen, dass die Beschäftigung in jüngeren Altersgruppen in den letzten Jahren wieder gestiegen ist, teilweise auch weil Studierende neben der Ausbildung arbeiten. <a href=\"https://www.nationalgeographic.de/geschichte-und-kultur/2025/04/gen-z-junge-leute-arbeiten-so-viel-wie-lange-nicht\">National Geographic Deutschland schreibt darüber, wie viel Gen Z im Vergleich zu früheren Jahren arbeitet</a> und verweist auf deutsche Arbeitsmarktdaten.</p>\n<p>Das heißt nicht, dass jeder junge Mensch 60 Stunden pro Woche hackelt. Es heißt nur, dass das Narrativ “dia hond einfach koan Bock” ein billiger Shortcut ist.</p>\n<p>Viele lehnen nicht Arbeit ab, sondern Bullshit-Jobs. Damit meine ich Jobs mit niedrigem Lohn, hohem Stress, null Upside und null Respekt.</p>\n<p>Mentale Gesundheit ist ein weiterer Faktor, über den man leicht spotten kann und den man schwer ignorieren kann. Menschen wollen weiterhin arbeiten, sie wollen nur mehr Kontrolle über ihre Zeit, was der Kern der Argumentation in <a href=\"https://hbr.org/2024/07/research-people-still-want-to-work-they-just-want-control-over-their-time\">Harvard Business Review zu Kontrolle über Zeit</a> ist. Gen Z und Millennials reden offener über mentale Gesundheit, und sie sind eher bereit, sich krank zu melden oder rauszunehmen, wenn etwas nicht passt, wie es <a href=\"https://www.verywellhealth.com/why-gen-z-are-taking-more-sick-days-8742111\">Verywell Health zu Gen Z und Krankenständen beschreibt</a>.</p>\n<p>Das ist nicht nur ein Vibes-Argument. Die American Psychological Association berichtet, dass <a href=\"https://www.apa.org/topics/stress/generation-z-millennials-young-adults-worries\">Gen Z Erwachsene hohe Stresswerte und mentale Symptome zeigen</a>, im Vergleich zu anderen Altersgruppen.</p>\n<p>Wenn Jobs Menschen krank, taub oder hoffnungslos machen, sollte die Frage vielleicht nicht sein “Warum wollen sie nicht arbeiten?”. Vielleicht sollte die Frage sein “Warum gilt das noch als normal?”.</p>\n<hr>\n<h2 id=\"Was-eigentlich-gefordert-wird\"><a href=\"#Was-eigentlich-gefordert-wird\" class=\"headerlink\" title=\"Was eigentlich gefordert wird\"></a>Was eigentlich gefordert wird</h2><p>Wenn Menschen “bessere Arbeit” wollen, meinen sie meistens langweilige Basics: angemessene Bezahlung, planbare Dienstpläne, faire Behandlung und Aufgaben, die sich nicht jeden Tag wie Seelenzerquetschen anfühlen.</p>\n<p>Das ist keine Anspruchshaltung. Das ist eine Belegschaft, die auf Anreize reagiert.</p>\n<p>Umfragen zeigen oft, dass Flexibilität einer von mehreren Gründen ist, warum Menschen Jobs verlassen oder bestimmte Jobs meiden, siehe wieder <a href=\"https://www.pewresearch.org/short-reads/2022/03/09/majority-of-workers-who-quit-a-job-in-2021-cite-low-pay-no-opportunities-for-advancement-feeling-disrespected/\">Pew Research Center zu Kündigungsgründen</a>. In deutschsprachigen Debatten tauchen ähnliche Themen rund um flexibles Arbeiten und faire Bezahlung auf, etwa im <a href=\"https://www.derstandard.de/story/3000000261642/gen-z-wuenscht-sich-flexibles-arbeiten-und-faires-gehalt\">Der Standard Artikel zu Erwartungen der Gen Z</a>. Es gibt auch Organisationen und Arbeitgeberplattformen, die beschreiben, was jüngere Beschäftigte wirklich motiviert, wie in <a href=\"https://www.greatplacetowork.at/blog/was-die-gen-z-dazu-bringt-sich-besonders-anzustrengen/\">Great Place To Work Austria zu Gen Z und Anstrengung</a>, und Gewerkschaften, die das als notwendige Anpassung für Arbeitgeber framen, wie im <a href=\"https://www.oegb.at/themen/arbeitsmarkt/arbeitsmarktpolitik/arbeitgeber-werden-tanzen-muessen---beduerfnisse-der-gen-z\">ÖGB Kommentar zu Bedürfnissen der Gen Z</a>.</p>\n<p>Generationsstereotype sind generell eine Falle. Eine nützliche Diskussion dazu liefert der WSI-Text <a href=\"https://www.wsi.de/de/blog-17857-jung-faul-wehleidig-hat-die-gen-z-den-generationenvertrag-gekuendigt-63035.htm\">“Jung, faul, wehleidig? Hat die Gen Z den Generationenvertrag gekündigt?”</a>. Der Punkt ist nicht, dass eine Altersgruppe super ist und eine andere schlecht. Der Punkt ist, dass Commitment, Motivation und Erwartungen extrem von Bedingungen, Lebensphasen und Kultur abhängen.</p>\n<p>Nicht jeder Job kann remote sein. Nicht jeder Arbeitsplatz kann volle Flexibilität bieten. Manche Arbeit ist körperlich hart, das ist einfach so. Das macht die Frage schärfer, nicht weicher: Warum sind die Jobs, die vor Ort sein müssen, so oft die mit dem schlechtesten Lohn und dem geringsten Respekt?</p>\n<hr>\n<h2 id=\"Was-ist-also-los\"><a href=\"#Was-ist-also-los\" class=\"headerlink\" title=\"Was ist also los?\"></a>Was ist also los?</h2><p>Menschen wollen arbeiten. Sie wollen nur nicht wie Wegwerf-Teile in einer Maschine behandelt werden. Vielleicht ist das Problem nicht, dass niemand mehr arbeiten will. Vielleicht will nur niemand mehr arbeiten, als wäre es noch 1980, nur mit höherer Miete und besserem Kaffee.</p>\n<p>Es lohnt sich auch, einen Teil der Spannung als Fairness-Debatte zu sehen. Viele ältere Beschäftigte haben starre Jobs, toxische Chefs und null Raum zum Jammern durchgehalten. In Österreich haben Reformen, die man mit Leuten wie <a href=\"https://en.wikipedia.org/wiki/Bruno_Kreisky\">Bruno Kreisky</a> verbindet, Teile dieser Landschaft verschoben. Wenn eine jüngere Person heute zu demselben Elend “Nein danke” sagt, kann das einen hart treffen. Es kann sich anfühlen, als würde jemand den Kampf überspringen, den man selbst ertragen musste.</p>\n<p>Aber ist das nicht der Sinn von Fortschritt?</p>\n<p>Wenn die nächste Generation bessere Bedingungen fordert, ist das kein moralischer Verfall. Es ist ein Signal, dass der alte Deal aufgehört hat, Sinn zu machen. Es ist auch eine Chance, ihn neu zu bauen, statt Erschöpfung zur Tradition zu erklären.</p>\n<p>Und ja, manchmal trifft die Kritik auch Leute wie mich. Ich bekomme Unterstützung. Ich habe Optionen. Genau deshalb kaufe ich das “alle sind einfach nur faul” nicht. Das Problem sind nicht junge Menschen. Das Problem ist, dass zu viele Jobs so gebaut sind, dass sie nur funktionieren, wenn jemand anders das Überleben still subventioniert, ob das Eltern sind, ein Partner oder die eigene Zukunft.</p>\n<p>Apropos Pensionen: Viele junge Leute haben nicht das Gefühl, dass sie fix eine bekommen und diese Unsicherheit beeinflusst, wie man Arbeit und Leben gegeneinander abwägt, wie es <a href=\"https://www.versfinanz.at/newsbeitrag/pensionen-was-junge-menschen-erwarten-und-befuerchten/\">“VersicherungsFinanz” zu Erwartungen und Ängsten junger Menschen bei Pensionen</a> diskutiert. Öffentliche Debatten über Frühpension in Deutschland zeigen auch, wie verbreitet der Wunsch ist, früher auszusteigen und wie schnell die Diskussion moralisch wird, wie es <a href=\"https://www.mdr.de/nachrichten/deutschland/politik/fruehrente-vorzeitiger-renteneintritt-weniger-rente-100.html\">MDR zu Frühpension und politischen Debatten</a> beschreibt.</p>\n<p>Wenn die Ziellinie verschwommen wirkt, ist es nicht überraschend, dass Menschen anfangen, den Sinn des Rennens zu hinterfragen.</p>\n",
            "tags": [
                "Work",
                "Labor Shortage",
                "Gen Z",
                "Millennials",
                "Employment",
                "Great Resignation",
                "Workplace Culture",
                "Mental Health",
                "Work-Life Balance",
                "Workforce Expectations"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2025/11/12/podliner/",
            "url": "https://tim.kicker.dev/2025/11/12/podliner/",
            "title": "Podliner - The Player I Built for My Workflow",
            "date_published": "2025-11-12T18:48:18.000Z",
            "content_html": "<p><img src=\"/2025/11/12/podliner/01-episodes.png\"></p>\n<p>Podliner is a TUI podcast player for people who already spend their day in a terminal and don’t want podcasts to be the one thing that drags them out of it. The workflow is intentionally boring: browse episodes, hit play, read show notes, queue the next one, move on. No account, no telemetry, no “platform” behavior.</p>\n<p>It started as something I wrote only for myself. I listen to podcasts while working and I kept falling into the same loop: open a browser tab or a heavy app, lose context, get distracted, and suddenly I’m doing anything except listening. So I built the player I wished existed: Keyboard-driven, local-first, and happy to run wherever a terminal exists.</p>\n<p>At some point it stopped being a private “works on my machine” tool and became something I could actually ship properly. That’s the part where you end up caring about cross-platform builds, installers, sane config paths and all the other unglamorous stuff. </p>\n<p>This is also one of those projects that pretty much escaped my bubble, it got listed on <a href=\"https://terminaltrove.com/podliner/\">TerminalTrove</a> and even more unexpectedly, shows up on <a href=\"https://podliner.en.softonic.com/\">Softonic</a> as a Windows download. I’m mentioning that here mainly because it’s a decent signal that this isn’t just a repo graveyard.</p>\n<hr>\n<h2 id=\"What-it-focuses-on\"><a href=\"#What-it-focuses-on\" class=\"headerlink\" title=\"What it focuses on\"></a>What it focuses on</h2><ul>\n<li>RSS + Atom subscriptions, with a fast TUI for feeds and episodes. </li>\n<li>Vim-ish navigation + command mode (plus mouse support if you want it). </li>\n<li>Offline support that’s actually usable: downloads, resume, and control over whether playback prefers local files, remote or auto.</li>\n<li>Queue-based listening, with playback controls like seek &#x2F; speed &#x2F; volume.</li>\n<li>OPML import&#x2F;export so moving in and out doesn’t feel like a hostage negotiation. </li>\n<li>Multiple playback engines (mpv, VLC, ffplay, Windows Media Foundation fallback)</li>\n</ul>\n<p>One “fun” lesson from building this: I spent an embarrassing amount of time chasing a layout glitch where UI elements shift when you move the terminal window on macOS and Linux. Turns out it’s an upstream issue in the TUI framework, not documented anywhere useful and I only figured that out after doing the classic “surely this is my fault” spiral. (Fix is expected upstream soon.)</p>\n<hr>\n<h2 id=\"Gallery\"><a href=\"#Gallery\" class=\"headerlink\" title=\"Gallery\"></a>Gallery</h2><p><img src=\"/2025/11/12/podliner/01-episodes.png\" alt=\"Main UI\"><br><img src=\"/2025/11/12/podliner/02-details.png\" alt=\"Shownotes and details\"><br><img src=\"/2025/11/12/podliner/03-help.png\" alt=\"Help browser\"></p>\n<hr>\n<h2 id=\"Install\"><a href=\"#Install\" class=\"headerlink\" title=\"Install\"></a>Install</h2><pre><code class=\"highlight bash\"><span class=\"comment\"># Linux (stable)</span>\nbash &lt;(curl -fsSL https://github.com/timkicker/podliner/releases/latest/download/install.sh)\n\n<span class=\"comment\"># Arch (AUR)</span>\nyay -S podliner-bin</code></pre>\n\n<pre><code class=\"highlight bash\"><span class=\"comment\"># macOS (stable)</span>\nbash &lt;(curl -fsSL https://github.com/timkicker/podliner/releases/latest/download/install-macos.sh)</code></pre>\n\n<pre><code class=\"highlight powershell\"><span class=\"comment\"># Windows (winget)</span>\nwinget install <span class=\"literal\">--id</span>=TimKicker.Podliner <span class=\"literal\">-e</span>\n\n<span class=\"comment\"># Windows (installer script)</span>\n<span class=\"built_in\">irm</span> https://github.com/timkicker/podliner/releases/latest/download/install.ps1 | <span class=\"built_in\">iex</span></code></pre>\n",
            "tags": [
                "project",
                "csharp",
                "podcast",
                "tui",
                "offline",
                "cli",
                "cross-platform",
                "linux",
                "opml",
                "terminal",
                "mpv",
                "macos"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2025/10/05/voter-quiz-gate/",
            "url": "https://tim.kicker.dev/2025/10/05/voter-quiz-gate/",
            "title": "Democracy, But Make It a Pop Quiz",
            "date_published": "2025-10-05T11:38:12.000Z",
            "content_html": "<p><img src=\"/2025/10/05/voter-quiz-gate/thumbnail.webp\"></p>\n<p>One late night a colleague and I were tossing ideas around. Most of them vanished with the beer. This one stuck. It started as a dumb joke, then it got oddly sharp, then I realized it was sharp in the wrong direction.</p>\n<p>The pitch was simple: every ballot comes with four short questions about the parties’ programs. Get them right, your vote counts. Miss them, it does not. A quiz at the booth. We laughed, and then we kept talking about it, because the laugh kept breaking against something real.</p>\n<p>What it broke against was the experience of watching Austrian politics over the last decade or so. The ÖVP under Kurz campaigned on a <em>Neuer Stil</em> in 2017 and ended up at the centre of <a href=\"https://en.wikipedia.org/wiki/%C3%96VP_corruption_scandal\">the largest corruption probe in the country’s history</a>. The 2019 ÖVP-Grüne coalition trimmed climate goals against everything either party had campaigned on a few months earlier. Most recently the FPÖ won the <a href=\"https://en.wikipedia.org/wiki/2024_Austrian_legislative_election\">2024 National Council election</a> on Kickl’s <em>Volkskanzler</em> framing and a long list of policy promises that immediately ran into the arithmetic of coalition formation. Across the border in Germany, the <a href=\"https://www.augsburger-allgemeine.de/politik/es-gilt-das-gebrochene-wort-wie-cdu-csu-und-spd-ihre-wahlversprechen-brechen-110166787\">pattern is the same</a>: half the campaign promises become coalition footnotes within months, and there is no formal mechanism that makes this expensive for anyone.</p>\n<p>AI has now made political bullshit cheap to produce at industrial scale, and the supply will only grow. Every honest voter I know feels the gap between what gets said before an election and what gets done after, and the gap has no bridge.</p>\n<p>So when someone proposes a sharp little gate that filters the most clueless votes out, part of you thinks: yeah, finally.</p>\n<p>That part is wrong, but it’s wrong in a way worth tracing carefully. The gate-instinct is responding to a real disease. The trick is figuring out what the disease actually is, where it sits, and what would actually treat it without breaking the patient.</p>\n<hr>\n<h2 id=\"What-the-gate-gets-wrong\"><a href=\"#What-the-gate-gets-wrong\" class=\"headerlink\" title=\"What the gate gets wrong\"></a>What the gate gets wrong</h2><p>The cheap rebuttals come first because they are not where the interesting argument lives.</p>\n<p>Yes, a knowledge gate at the ballot box would be unconstitutional in Austria. <a href=\"https://www.ris.bka.gv.at/eli/bgbl/1930/1/A26/NOR40136980\">Article 26 B-VG</a> requires votes to be <em>allgemein, gleich, unmittelbar, persönlich, frei und geheim</em>, and a quiz breaks at least <em>allgemein</em> and <em>gleich</em>. Yes, the <a href=\"https://ks.echr.coe.int/documents/d/echr-ks/guide_art_3_protocol_1_eng\">ECHR Article 3 Protocol 1</a> reading from Strasbourg has explicitly ruled out literacy or knowledge tests. Yes, the US <a href=\"https://en.wikipedia.org/wiki/Voting_Rights_Act_of_1965\">Voting Rights Act of 1965</a> bans them by name because of how <a href=\"https://en.wikipedia.org/wiki/Jim_Crow_laws\">Jim Crow</a> used them in practice. All of that is true, all of it is important, and none of it is what makes the quiz idea actually wrong at its root.</p>\n<p>The deeper problem is that the quiz misunderstands what voting is <em>for</em>.</p>\n<p>Most people have never had to articulate why they vote. The quiz forces the question. And once you ask it, you notice that several different theories of what voting accomplishes coexist in the modern democratic mind, mostly without anyone naming them.</p>\n<p>You can think voting is <strong>information aggregation</strong>. Many votes pool into something more accurate than any single one (this is roughly the <a href=\"https://en.wikipedia.org/wiki/Condorcet%27s_jury_theorem\">Condorcet jury theorem</a>). On this view, what matters is whether the inputs are accurate, and uninformed votes pollute the signal. Filter them out, get a better signal. The quiz-gate fits this theory cleanly.</p>\n<p>You can think voting is <strong>preference aggregation</strong>. People want different things, and democracy is how those wants get added up. Whether someone is “correct” about policy is not really the question. What matters is that their authentic preference appears in the count.</p>\n<p>You can think voting is <strong>legitimation</strong>. A government is legitimate if it has been chosen by those it governs. The aggregation matters less than the authorization. Voting is what turns power into legitimate authority, regardless of how informed any individual ballot was.</p>\n<p>You can think voting is <strong>co-authorship</strong>. Democracy is the system through which we collectively write the rules we then live under. Even uninformed votes assert co-authorship. Excluding people from authorship because their authorship is “uninformed” dissolves the very thing democracy is.</p>\n<p>Modern democracy roughly settles on a mix of the second, third, and fourth theories. The first one, voting as information aggregation, sounds intuitive, but the moment you actually try to enforce it you end up with a literacy test at the door, and we know how that ended. Across roughly two centuries of pulling on this thread, we have collectively decided that the costs of treating votes epistemically are larger than the benefits. Gatekeepers drift toward whichever class controls the gates. Authorization breaks the moment you start excluding citizens from it. The legitimation function is corroded faster than the information function is improved.</p>\n<p>So the quiz is not just morally bad because it would discriminate, although it would. It is <em>categorically</em> mistaken: it tries to apply quality control to a process that isn’t primarily doing the thing it assumes the process is doing. It treats voting as an exam when voting is, mostly, a contract.</p>\n<hr>\n<h2 id=\"Where-the-quiz-still-points-at-something-real\"><a href=\"#Where-the-quiz-still-points-at-something-real\" class=\"headerlink\" title=\"Where the quiz still points at something real\"></a>Where the quiz still points at something real</h2><p>Walk the gate-instinct back, and the underlying intuition still has work in it. The intuition was that there is a real problem with how informed our political choices are. That problem is real. The mistake the gate makes is locating the problem on the <strong>voter side</strong>. The leverage is on the <strong>supply side</strong>.</p>\n<p>Look again at the Austrian examples. The ÖVP did not break the <em>Neuer Stil</em> promise because voters were too dim to notice. Voters noticed. The party paid no formal price beyond a slow electoral one years later. The 2019 coalition compromise on climate did not happen because nobody read it. People read it. There is just no mechanism that turns “I read this and the party is now doing something different” into a consequence the party feels in real time. The promises themselves have the legal weight of a tweet.</p>\n<p>This is what the quiz-gate intuition was actually pointing at. Not “voters are uninformed”, but “the system has no formal mechanism to keep the supply of political claims honest between an election and the next one.” The gate panics about voter quality because nothing else moves. It is the wrong fix, but the underlying alarm is correct.</p>\n<p>The democratic answer to this is not to filter the demand side. It is to discipline the supply side. There are concrete tools for that.</p>\n<p><strong>Binding party-program archives.</strong> <a href=\"https://en.wikipedia.org/wiki/Wahl-O-Mat\">Wahl-O-Mat</a> in Austria and Germany already nudges parties toward written-down positions. The next step is to make those positions binding-by-archive: a public, timestamped, signed record of what each party committed to before the election, hosted by an independent body, frozen on a published deadline. Independent watchdogs (think <a href=\"https://www.aktivpassiv.at/faktencheck\">Faktencheck Austria</a> or <a href=\"https://www.apa.at/faktencheck/\">APA-Faktencheck</a>) can then track delivery against record. This is not a law that forces parties to keep promises. It is infrastructure that makes broken promises a checkable, citable, repeated event instead of a generalized vibe.</p>\n<p><strong>Standardized voter information that parties cannot spin.</strong> <a href=\"https://en.wikipedia.org/wiki/Voter_information_pamphlet\">Voter Information Pamphlets</a> like the ones Oregon and Washington mail to every voter put each party’s headline claims into a fixed format with equal length, plain language, and a timestamp. Austria has nothing comparable. The official ballot is bureaucratic theatre. The actual claim landscape is whatever parties pay to put on billboards and what platforms decide to amplify. A standardized pamphlet, sent to every household, takes a slice of that landscape and forces it through a single comparable filter. It is small. It is also the kind of small thing that compounds across decades.</p>\n<p><strong>Real ad transparency, enforced.</strong> The <a href=\"https://digital-strategy.ec.europa.eu/en/policies/digital-services-act-package\">EU’s Digital Services Act</a> gives member states real teeth on political-ad disclosure. Most member states are not using them. A serious public ad archive, with full disclosure of who paid, what was said, when it ran, and on which platform, is a low-glamour intervention that already has the legal scaffolding. The 2024 Austrian campaign saw <a href=\"https://en.wikipedia.org/wiki/Deepfake#Politics_2\">AI-generated political content circulating with no clear disclosure regime</a>. Closing that hole is enforcement, not legislation.</p>\n<p><strong>Civic education that survives mid-secondary school.</strong> Austria’s <em>Politische Bildung</em> curriculum reaches kids briefly in their teens and rarely after. Most adults’ political education is whatever they happen to absorb during campaigning, which is structurally the worst-case curriculum because the people teaching it have an interest in obscuring rather than explaining. Long-term, the deepest lever is the one almost nobody campaigns on, because the payoff is decades out and the political return is zero.</p>\n<p>None of these is a single-shot fix. None is as cute as a quiz at the booth. But each of them is treating the actual disease (a supply-side fog machine) instead of the wrong patient (the voter trying to read through it).</p>\n<hr>\n<h2 id=\"What-survives-once-the-gate-is-gone\"><a href=\"#What-survives-once-the-gate-is-gone\" class=\"headerlink\" title=\"What survives once the gate is gone\"></a>What survives once the gate is gone</h2><p>The thing the quiz wants is a moment of forced clarity at the moment of decision. We cannot have that at the moment of voting itself, for good reasons. But we can have it <em>everywhere upstream</em> of the moment of voting: in the campaign, in the coalition, in the post-election delivery check.</p>\n<p>That is the move. Don’t make voting harder. Make lying harder. Make breaking promises more visible. Make the supply of political information less of a fog and more of a record. Each of those is a real lever. Each of those, unlike the quiz, actually strengthens democracy instead of trimming the people allowed to participate in it.</p>\n<hr>\n<h2 id=\"What-I-learned-by-being-wrong\"><a href=\"#What-I-learned-by-being-wrong\" class=\"headerlink\" title=\"What I learned by being wrong\"></a>What I learned by being wrong</h2><p>The colleague and I were treating voter ignorance as the problem. The actual problem is that parties operate in a near-zero accountability environment between elections, and voters have to make consequential decisions on the basis of evaporating claims. The fix is not a gate. The fix is to stop the evaporation.</p>\n<p>Whenever I catch myself wanting to filter people <em>out</em> of a process to make the process work, that is usually a sign I have located the failure on the wrong side. Democracy does not need smarter voters. It needs a system that does not reward parties for being deliberately unclear about what they intend to do.</p>\n<p>Democracy does not need a pop quiz. It needs less fog machine and more sentences that can be checked.</p>\n",
            "tags": [
                "Privacy",
                "EU",
                "Austria",
                "Democracy",
                "Elections",
                "featured",
                "Voting Rights",
                "Thought Experiment"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2025/09/21/kindergarten-teachers/",
            "url": "https://tim.kicker.dev/2025/09/21/kindergarten-teachers/",
            "title": "Playing with Kids All Day (And Other Lies About Kindergarten Teachers)",
            "date_published": "2025-09-21T10:33:05.000Z",
            "content_html": "<p><img src=\"/2025/09/21/kindergarten-teachers/thumbnail.webp\" alt=\"thumbnail\"></p>\n<p>Ask people what kindergarten teachers actually do all day and the answer is usually some version of “play with kids.” Not “real” work in the way an office job or trades are real work. Glorified babysitting with arts and crafts. Pleasant if you like kids, easy if you don’t, paid accordingly either way. But spend a few months actually inside one and that picture falls apart pretty fast.</p>\n<p>I did my Zivildienst in a kindergarten. I came in expecting a fairly low-stakes year. I left with very different views about what the work involves, what it pays, and why both of those things look the way they do. The post below is partly the institutional reality, partly a lesson I had to be in the room to learn.</p>\n<hr>\n<h2 id=\"The-work-itself\"><a href=\"#The-work-itself\" class=\"headerlink\" title=\"The work itself\"></a>The work itself</h2><p>Pay first, since that’s where the disconnect is most visible. In Austria, kindergarten teachers often <a href=\"https://www.heute.at/s/kindergaertnerin-verdient-weniger-als-reinigungskraft-120001271\">earn less per hour than cleaning staff</a>. The average wage sits around €14.97 per hour, barely above the poverty threshold. This isn’t a recent dip. Back in 2015, kindergarten teachers in Styria already reported <a href=\"https://steiermark.orf.at/v2/news/stories/2710223/\">severe understaffing and low pay</a> as the main reason colleagues were leaving the field.</p>\n<figure class=\"post-figure\"><img src=\"/2025/09/21/kindergarten-teachers/paycheck.png\" alt=\"paycheck\"><figcaption>Via <a href=\"https://www.finanz.at/gehalt/kindergaertnerin/\">Gehalt für Kindergärtner in Österreich - Finanz.at</a></figcaption></figure>\n\n<p>And those are just the paid hours. A study by the Austrian Union (ÖGB) found that documentation, planning and prep <a href=\"https://www.oegb.at/themen/gleichstellung/kinderbetreuung/arbeitsbelastung-in-kindergaerten-nimmt-zu\">regularly bleed into evenings and weekends</a> because there’s no realistic way to fit them into the actual workday. Vienna alone had over <a href=\"https://vorarlberg.orf.at/stories/3239242/\">700 unfilled positions</a> at one recent count, which means everyone still in the system is absorbing the gap. Burnout, sick days where staff show up anyway because calling in wrecks the rest of the team, the standard pattern of every understaffed care profession.</p>\n<p>Then the part of the job that doesn’t show up on a payslip. Many kids arrive carrying <a href=\"https://www.statistik.at/services/tools/services/publikationen/detail/1845\">things going on at home</a>: divorce, neglect, inconsistent parenting, emotional needs nobody at home is equipped to handle. Kindergarten teachers are usually the first adults to notice when something is off, and they’re expected to communicate that delicately to parents who don’t always want to hear it. Then there are the <a href=\"https://en.wikipedia.org/wiki/Helicopter_parent\">helicopter parents</a> on top. No, Karen, your child repeatedly pushing others isn’t “expressing individuality,” it’s creating chaos. Dealing diplomatically with people like that is itself emotional labor, and nobody is paying anyone for it.</p>\n<p>I still remember my own kindergarten days. Back then, mornings were the norm and afternoon care was a rare luxury. At my kindergarten there was exactly one afternoon group. Fast forward to today and children are entitled to up to <strong>50 hours</strong> of care per week, and a lot of families need that whole window. What used to be mostly mornings has turned into full-day care, while salaries have barely moved in twenty years. The system can’t keep up; many parents still scramble for proper afternoon spots.</p>\n<p>During my Zivildienst I noticed something that has stuck with me: some kids spent so many hours there that I was seeing them more often than one of their parents did. Just let that sink in. A kindergarten teacher can become the adult a child spends the most waking hours with. In those cases the kindergarten isn’t just a family supplement, it becomes a family substitute. That requires time, sensitivity and a huge amount of professional skill from the staff, far beyond the idea of “just playing.”</p>\n<p>If something at this scope happened in any other industry, people would be on the streets within a week. Imagine factory workers being told: <em>“Congrats, double shifts now. Pay stays where it was.”</em> You’d have the <em>Metaller</em> out faster than you can say strike.</p>\n<hr>\n<h2 id=\"Why-does-nobody-take-this-seriously\"><a href=\"#Why-does-nobody-take-this-seriously\" class=\"headerlink\" title=\"Why does nobody take this seriously?\"></a>Why does nobody take this seriously?</h2><p>One reason is painfully obvious: gender. Childcare is overwhelmingly female, with <a href=\"https://vorarlberg.orf.at/stories/3239242/\">women making up around 92% of the workforce</a>. This isn’t a statistical fluke. Care-based fields dominated by women are <a href=\"https://onlinelibrary.wiley.com/doi/full/10.1111/jan.16835\">historically and consistently undervalued, underpaid and ignored by policymakers</a>. Kindergarten teaching sits right in the middle of that pattern. If 90% of kindergarten teachers were men, we’d probably be calling them “early childhood engineers” by now and paying them like junior consultants at McKinsey.</p>\n<p>Austrian politics still treats kindergarten teaching as <a href=\"https://www.arbeit-wirtschaft.at/beschaeftigt-weiblich-unterbezahlt/2/\">closer to babysitting than to a teaching profession</a>, despite the formal qualifications saying otherwise. Kids don’t vote, the workforce isn’t a swing constituency, and “we need to seriously raise kindergarten budgets” wins exactly zero elections. So the system stays neglected and the people inside it absorb the cost.</p>\n<p>These educators aren’t just “watching the kids play.” They are professional caregivers, trained educators, psychologists who identify and support emotional struggles, skilled mediators handling daily conflicts, nurses attending to scrapes and bruises and crisis managers when something actually goes wrong. The skill set is broad and the emotional resilience required is real. The expertise stays underestimated, underfunded and underappreciated because the underlying assumption is that “women’s work” doesn’t count as proper work.</p>\n<p>It’s not that nobody knows the conditions are bad. The numbers are public, the studies exist, the unions publish reports every other year. The reason the situation persists is that the political incentive to fix it is almost zero.</p>\n<p>When the care and education of children is treated as secondary work, the message is clear. Children, and the people raising them, aren’t the priority.</p>\n<hr>\n<h2 id=\"“But-at-least-they-get-to-play-”\"><a href=\"#“But-at-least-they-get-to-play-”\" class=\"headerlink\" title=\"“But at least they get to play!”\"></a>“But at least they get to play!”</h2><p>Yeah, about that.</p>\n<p>Play isn’t trivial. It’s the building block of social, emotional and cognitive development, the substrate on which empathy, cooperation, language and basic problem-solving get built. Guiding that process effectively requires specialized training, psychological literacy, patience, and continuous attention. None of which is free, and none of which comes from winging it with kids.</p>\n<p>In Austria, kindergarten teachers train through specialized institutions called <a href=\"https://de.wikipedia.org/wiki/Bildungsanstalt_f%C3%BCr_Elementarp%C3%A4dagogik\">Bildungsanstalten für Elementarpädagogik (BAfEP)</a>. Five years of formal education, ending in a full Matura. The same university-qualifying credential as any other Austrian secondary school. Combined theoretical coursework and intensive practical placements. Helping a child process the emotional fallout of a parental divorce, recognizing the <a href=\"https://www.gpa.at/kollektivvertrag/forschung-und-bildung/elementarpaedagogik\">signs of neglect or abuse</a> early enough to act on them, spotting developmental delays before they harden, mediating the same fight between the same two kids fourteen days in a row without losing patience. That’s the work.</p>\n<p>Calling it “playing” isn’t a description. It’s a way of justifying not paying for it.</p>\n<hr>\n<h2 id=\"What-would-actually-help\"><a href=\"#What-would-actually-help\" class=\"headerlink\" title=\"What would actually help\"></a>What would actually help</h2><p>Some Austrian regions have started inching forward. <a href=\"https://steiermark.orf.at/v2/news/stories/2710223/\">Styria and Upper Austria have raised wages slightly and shrunk group sizes</a>, which is something. It isn’t, by any sensible reading, close to enough.</p>\n<figure class=\"post-figure\"><img src=\"/2025/09/21/kindergarten-teachers/fpo.png\" alt=\"example of the FPÖ\"><figcaption>Disrespectful non-solutions won’t change a thing, <a href=\"https://kaernten.orf.at/stories/3285855/\">source</a></figcaption></figure>\n\n<p>Politicians like to call kindergarten teachers unsung heroes around election season. The applause is free; it always is. What would actually move things is unglamorous and expensive: meaningfully higher wages, smaller groups, paid prep and recovery time, and treating the profession as the educational field it formally already is. None of those are mysteries. They just don’t get done.</p>\n<p>Kindergarten teachers aren’t babysitters. The role rolls together what would, in any other context, be split across an educator, a therapist, a nurse, a negotiator and a role model. Every day they handle the chaos, solve the emotional puzzles, mediate the conflicts and shape the next generation, and most of that goes unrecognized and unpaid. They deserve more than poverty-level wages, chronic understaffing and the steady drip of public condescension.</p>\n<p>The math here isn’t complicated. We say children are the future and we pay the people raising them less than the people who clean the building. That contradiction is the whole story.</p>\n<p>If we keep going down this path of indifference and neglect, we shouldn’t be surprised when nobody is left to care for our children. Maybe only then, faced with an actual childcare crisis, will the conversation finally shift away from “just playing” and toward what the work is: essential, skilled and foundational education shaping our collective future. (Until then, keep telling yourself Paw Patrol is raising your kid.)</p>\n",
            "tags": [
                "Mental Health",
                "Kindergarten",
                "Childcare",
                "Austria",
                "Education",
                "Workforce",
                "Burnout",
                "Gender Inequality"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2025/09/14/flip-phone/",
            "url": "https://tim.kicker.dev/2025/09/14/flip-phone/",
            "title": "Surviving Modern Life with a Flip Phone (Barely)",
            "date_published": "2025-09-14T08:29:47.000Z",
            "content_html": "<p><img src=\"/2025/09/14/flip-phone/thumbnail.webp\" alt=\"Thumbnail for blogpost: image of my flipphone and other utils needed\"></p>\n<p>Mama was right: Smartphones are frying our brains. App locks, screentime reminders, digital detoxes: we’ve tried them all. Nothing sticks because honestly? We’re just too good at tricking ourselves. (Even if it means pretending chess.com counts as “productive screen time.”)</p>\n<p>So about 2 years ago, I switched to a flip phone. No irony. No minimalist bragging. I just genuinely needed a break… not a full digital exile, just WhatsApp, Maps and basic calling. Less noise, fewer distractions.</p>\n<p>A few friends recently asked how it went, considering giving it a shot themselves. So here it is: my ongoing saga. The good, the bad and how I briefly caved and went crawling back to my smartphone before deciding flip phones were still the way to go.</p>\n<p>Interestingly, as a computer science student, disconnecting entirely wasn’t even an option. Turns out it’s pretty common among tech people: the more technology we deal with professionally, the less we want it intruding into every waking moment.</p>\n<hr>\n<h2 id=\"My-First-Brick\"><a href=\"#My-First-Brick\" class=\"headerlink\" title=\"My First Brick\"></a>My First Brick</h2><p><img src=\"/2025/09/14/flip-phone/cat.jpeg\" alt=\"Cat S22 Flip-Phone\"></p>\n<p>The first flip phone I tried was the <a href=\"https://www.amazon.de/Caterpillar-S22-Flip-Touchscreen-wasserdicht/dp/B0BTTQGVVW\">CAT S22</a>. Built like a tank, ran Android and could survive a warzone. Perfect, because at the time I was doing my civil service at a forest kindergarten. Every day in the woods, every day kids pulling and throwing stuff around. That phone could fall a hundred times a day and just laugh at me. Also, it looked ridiculously badass, like the modern version of a <a href=\"https://external-content.duckduckgo.com/iu/?u=https://m-cdn.phonearena.com/images/articles/397128-image/HeaderV44.jpg&f=1&nofb=1&ipt=9ed379d89786b3f7f6cfadf4c545eb7b90978fd0f9057be516dce1ddb92c49d4\">2000s Nokia brick</a>. Heavy, tough, but not exactly pocket-friendly. Carrying that thing around felt like dragging a dumbbell everywhere. Cool at first, annoying later.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/T9_(predictive_text)\">T9 texting</a>, if you don’t know, means typing with the number keys where each key corresponds to multiple letters, pressing each key multiple times to get the letter you want. I tried. I really did. There’s a kind of poetry to it, once you get used to it. But honestly? It’s like learning to ride a bike without wheels. Every time I thought I was getting faster, my thumbs reminded me otherwise. I even tried using the small touchscreen display keyboard, but that’s even more impossible. After struggling for about two months, I started looking for something easier.</p>\n<hr>\n<h2 id=\"Round-2-but-not-for-long…\"><a href=\"#Round-2-but-not-for-long…\" class=\"headerlink\" title=\"Round 2 (but not for long…)\"></a>Round 2 (but not for long…)</h2><p><img src=\"/2025/09/14/flip-phone/nokia.jpg\" alt=\"Mirror nokia\"></p>\n<p>Enter the <a href=\"https://www.tastenhandy.de/nokia-150-2020/\">Nokia 150</a>. Cheap, incredibly lightweight and simple. Running KaiOS, a lightweight operating system that still had WhatsApp and Maps built-in. Exactly what I needed. The battery life was amazing, like I could easily get through an entire week without charging it, something almost unimaginable with a regular smartphone. It felt good. The keyboard was way more responsive and after some jailbreaking and removing the usual bloatware nonsense, it was basically perfect.</p>\n<p>Until, of course, they decided to <a href=\"https://faq.whatsapp.com/420008397294796\">drop WhatsApp support</a>. Right after I fucking bought it, naturally. Perfect timing. Literally can’t have shit.</p>\n<hr>\n<h2 id=\"Third-Time’s-the-Charm\"><a href=\"#Third-Time’s-the-Charm\" class=\"headerlink\" title=\"Third Time’s the Charm\"></a>Third Time’s the Charm</h2><p><img src=\"/2025/09/14/flip-phone/quin.jpeg\" alt=\"Quin\"></p>\n<p>So, onto flip phone number three (phew): <a href=\"https://qinphone.com/products/qin-f21-pro-smart-keypad-phone-compact-2-8-inch-touchscreen-android-11-4g-lte-single-camera-google-play-support-ideal-backup-work-phone-porcelain-white-iron-grey\">the Quin F21 Pro</a>. Maybe the best phone I ever owned. Full Android, which meant slow but working banking apps, WhatsApp videocalls, even Bluetooth for my headphones. A flip phone that actually functioned like a modern device, just without the noise. It was exactly what I needed.</p>\n<p>And honestly, life was better. Instead of <a href=\"https://en.wikipedia.org/wiki/Doomscrolling\">doomscrolling</a>, I read books again. Instead of staring at a screen during every free moment, I actually noticed what was happening around me. Conversations got better too.</p>\n<p>I had more free time overall. Without the constant pull to check notifications, I rediscovered simple pleasures. Like actually enjoying the scenery on my commute or genuinely engaging in conversations. My sleep improved drastically too, turns out staring into the void is better for melatonin than scrolling reddit until my eyes bleed (wowie). I still had Google Maps for navigation and even apps like Instagram and Snapchat. Instagram was handy for checking artist updates or if friends posted something interesting, which I usually found out about second-hand through friends anyway, so i deactivated my account. Snapchat stuck around partly because it was fun and partly because some friends exclusively communicated there (yes, looking at you, Tami).</p>\n<p>Interestingly, I never openly advertised having a flip phone, but whenever I pulled it out, it inevitably sparked curiosity and conversation. It wasn’t a desperate attempt at attention, but a genuinely interesting icebreaker. Unless you saw me daily, you probably didn’t even know I had one. My phone cameras were always subpar, so my photos didn’t really give it away and replying to texts quickly was <a href=\"/2025/09/14/flip-phone/notanswer.jpeg\">never my strong suit anyway</a>.</p>\n<p>I also picked up a cheap digital camera from eBay for <a href=\"/2025/09/14/flip-phone/digi.png\">about six euros</a> to capture moments. Surprisingly, it turned out perfect for parties and festivals. Nobody wants a smartphone pointed in their face, but a goofy, retro-looking digicam? Yeah, that seems to work.</p>\n<figure class=\"post-figure\"><img src=\"/2025/09/14/flip-phone/friends.webp\" alt=\"Digicam pic\"><figcaption>Digicam picture of <a href=\"https://instagram.com/elias.kicker/\">Elias</a>, <a href=\"https://instagram.com/julianoberhauser/\">Julian</a>, <a href=\"https://instagram.com/micictamaraa/\">Tamara</a> &amp; <a href=\"https://www.instagram.com/joel_thomazs/\">Joey</a></figcaption></figure>\n\n<hr>\n<h2 id=\"…-but-why-would-i-stop\"><a href=\"#…-but-why-would-i-stop\" class=\"headerlink\" title=\"… but why would i stop?\"></a>… but why would i stop?</h2><p>Life changed. I moved out to start university. New city, new life, new everything. Suddenly I needed apps. Bureaucracy apps like ID-Austria, student apps, public transport apps, all things that just didn’t work on a flip phone. Even my digital ID required an iPhone or a verified Android. Trying to keep up with everything while juggling old-school tech quickly became a logistical nightmare.</p>\n<p>And then came the nudge from my family. Everyone already had iPhones. I resisted for years because I liked the freedom of Android, I liked tinkering. But reality caught up with me. My parents offered to help pay for it if I switched a few years ago and… here we are.</p>\n<figure class=\"post-figure\"><img src=\"/2025/09/14/flip-phone/transfer.jpg\" alt=\"\"><figcaption>Data transferred. Flip phone off. iPhone in my pocket.</figcaption></figure>\n\n<hr>\n<p>The adjustment was fast. Wayyy too fast. Within days I was back in the old habits. Screentime creeping up, falling into scrolling rabbit holes, just like before. No self-control app can fix this, because the real enemy isn’t the phone. It’s in front of the screen 【°〜°】. Weeks go by, months go by…</p>\n<p>But maybe the story doesn’t end here.</p>\n<p>Because eventually, I <em>did</em> go back.  And I’m staying.</p>\n<p>At some point, I realized I missed the simplicity. The quiet. The headspace. So I switched again and not because I had to, but because I wanted to. My flip phone is back in my pocket and the smartphone? Still exists. Still charged. But mostly sits in a drawer, waiting patiently for its once-a-month cameo in some bureaucratic horror story involving ID-Austria or my banking app refusing to cooperate. That’s it. It’s a tool now, not a leash.</p>\n<p>And honestly? Life’s better this way.</p>\n<p>Sure, sometimes people look at me like I’m a drugdealer (can’t blame them ngl). Sometimes I don’t reply right away. Sometimes I don’t reply at all. And yeah… that’s kind of the point.<br>I don’t want to be available 24&#x2F;7. Maybe I don’t <em>want</em> to be reachable all the time. Maybe I’m just out living my life. Or maybe I’m ignoring you. Who knows. ¯_(ツ)_&#x2F;¯</p>\n<p>The thing is, I don’t miss the noise. I don’t miss the endless notifications or the pressure to stay „connected“ all the time. The flip phone gave me something I didn’t realize I needed: <strong>permission to check out</strong>. To be <em>unreachable</em> once in a while. And not feel bad about it.</p>\n<p>So yeah. No cliffhanger here. No „maybe I’ll switch back“ drama for the next few years (shocking, I know, considering I could probably turn ordering coffee into an <em>existential crisis</em>). I’m keeping the flip phone. The smartphone stays off, unless I <em>need</em> it for some official nonsense or, I don’t know, decide to backpack to Novosibirsk (one day Florian, one day).<br>But until then?</p>\n<p>I’m good.</p>\n<p><em>(Even though they dropped WhatsApp support again and I had to <a href=\"https://xdaforums.com/t/guide-xiaomi-qin-f21-pro-custom-firmware-root-playstore-certified.4405615/\">root the damn thing</a> and eventually use it as a linked device. Fuck me)</em></p>\n<hr>\n",
            "tags": [
                "Flip Phone",
                "Digital Minimalism",
                "Smartphone Detox",
                "Offline Living",
                "Tech Burnout",
                "Productivity",
                "Digital Balance",
                "Screen Time",
                "Anti-Smartphone"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2025/04/25/austria-surveillance/de/",
            "url": "https://tim.kicker.dev/2025/04/25/austria-surveillance/de/",
            "title": "Österreich will Messenger knacken und nennt es Sicherheit",
            "date_published": "2025-04-25T14:08:42.000Z",
            "content_html": "<p><img src=\"/2025/04/25/austria-surveillance/thumbnail.webp\" alt=\"Thumbnail for blogpost\"></p>\n<p>Österreich diskutiert gerade die Idee, Messenger-Dienste zu verpflichten, Backdoors einzubauen. Natürlich alles nur, um die “Sicherheit zu verbessern” und Kriminalität zu bekämpfen. Klingt auf den ersten Blick sogar halb vernünftig. Wer will schon keine Banausen fangen? Aber lass uns kurz einmal wirklich darüber nachdenken.</p>\n<hr>\n<p>Stell dir vor, dein Haus bekommt eine geheime Hintertür. Nur für den Fall, dass die Polizei mal rein muss. (An sich schon absurd genug, aber gut.) Und dann wachst du eines Morgens auf und findest fremde Fußspuren im Wohnzimmer, vielleicht chinesische oder russische. Genau so funktioniert IT-Sicherheit nämlich in echt. Wenn du eine Backdoor einbaust, rollst du im Prinzip den roten Teppich aus und lädst Hacker aus der ganzen Welt ein. Und ja, früher oder später kommt dann garantiert jemand vorbei, den du wirklich nicht auf ein Stamperle da haben willst.</p>\n<p>Die Fantasie von “sicherer Verschlüsselung, aber mit einem geheimen Schlüssel nur für den Staat” ist nicht nur naiv, sie ist gefährlich unmöglich. Vor allem, weil dieser Schlüssel irgendwann genau dort landet, wo er immer landet: auf Dorfpolizist Franz Herburgers staubigem Windows-7-Büro-PC, direkt neben dem Faxgerät. Kann man sich eine schönere Security-Umgebung vorstellen?</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Nothing_to_hide_argument\">“Also ich habe doch nichts zu verbergen”,</a> hör ich eh schon zu oft. Denkt doch mal nach. Selbst wenn eure Chats über Netflix-Empfehlungen und Pizza-Toppings wirklich egal sind (fair), was ist mit Passwörtern? Bankdaten? Arbeitskommunikation? Oder gehen wir eine Stufe höher: Kommunikation von Politikern, CEOs, Leuten die unser Stromnetz managen, Gesundheitsdiensten oder Journalisten mit sensiblen Quellen. Messenger-Apps sind längst nicht mehr nur ein kurzer Chat. Sondern unsere grundlegende Infrastruktur.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Beate_Meinl-Reisinger\">Beate Meinl-Reisinger (NEOS)</a> meinte dazu kürzlich sinngemäß: <a href=\"https://on.orf.at/video/14270795/15858022/koalition-einigt-sich-auf-messenger-ueberwachung-zib-1-vom-08042025\">“Wir werden das diskutieren, manche Experten sagen so, manche so…”</a> Aber hier ist die Wahrheit: Würden Politiker tatsächlich auf Cybersecurity-Experten hören, wüssten sie innerhalb von fünf Sekunden, dass dies eine katastrophale Idee ist. Stattdessen hört man lieber auf Experten für Terrorismus oder Migrationsabwehr. Lustig eigentlich: permanent heißt es “Hört auf die Experten”, aber wenn es dann um echte IT-Sicherheit geht, interessiert es plötzlich niemanden mehr.</p>\n<hr>\n<h2 id=\"Es-braucht-nur-einen-Regierungswechsel\"><a href=\"#Es-braucht-nur-einen-Regierungswechsel\" class=\"headerlink\" title=\"Es braucht nur einen Regierungswechsel\"></a>Es braucht nur einen Regierungswechsel</h2><p>Und nehmen wir mal an, ein Wunder passiert. Alles funktioniert auf einmal perfekt. Der Schlüssel ist sicher, wird verantwortungsvoll genutzt, ausschließlich von einer wohlwollenden Regierung. Wer garantiert dir, dass die nächste Regierung nicht einfach eine komplette 180-Grad-Wende macht, Richtung Autoritarismus oder gleich offener Faschismus? Ein kurzer Blick in die jüngere Geschichte reicht schon (Schauts mal rüber in die <a href=\"https://www.project2025.observer/\">USA</a>, puh).</p>\n<p>Wenn diese Büchse der Pandora einmal offen ist, bekommen wir sie nicht mehr zu. Es geht nicht nur um deine persönliche Privatsphäre. Es geht um ein System, das Missbrauch, Ausbeutung und Spionage plötzlich viel leichter macht. Eine einzige Backdoor senkt die Einstiegshürde für staatliche Hacker, Kriminelle oder gelangweilte Teenager massiv, um richtig Schaden anzurichten.</p>\n<p>Und Österreich? Tja, Glückwunsch. Statt als “neutraler” Vermittler oder für Opernbälle, Skifahren und Schnitzel bekannt zu sein, könnten wir bald als digitales Hirngspinst in Europa gelten. Wobei, seien wir ehrlich: Wir sind eh schon halb dort, da uns nach <a href=\"https://de.wikipedia.org/wiki/BVT-Aff%C3%A4re\">Kickls rechtswidriger Razzia im eigenen Geheimdienst</a> sowieso keine ernsthafte Intelligence-Agency mehr vertraut.</p>\n<p>Privatsphäre hat nichts damit zu tun, “etwas Falsches zu verstecken”, auch wenn viele das glauben. Privatsphäre ist Würde, Freiheit und <strong>S-I-C-H-E-R-H-E-I-T</strong> in unsrer neuen Welt.</p>\n",
            "tags": [
                "Privacy",
                "Cybersecurity",
                "Civil Liberties",
                "Digital Rights",
                "Data Protection",
                "Austria Politics",
                "Messenger Security",
                "Government Surveillance",
                "Encryption",
                "State Surveillance",
                "Backdoors",
                "EU Tech Policy",
                "SPÖ",
                "WhatsApp Security",
                "Signal Messenger",
                "ÖVP",
                "NEOS"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2025/04/25/austria-surveillance/",
            "url": "https://tim.kicker.dev/2025/04/25/austria-surveillance/",
            "title": "Austria Plans to Become Europe's Favourite Playground for Hackers",
            "date_published": "2025-04-25T14:08:42.000Z",
            "content_html": "<p><img src=\"/2025/04/25/austria-surveillance/thumbnail.webp\" alt=\"Thumbnail for blogpost\"></p>\n<p>Austria is discussing the idea of requiring messenger services to install backdoors to “improve security” and help fight crime. On the surface, it might sound reasonable. Who doesn’t want to catch bad guys, after all? But let’s stop and think about it for a second.</p>\n<hr>\n<p>Imagine your home has a secret backdoor, installed “just in case” the police need access. (Already weird enough for me but yeah) Until one morning you find unfamiliar footprints, maybe Chinese or Russian, on your living room carpet. Because that’s exactly how cybersecurity works. If you install a backdoor, you’re essentially laying out a red carpet inviting hackers from all over the globe. And yes, sooner or later, someone you really don’t want dropping by is going to show up.</p>\n<p>The idea of secure encryption with a special secret key “just for the government” is not only naive, it’s dangerously impossible. Especially when that key ends up stored on Dorfpolizist Franz Herburger’s dusty Windows 7 office PC right next to his fax-machine. Can you imagine a better security nightmare?</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Nothing_to_hide_argument\"><em>“But I have nothing to hide,”</em></a> I hear you say. Think again. Even if you believe your conversations about Netflix recommendations and pizza toppings are trivial (fair point), what about your passwords? Bank account details? Critical work communications? Or let’s take it a step further. How about communications from politicians, CEOs, energy grid managers, healthcare providers or journalists protecting sensitive sources? The truth is, messenger apps aren’t just “chat” anymore. They’re vital infrastructure.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Beate_Meinl-Reisinger\">Beate Meinl-Reisinger (NEOS)</a> recently said, <a href=\"https://on.orf.at/video/14270795/15858022/koalition-einigt-sich-auf-messenger-ueberwachung-zib-1-vom-08042025\">“We’ll discuss it… you know, some experts say this, some say that…”</a> But here’s the truth: if politicians actually listened to cybersecurity experts, they’d know instantly that this is a horrible idea. Instead, they prefer consulting experts on terrorism or immigration enforcement. Funny how we always hear politicians urging everyone to “listen to the experts,” yet when it’s time to actually do that, suddenly no one cares.</p>\n<hr>\n<h2 id=\"It-Only-Takes-One-Regime-Change\"><a href=\"#It-Only-Takes-One-Regime-Change\" class=\"headerlink\" title=\"It Only Takes One Regime Change\"></a>It Only Takes One Regime Change</h2><p>And let’s say everything somehow worked perfectly. The key was secure, used responsibly and exclusively by a benevolent government. Who guarantees the next government won’t just pull a 180-degree turn into authoritarianism or outright fascism? Just look at recent history (side-eyeing <a href=\"https://www.project2025.observer/\">at you, USA</a>).</p>\n<p>Once we open that Pandora’s box, there’s no closing it again. It’s not only a question about your personal privacy. It’s way bigger than that and about creating an ecosystem ripe for abuse, exploitation and espionage. Even a single backdoor dramatically lowers the bar for state-sponsored hackers, criminals or bored teenagers to wreak havoc.</p>\n<p>And Austria? Well, congrats. Instead of being known for being a great neutral mediator or other cultural things like Mozart, skiing or schnitzel, we’ll soon join other unfortunate European countries in becoming famous as digital weak spots. Although, let’s be honest, we’re already halfway there since no serious intelligence agency trusts us anymore after <a href=\"https://de.wikipedia.org/wiki/BVT-Aff%C3%A4re\">Kickl’s unlawful raid on our own intelligence service</a>.</p>\n<p>Privacy is not about hiding wrongdoing unlike most people belive; it’s about maintaining dignity, freedom and <strong>S-E-C-U-R-I-T-Y</strong> in this digital age.</p>\n",
            "tags": [
                "Privacy",
                "Cybersecurity",
                "Civil Liberties",
                "Digital Rights",
                "Data Protection",
                "Austria Politics",
                "Messenger Security",
                "Government Surveillance",
                "Encryption",
                "State Surveillance",
                "Backdoors",
                "EU Tech Policy",
                "SPÖ",
                "WhatsApp Security",
                "Signal Messenger",
                "ÖVP",
                "NEOS"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2025/02/24/eol/",
            "url": "https://tim.kicker.dev/2025/02/24/eol/",
            "title": "Rethinking Open Source Responsibility",
            "date_published": "2025-02-24T15:20:53.000Z",
            "content_html": "<p>For a while now, I’ve been playing with a thought experiment: <strong>what happens when your code is used for something you completely disagree with?</strong></p>\n<p>Open source is great. It encourages collaboration, innovation, accessibility. But it never really asks whether there should be any boundaries at all. Right now, if you use a permissive license, you’re saying: “Take this. Do whatever you want.” And sometimes, that “whatever” means mass surveillance, biased AI systems, or much worse.</p>\n<p>Some people say that’s just how open source works. You release something and then it’s out of your hands. But I started to question that. <strong>Does it really have to be?</strong></p>\n<p><em>(Fun fact: Just raising this question is apparently enough to get your post deleted in some open source circles. <a href=\"https://www.reddit.com/r/foss/comments/1ix71mu/comment/mek0y9m/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button\">cough</a> <a href=\"https://www.reddit.com/r/opensource/comments/1ix38w4/comment/mej7eu5/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button\">cough</a>. Seems like the debate is already “settled.”)</em></p>\n<p><img src=\"/2025/02/24/eol/eol-t.png\"></p>\n<hr>\n<h2 id=\"What-is-the-Ethical-Open-License-EOL\"><a href=\"#What-is-the-Ethical-Open-License-EOL\" class=\"headerlink\" title=\"What is the Ethical Open License (EOL)?\"></a>What is the Ethical Open License (EOL)?</h2><p>The <strong>Ethical Open License (EOL)</strong> is a made-up licensing model that asks a simple question. Can we include ethical restrictions in open source?</p>\n<p>Not to block regular users or kill innovation. Just to draw a line in the sand on where software use crosses into unethical territory.</p>\n<p>EOL would prohibit use in things like:</p>\n<ul>\n<li><strong>Mass surveillance</strong>: no large scale tracking, unauthorized data collection, or government spying</li>\n<li><strong>Autonomous weapons</strong>: no military AI, targeting systems, or automated killing machines</li>\n<li><strong>Discriminatory AI</strong>: no systems that reinforce social bias or make decisions based on race, gender, or class</li>\n<li><strong>Exploitation networks</strong>: no platforms for child abuse, trafficking, or exploitation of vulnerable people</li>\n</ul>\n<p>Obviously, someone has to define what’s “ethical,” and yeah, that’s a big conversation. But pretending this isn’t a problem doesn’t make it go away.</p>\n<hr>\n<h2 id=\"How-would-EOL-work\"><a href=\"#How-would-EOL-work\" class=\"headerlink\" title=\"How would EOL work?\"></a>How would EOL work?</h2><p>The structure is familiar. You can use, modify, fork, contribute. But there’s a catch: if you cross one of the ethical lines, you lose the right to use the software.</p>\n<p>That would require some kind of process to handle violations. Ideally, an independent board would exist to review complaints and evidence. That brings its own headaches, obviously. But having no process at all leads to chaos and loopholes.</p>\n<p>Enforceability is a big issue. And no, this wouldn’t stop people who already ignore laws. But licenses aren’t just about catching criminals. They help shape norms. They tell people, “We don’t want this used for that.” And sometimes, that matters more than it looks.</p>\n<hr>\n<h2 id=\"Who-pays-for-this\"><a href=\"#Who-pays-for-this\" class=\"headerlink\" title=\"Who pays for this?\"></a>Who pays for this?</h2><p>EOL, like most open source licenses, would be free to use. But if you want enforcement, you’ll need infrastructure. That means money. </p>\n<h3 id=\"Some-possible-options\"><a href=\"#Some-possible-options\" class=\"headerlink\" title=\"Some possible options:\"></a>Some possible options:</h3><ol>\n<li><p><strong>Do-it-yourself (Free)</strong><br>Communities handle enforcement through public discussion. Cheap, but messy and unreliable.</p>\n</li>\n<li><p><strong>Independent Ethics Board (IERB)</strong><br>Costs would include:</p>\n<ul>\n<li>Legal checks</li>\n<li>Investigation of misuse</li>\n<li>Admin work</li>\n</ul>\n<p>Funding could come from:</p>\n<ul>\n<li>Companies that believe in ethical tech</li>\n<li>Donations and crowdfunding</li>\n<li>Commercial users contributing small fees to cover costs</li>\n</ul>\n</li>\n<li><p><strong>Hybrid model</strong><br>Small projects rely on the crowd. Big users fund structured oversight.</p>\n</li>\n</ol>\n<p>The details aren’t figured out. But if you care about ethical use, you can’t ignore the question of sustainability.</p>\n<hr>\n<h2 id=\"What-about-royalties\"><a href=\"#What-about-royalties\" class=\"headerlink\" title=\"What about royalties?\"></a>What about royalties?</h2><p>Not sure this even makes sense yet. But here’s the idea: if your company makes millions directly off EOL-licensed software, maybe some of that should support the project and its values.</p>\n<h3 id=\"Proposed-structure\"><a href=\"#Proposed-structure\" class=\"headerlink\" title=\"Proposed structure:\"></a>Proposed structure:</h3><table>\n<thead>\n<tr>\n<th>Annual Gross Revenue</th>\n<th>Royalty Rate</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Less than $1,000,000</td>\n<td>0%</td>\n</tr>\n<tr>\n<td>$1,000,000 - $5,000,000</td>\n<td>1%</td>\n</tr>\n<tr>\n<td>Over $5,000,000</td>\n<td>2%</td>\n</tr>\n</tbody></table>\n<p>Only revenue directly tied to the licensed software or products built from it would count. This wouldn’t touch hobbyists, nonprofits, or tiny startups.</p>\n<p>Money from this could support:</p>\n<ul>\n<li>Investigations and legal help</li>\n<li>Security audits</li>\n<li>Keeping the license alive and enforced</li>\n</ul>\n<hr>\n<h2 id=\"What-people-push-back-on-and-why-that’s-valid\"><a href=\"#What-people-push-back-on-and-why-that’s-valid\" class=\"headerlink\" title=\"What people push back on (and why that’s valid)\"></a>What people push back on (and why that’s valid)</h2><h3 id=\"“Open-source-is-supposed-to-be-neutral”\"><a href=\"#“Open-source-is-supposed-to-be-neutral”\" class=\"headerlink\" title=\"“Open source is supposed to be neutral”\"></a>“Open source is supposed to be neutral”</h3><p>That’s the traditional line. Developers provide tools and it’s not their fault what people do with them.</p>\n<p>But that ignores reality. AI systems don’t just exist. They shape lives. Algorithms decide what you see, what you believe, what opportunities you get. Code has consequences. Pretending it doesn’t isn’t neutral. It’s passive.</p>\n<h3 id=\"“This-isn’t-open-source-anymore”\"><a href=\"#“This-isn’t-open-source-anymore”\" class=\"headerlink\" title=\"“This isn’t open source anymore”\"></a>“This isn’t open source anymore”</h3><p>Yeah, maybe not. At least not under the OSI’s definition. If open source has to allow everything, then EOL doesn’t qualify. Still, it raises a valid point about what “freedom” in tech really means.</p>\n<h3 id=\"“You-can’t-license-ethics-They’re-subjective”\"><a href=\"#“You-can’t-license-ethics-They’re-subjective”\" class=\"headerlink\" title=\"“You can’t license ethics. They’re subjective”\"></a>“You can’t license ethics. They’re subjective”</h3><p>Sure. Ethics aren’t fixed forever. But neither are laws or social norms. We still write them down, argue about them, change them. This isn’t about getting it perfect. It’s about saying something is better than saying nothing.</p>\n<h3 id=\"“This-would-never-hold-up-legally”\"><a href=\"#“This-would-never-hold-up-legally”\" class=\"headerlink\" title=\"“This would never hold up legally”\"></a>“This would never hold up legally”</h3><p>Fair. It would need serious legal review to avoid vague language and gray areas. Right now, it’s not ready for prime time. It’s a draft with a bunch of open questions.</p>\n<h3 id=\"“People-doing-evil-won’t-follow-the-license-anyway”\"><a href=\"#“People-doing-evil-won’t-follow-the-license-anyway”\" class=\"headerlink\" title=\"“People doing evil won’t follow the license anyway”\"></a>“People doing evil won’t follow the license anyway”</h3><p>Also true. But this isn’t about stopping everyone. It’s about drawing a line. And that might affect how the more cautious or image-conscious companies act.</p>\n<hr>\n<h2 id=\"So-is-EOL-a-good-idea\"><a href=\"#So-is-EOL-a-good-idea\" class=\"headerlink\" title=\"So is EOL a good idea?\"></a>So is EOL a good idea?</h2><p>Honestly? Probably not. But ignoring this whole issue is worse.</p>\n<p>Open source has a responsibility problem. And if asking about it is already considered taboo, maybe that’s the clearest sign that something needs to change.</p>\n<p>The <strong>Ethical Open License (EOL)</strong> is on GitHub. It’s messy, unfinished and full of flaws. But maybe that’s the point.</p>\n<p>👉 <a href=\"https://gittea.dev/capitol097/EOL\">github.com&#x2F;timkicker&#x2F;EOL</a></p>\n<p>Whether anything comes of it or not, at least it starts a conversation that a lot of people are clearly avoiding.</p>\n<hr>\n<p>I’m not trying to replace MIT, GPL, or anything like that. But we really need to stop pretending that software is just neutral math.</p>\n<p>What people do with our code matters. And maybe, just maybe, we should care.</p>\n",
            "tags": [
                "Civil Liberties",
                "Open Source",
                "Software Ethics",
                "Digital Responsibility",
                "Free Software",
                "Technology and Ethics",
                "Ethical Open License",
                "Licenses",
                "Ethical Licensing",
                "Software Freedom",
                "Responsibility",
                "Surveillance",
                "Capitalism",
                "Sustainable Open Source",
                "Tech Philosophy"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2024/06/26/the-selfhosting-experience/",
            "url": "https://tim.kicker.dev/2024/06/26/the-selfhosting-experience/",
            "title": "The Selfhosting Experience",
            "date_published": "2024-06-26T18:20:59.000Z",
            "content_html": "<p>I’ve been running my own server for about 2.5 years now and have gained a lot of experience in the process. Since a friend of mine asked about my setup and some tips, I thought it would be best to publish another blog post on this topic. This is one of my more tech-savvy posts, so feel free to skip it if you’re not interested (as if I have any say in this…). I’ll keep this entry updated as long as I’m willing to. </p>\n<p><img src=\"/2024/06/26/the-selfhosting-experience/wondering.webp\" alt=\"Me, sometime at the beginning of 2022\"></p>\n<p>Me, sometime at the beginning of 2022</p>\n<hr>\n<h2 id=\"Reasoning\"><a href=\"#Reasoning\" class=\"headerlink\" title=\"Reasoning\"></a>Reasoning</h2><p>Why would you actually want to host everything yourself in the first place? I mean, it’s a lot of work, a ton of stress and requires constant maintenance?</p>\n<ul>\n<li><p><strong>Availability</strong>: Every single day approximately <a href=\"https://themeisle.com/blog/how-many-websites-are-there/\">3,992,222 websites are created</a> (which is a lot, WTF). However, many sites also become unavailable, leading to data loss, like the shutdown of <a href=\"https://www.theverge.com/2021/5/7/22424356/liveleak-shock-site-shuts-down-itemfix\">LiveLeak</a>, the deletion of YouTube channels, or <a href=\"https://www.buzzfeednews.com/article/otilliasteadman/pornhub-removes-videos\">countless minutes of pornographic material</a>. There are even entire communities dedicated to gathering so-called <a href=\"https://www.reddit.com/r/lostmedia/top/?t=all\">lost media</a>. </p>\n</li>\n<li><p><strong>Ownership</strong><br>Another problem we encounter is that we do not own anything anymore. Seriously, every type of media most people consume comes from streaming services like YouTube, Netflix, Disney+, or Spotify. Every file we consume is rented and not owned by ourselves. Self-hosting, on the other hand, ensures your data never gets lost and is completely owned by you and only you.</p>\n</li>\n<li><p><strong>Privacy</strong>: Your data remains on your premises, reducing the risk of data breaches and unauthorized access that might occur on third-party servers. Of course some of your applications will share information with third parties but at least you’ll be more in control on who has your data</p>\n</li>\n<li><p><strong>Complete Control</strong>: You have full control over the software, configurations and data. You can customize everything to meet your specific requirements.</p>\n</li>\n<li><p><strong>Gaining Technical Skills</strong>: Managing your own server helps you develop valuable skills in system administration, networking, security and troubleshooting. And trust me, there’ll be a lot of troubleshooting…</p>\n</li>\n<li><p><strong>Open Source Support</strong>: By self-hosting, you can support and utilize open-source software, contributing to and benefiting from community-driven projects.</p>\n</li>\n<li><p><strong>Data Sovereignty</strong>: Ensures that your data resides within your jurisdiction, avoiding legal complications associated with cross-border data transfer.</p>\n</li>\n<li><p><strong>Reliability</strong>: You can design your infrastructure for high availability and redundancy, ensuring continuous service without relying on third-party uptime. Like still being able to access your media in case of a network outage.</p>\n</li>\n<li><p><strong>Customization</strong>: You can tailor the software and services to your exact needs, adding features or making changes that hosted solutions might not allow.</p>\n</li>\n<li><p><strong>Cost Savings</strong>: Over time, self-hosting can be more cost-effective than paying for recurring subscription fees for hosted services. Keep in mind that the initial costs will be enormous though!</p>\n</li>\n<li><p>You may also use your server-project on your resume or use it for content if you run out of material for your blogs :)</p>\n</li>\n</ul>\n<h2 id=\"What-to-keep-in-mind\"><a href=\"#What-to-keep-in-mind\" class=\"headerlink\" title=\"What to keep in mind\"></a>What to keep in mind</h2><p>Let me tell you this before you even start to think about starting your own server: It’ll cost you a <del>fuck ton</del> lot of nerves and time. Don’t go into this project thinking it will be easy and you will be done in no time. It requires a lot of troubleshooting, a lot of research and a huge pile of failures. You’ll need discipline to stay on track.</p>\n<p>You’ll gain a considerable amount of technical knowledge, but you’ll also need some basic networking skills. Take some time to study those basic abilities before you start this project. Stop browsing Reddit for the best dashboard theme if you cannot tell me how DHCP works.</p>\n<p>Depending on your situation, there may be a lot of initial costs for the hardware you’ll use. I was lucky enough to use my “old” gaming PC since I grew out of my gaming phase a long time ago. I know it isn’t energy-efficient at all, but it works for now (you’ll encounter this situation a lot during this or similar software projects).</p>\n<p>You may also be able to start of pretty cheap for most projects. Like you could buy a Raspi Zero for about <a href=\"https://buyzero.de/collections/raspberry-pi-zero-kits/products/raspberry-pi-zero-w\">17 Euros nowadays</a> when starting off. It’s not the most powerful device but you’ll be able to host a few decent applications.</p>\n<h2 id=\"My-setup\"><a href=\"#My-setup\" class=\"headerlink\" title=\"My setup\"></a>My setup</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/dashboard.png\"></p>\n<p>I am currently using Ubuntu LTS, as it’s a pretty reliable operating system for servers. There are countless alternatives like Debian or RockyLinux. However, if I had to restart this project from scratch, I’d probably go with <a href=\"https://www.openmediavault.org/\">OpenMediaVault</a> this time.</p>\n<p>I chose to run all my applications using <a href=\"https://www.docker.com/why-docker/\">Docker</a> because I think it’s the best way to run server applications. Docker allows us to package applications into containers, each containing the application code, runtime, libraries and dependencies needed to run the application consistently across different environments.</p>\n<p>Since most self-proclaimed administrators choose to set up a dashboard to maintain a clear perspective on my applications, I opted not to include things like a search engine or third-party websites such as some social media sites, since I only use <a href=\"https://github.com/bastienwirtz/homer\">this dashboard</a> for navigation and nothing else.</p>\n<p>For maintenance and security, I also chose to host a Wireguard-VPN on a separate device, which allows me to access my server remotely without going directly over the internet. This improves our security drastically while also offering some way of maintenance should the main-machine go offline.</p>\n<h2 id=\"Media\"><a href=\"#Media\" class=\"headerlink\" title=\"Media\"></a>Media</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/media.png\"></p>\n<h3 id=\"Plex\"><a href=\"#Plex\" class=\"headerlink\" title=\"Plex\"></a><a href=\"https://watch.plex.tv/en-GB\">Plex</a></h3><p>Plex is the media server I use. You point it at a folder of movies, shows or music, it scans everything, fetches metadata and artwork and lets you stream the whole library from any device with the Plex app. I bought Plex Pass at some point. Jellyfin and Emby are the open-source alternatives most people recommend, but I haven’t moved over.</p>\n<h3 id=\"Calibre-Web\"><a href=\"#Calibre-Web\" class=\"headerlink\" title=\"Calibre Web\"></a><a href=\"https://github.com/janeczku/calibre-web\">Calibre Web</a></h3><p>A web frontend for a Calibre eBook library. Browse and read books in any browser, with metadata management and an integrated reader. Basically Plex but for books.</p>\n<h3 id=\"Audiobookshelf\"><a href=\"#Audiobookshelf\" class=\"headerlink\" title=\"Audiobookshelf\"></a><a href=\"https://www.audiobookshelf.org/\">Audiobookshelf</a></h3><p>Same idea as Calibre Web, but for audiobooks. Streams from any browser with bookmarks, chapter info and playback speed control. Multi-user support if you want to share a library. Works fine.</p>\n<h2 id=\"Server\"><a href=\"#Server\" class=\"headerlink\" title=\"Server\"></a>Server</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/server.png\"></p>\n<p>Those applications are (in my opinion) essential for managing a server as they make life so so much easier.</p>\n<h3 id=\"Portainer\"><a href=\"#Portainer\" class=\"headerlink\" title=\"Portainer\"></a><a href=\"https://www.portainer.io/\">Portainer</a></h3><p>A web UI for Docker. You can technically do everything from the command line, but a dashboard for containers, images, networks and volumes saves a lot of time once you have more than a handful of services running. Also supports Docker Swarm and Kubernetes if you ever go that route.</p>\n<h3 id=\"Nginx-Proxy-Manager\"><a href=\"#Nginx-Proxy-Manager\" class=\"headerlink\" title=\"Nginx Proxy Manager\"></a><a href=\"https://nginxproxymanager.com/\">Nginx Proxy Manager</a></h3><p>A UI for Nginx reverse proxies. You point a domain at a container, click a button to get a Let’s Encrypt certificate, done. The alternative is editing Nginx configs by hand, which is fine but tedious if you have a lot of services.</p>\n<h3 id=\"FileBrowser\"><a href=\"#FileBrowser\" class=\"headerlink\" title=\"FileBrowser\"></a><a href=\"https://filebrowser.org/\">FileBrowser</a></h3><p>A web-based file manager. Upload, download, edit and share files via browser, with user authentication and access permissions. I mostly use it inside my network or for sharing small media files and documents directly. Note: if you proxy it through Cloudflare you can’t share files larger than 500MB.</p>\n<h2 id=\"Download\"><a href=\"#Download\" class=\"headerlink\" title=\"Download\"></a>Download</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/download.png\"></p>\n<p>Making downloads on a home server offers several advantages over downloading directly on personal computers. Firstly, it offloads resource-intensive tasks like downloading large files or torrents, which can slow down or tie up local machines. It also centralizes management, allowing for continuous downloads even when individual computers are turned off. Additionally, a home server can automate downloads, manage storage more efficiently and provide a centralized location for accessing downloaded files from any device on the network, enhancing convenience and accessibility.</p>\n<h3 id=\"QBittorrend-Web-VPN-Killswitch\"><a href=\"#QBittorrend-Web-VPN-Killswitch\" class=\"headerlink\" title=\"QBittorrend Web + VPN Killswitch\"></a><a href=\"https://github.com/MarkusMcNugen/docker-qBittorrentvpn\">QBittorrend Web + VPN Killswitch</a></h3><p>A web UI for the qBittorrent client, packaged with a VPN killswitch that drops all network traffic if the VPN dies. Don’t use uTorrent or the original BitTorrent client, they’re bloated adware now. Transmission is a fine alternative if qBittorrent isn’t your thing.</p>\n<h3 id=\"J-Downloader-2\"><a href=\"#J-Downloader-2\" class=\"headerlink\" title=\"J Downloader 2\"></a><a href=\"https://github.com/jlesage/docker-jdownloader-2\">J Downloader 2</a></h3><p>A download manager for files from hosting and streaming sites. Handles parallel downloads, automatic captcha solving, link encryption and paused&#x2F;resumed jobs.</p>\n<h3 id=\"MeTube\"><a href=\"#MeTube\" class=\"headerlink\" title=\"MeTube\"></a><a href=\"https://github.com/alexta69/metube\">MeTube</a></h3><p>A web UI for youtube-dl. Paste a video URL, pick a quality, hit download. Makes the command-line tool accessible if you’d rather not touch a terminal.</p>\n<h3 id=\"Deemix\"><a href=\"#Deemix\" class=\"headerlink\" title=\"Deemix\"></a><a href=\"https://gitlab.com/Bockiii/deemix-docker\">Deemix</a></h3><p>Downloads music from Deezer, including FLAC and high-quality MP3 if you have a paying account. Tags everything automatically with metadata. Active development stopped, but the tool still works at the time of writing.</p>\n<h3 id=\"Pyload\"><a href=\"#Pyload\" class=\"headerlink\" title=\"Pyload\"></a><a href=\"https://pyload.net/\">Pyload</a></h3><p>Another download manager. Queues files via HTTP, FTP and BitTorrent, supports captcha recognition and premium accounts on hosting sites and has a plugin architecture for whatever else you need. Works well together with the J-Downloader extension.</p>\n<h2 id=\"Stats\"><a href=\"#Stats\" class=\"headerlink\" title=\"Stats\"></a>Stats</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/stats.png\"></p>\n<h3 id=\"Maloja\"><a href=\"#Maloja\" class=\"headerlink\" title=\"Maloja\"></a><a href=\"https://github.com/krateng/maloja\">Maloja</a></h3><p>Self-hosted Last.fm replacement. Tracks what you listen to, builds a profile over time and integrates with most music players via the standard scrobble API. <a href=\"https://music.kicker.dev/\">My instance is here</a>.</p>\n<h3 id=\"Tautulli\"><a href=\"#Tautulli\" class=\"headerlink\" title=\"Tautulli\"></a><a href=\"https://tautulli.com/\">Tautulli</a></h3><p>Statistics dashboard for Plex. Playback history, who watched what, server load, custom notifications. Worth running if you’re admin of a Plex server with multiple users.</p>\n<h3 id=\"Uptime-Kuma\"><a href=\"#Uptime-Kuma\" class=\"headerlink\" title=\"Uptime Kuma\"></a><a href=\"https://github.com/louislam/uptime-kuma\">Uptime Kuma</a></h3><p>Uptime monitor. You add a service, it pings on a schedule and tells you if it’s down. Notifications go to email, Slack, Telegram, whatever. Status pages included, <a href=\"https://status.kicker.dev/status/public\">mine is here</a>.</p>\n<p>A note: I’m running Kuma on the same machine as everything else, except my VPN and my blog. This is dumb, because if the main server dies the uptime monitor dies with it and tells nobody. Don’t do this.</p>\n<p><img src=\"/2024/06/26/the-selfhosting-experience/kuma.png\"></p>\n<p>Kuma-UI of for my public services</p>\n<h3 id=\"Dashdot\"><a href=\"#Dashdot\" class=\"headerlink\" title=\"Dashdot\"></a><a href=\"https://getdashdot.com/\">Dashdot</a></h3><p>A server dashboard with a glassmorphism design that genuinely looks great. Shows the usual metrics (CPU, memory, disk, network) and supports light and dark mode. Aimed at smaller VPS and home setups.</p>\n<p><img src=\"/2024/06/26/the-selfhosting-experience/dashdot-dark.png\"></p>\n<p>Screenshot of the dashdot dark-ui</p>\n<h3 id=\"Umami\"><a href=\"#Umami\" class=\"headerlink\" title=\"Umami\"></a><a href=\"https://umami.is/\">Umami</a></h3><p>Privacy-focused web analytics. GDPR-friendly, no cookies, no personal data, no IP tracking. The dashboard covers the usual things: page views, bounce rates, traffic sources, devices, browsers, locations. Dark mode included. I use it to track <a href=\"https://stats.kicker.dev/share/1Ui8dKfjsfQGAVs5/tim.kicker.dev\">stats for this blog</a>, and it’s the main reason I trust analytics on my own site at all.</p>\n<p><img src=\"/2024/06/26/the-selfhosting-experience/umami-1.png\"><br>Page 1 of my umami-stats at the time of writing this post</p>\n<p><img src=\"/2024/06/26/the-selfhosting-experience/umami-2.png\"></p>\n<p>Page 2, which even features a world-map</p>\n<h3 id=\"Goat-Counter\"><a href=\"#Goat-Counter\" class=\"headerlink\" title=\"Goat Counter\"></a><a href=\"https://www.goatcounter.com/\">Goat Counter</a></h3><p>A minimal open-source alternative to Umami. I’m running it <a href=\"https://altstats.kicker.dev/?hl-period=year&period-start=2023-06-26&period-end=2024-06-26&filter=&as-text=off&daily=off\">in parallel</a> so I can compare numbers and make sure neither tool is drifting wildly off.<br><img src=\"/2024/06/26/the-selfhosting-experience/goat.png\"></p>\n<p>Goatcounter-UI with (somewhat) matching stats</p>\n<h2 id=\"Social-News\"><a href=\"#Social-News\" class=\"headerlink\" title=\"Social &amp; News\"></a>Social &amp; News</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/social.png\"></p>\n<h3 id=\"TinyTinyRSS\"><a href=\"#TinyTinyRSS\" class=\"headerlink\" title=\"TinyTinyRSS\"></a><a href=\"https://github.com/clue/docker-ttrss\">TinyTinyRSS</a></h3><p>A self-hosted RSS reader. I got tired of checking 100 different social media sites every day, so I funnel everything I care about through TT-RSS instead. The setup takes a moment, but once it’s running you get categories, filtering, search and sync across devices. Plenty of desktop and mobile clients can talk to it.</p>\n<h3 id=\"RSS-Bridge\"><a href=\"#RSS-Bridge\" class=\"headerlink\" title=\"RSS Bridge\"></a><a href=\"https://rss-bridge.org/\">RSS Bridge</a></h3><p>Generates RSS feeds for sites that don’t offer one. Most sites used to have RSS and quietly killed it during the <a href=\"https://en.wikipedia.org/wiki/Enshittification\">enshittification</a> era; this puts it back. Works for a lot of social profiles, forums and other sites that locked their content down.</p>\n<h3 id=\"Change-detection\"><a href=\"#Change-detection\" class=\"headerlink\" title=\"Change detection\"></a><a href=\"https://github.com/dgtlmoon/changedetection.io\">Change detection</a></h3><p>Monitors web pages for changes and notifies you when something updates. I use it for sites that don’t expose RSS and aren’t covered by RSS Bridge. Configurable check intervals and notification channels.</p>\n<h3 id=\"Gotify\"><a href=\"#Gotify\" class=\"headerlink\" title=\"Gotify\"></a><a href=\"https://gotify.net/\">Gotify</a></h3><p>A small notification server. You push messages to it via REST API and it forwards them to your devices. I mostly use it for alerts coming out of other selfhosted services.</p>\n<p><em>Great thing I’m writing this blog, as I completely forgot to set this up on my (not so new) phone, 8 months ago</em></p>\n<h2 id=\"Indexers\"><a href=\"#Indexers\" class=\"headerlink\" title=\"Indexers\"></a>Indexers</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/indexers.png\"></p>\n<blockquote><p>The listed applications are hosted by me, but they are non-functional as no legal trackers for media sources were found. This fictional segment is included purely for stylistic purposes. I strongly advise against using illegal sources, as they violate copyright laws. I do not condone or support such actions and urge everyone to refrain from engaging in them.</p>\n<footer><strong>digital piracy is theft!</strong><cite><a href=\"https://tim.kicker.dev/digital-piracy\">tim.kicker.dev/digital-piracy</a></cite></footer></blockquote>\n\n<h3 id=\"Servarr\"><a href=\"#Servarr\" class=\"headerlink\" title=\"Servarr\"></a><a href=\"https://wiki.servarr.com/\">Servarr</a></h3><p>The Servarr stack pairs with a download client (qBittorrent, SABnzbd, etc.) and a media server (Plex, Jellyfin, Emby) to fully automate fetching and organizing media. Each tool covers one content type.</p>\n<ol>\n<li><p><strong>Sonarr</strong>:  </p>\n<ul>\n<li>Manages and automates TV show downloads.</li>\n<li>Subscribes to TV series, searches for new episodes and downloads them automatically.</li>\n</ul>\n</li>\n<li><p><strong>Radarr</strong>:  </p>\n<ul>\n<li>Manages and automates movie downloads.</li>\n<li>Adds movies to a watchlist, searches for available releases and downloads them via torrent or Usenet.</li>\n</ul>\n</li>\n<li><p><strong>Lidarr</strong>:  </p>\n<ul>\n<li>Manages and automates music downloads.</li>\n<li>Adds artists and albums to a watchlist, searches for new releases and downloads music files.</li>\n</ul>\n</li>\n<li><p><strong>Readarr</strong>:  </p>\n<ul>\n<li>Manages and automates e-book downloads.</li>\n<li>Tracks and downloads new releases from authors or series.</li>\n</ul>\n</li>\n<li><p><strong>Prowlarr</strong>:</p>\n<ul>\n<li>Manages and automates TV show downloads from Usenet indexers.</li>\n<li>Integrates with Usenet indexer services for automatic searches and manages download clients like SABnzbd or NZBGet.</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"Unofficial-Servarr-Applications\"><a href=\"#Unofficial-Servarr-Applications\" class=\"headerlink\" title=\"Unofficial Servarr-Applications\"></a>Unofficial Servarr-Applications</h3><ol>\n<li><p><a href=\"https://overseerr.dev/\"><strong>Overseerr</strong></a>:</p>\n<ul>\n<li>Front-end for Plex&#x2F;Sonarr&#x2F;Radarr. Friends and family can request shows or movies and the request goes through to the *arr stack to fetch them automatically. Easily the best UI in this whole stack.</li>\n</ul>\n</li>\n<li><p><a href=\"https://github.com/Jackett/Jackett\"><strong>Jackett</strong></a>:</p>\n<ul>\n<li>Tracker proxy for Sonarr&#x2F;Radarr.</li>\n<li>Translates between the standard Torznab&#x2F;Newznab API and the actual APIs of various trackers.</li>\n</ul>\n</li>\n<li><p><a href=\"https://www.bazarr.media/\"><strong>Bazarr</strong></a>:</p>\n<ul>\n<li>Subtitle automation for Sonarr&#x2F;Radarr.</li>\n<li>Pulls subtitles from various providers in whichever languages you configure.</li>\n<li>Still haven’t actually got it working properly, hmpf.</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"Cloud-Repositories\"><a href=\"#Cloud-Repositories\" class=\"headerlink\" title=\"Cloud &amp; Repositories\"></a>Cloud &amp; Repositories</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/cloud.png\"></p>\n<h3 id=\"Bitwarden-Vaultwarden\"><a href=\"#Bitwarden-Vaultwarden\" class=\"headerlink\" title=\"Bitwarden (Vaultwarden)\"></a><a href=\"https://www.vaultwarden.ca/home/\">Bitwarden (Vaultwarden)</a></h3><p>A self-hosted, Bitwarden-compatible password manager. Encrypted storage for passwords, notes, cards, the standard set, plus 2FA, folder organization and audit logging. I’m only using this container as a backup right now.</p>\n<h3 id=\"Gitea\"><a href=\"#Gitea\" class=\"headerlink\" title=\"Gitea\"></a><a href=\"https://about.gitea.com/\">Gitea</a></h3><p>Self-hosted Git server. Lighter than GitLab and a lot less painful to maintain. Pull requests, issues, code review, webhooks. The source for this blog <a href=\"https://git.kicker.dev/timkicker/tim.kicker.dev\">lives here</a>.</p>\n<h2 id=\"Gaming\"><a href=\"#Gaming\" class=\"headerlink\" title=\"Gaming\"></a>Gaming</h2><p><img src=\"/2024/06/26/the-selfhosting-experience/gaming.png\"></p>\n<p>Currently, all my gaming-related containers are just plugins used for my Minecraft server. However, none of them are active at the moment as my Minecraft server has been shut down by me. Nevertheless, I still wanted to list them.</p>\n<h3 id=\"Player-Analytics\"><a href=\"#Player-Analytics\" class=\"headerlink\" title=\"Player Analytics\"></a><a href=\"https://www.spigotmc.org/resources/plan-player-analytics.32536/\">Player Analytics</a></h3><p>Tracks Minecraft player activity: logins, playtime, in-game actions, economy transactions, community interactions. Useful if you’re running a server with a community and want to see what people are actually doing.</p>\n<h3 id=\"Bluemap\"><a href=\"#Bluemap\" class=\"headerlink\" title=\"Bluemap\"></a><a href=\"https://bluemap.bluecolored.de/\">Bluemap</a></h3><p>A web-based 3D map of your Minecraft world that updates in real-time as people build and explore (!!!). Players and admins can view it from any browser.</p>\n<h3 id=\"Dynmap\"><a href=\"#Dynmap\" class=\"headerlink\" title=\"Dynmap\"></a><a href=\"https://www.spigotmc.org/resources/dynmap%C2%AE.274/\">Dynmap</a></h3><p>Like Bluemap but in 2D.</p>\n<h2 id=\"Some-tips\"><a href=\"#Some-tips\" class=\"headerlink\" title=\"Some tips\"></a>Some tips</h2><ul>\n<li><strong>NEVER CHANGE A WORKING SYSTEM</strong>: Please, for the love of God, only update your server when you are willing to take a few hours to fix your entire setup if something fails. Because it will. Also, take some time to check if you <em>really, really</em> need this new fancy application, which is pretty much a duplicate of an existing one and you’ll use it once for testing and never again afterwards. “bUt jUsT iN cAsE iLl kEeP it”, no you wont. Trust me, I’ve been guilty of this behaviour several times.</li>\n<li>Spend some time planning. Create a to-do list, plan when and how you want to work on it and create a file tree. Here’s mine, for example:</li>\n<li>Only use the root account if you have to. Create a separate one for all sorts of things, which will increase your security a ton.</li>\n<li>Spend a lot of time on security. I know you just got your system to work after some hard days and you are not motivated anymore in the slightest to upgrade your security, but please do it. I know you’ll probably not get hacked or something like that, but the chance still exists. Take a look into topics like Firewalls, Cloudflare, VPN, etc.</li>\n</ul>\n<p><img src=\"/2024/06/26/the-selfhosting-experience/workflow_upscayl_4x_realesrgan-x4plus-anime.webp\"></p>\n<p>Obligatory (somewhat) fitting <a href=\"/2024/06/26/the-selfhosting-experience/workflow.png\">xkxd comic</a> regarding the working system</p>\n<h2 id=\"Resources\"><a href=\"#Resources\" class=\"headerlink\" title=\"Resources\"></a>Resources</h2><p>I completely relied on sources from the web when it came to gaining knowledge (and still do). So I’ll link you some great resources, which helped me enormously.</p>\n<ul>\n<li><a href=\"https://github.com/awesome-selfhosted/awesome-selfhosted\"><strong>Awesome Selfhosted</strong></a>: A list of Free Software network services and web applications which can be hosted on your own servers.</li>\n<li><a href=\"https://www.reddit.com/r/selfhosted/\"><strong>&#x2F;r&#x2F;selfhosted</strong></a>: A place to share, discuss, discover, assist with, gain assistance for and critique self-hosted alternatives to our favorite web apps, web services and online tools.</li>\n<li><a href=\"https://www.reddit.com/r/homelab/\"><strong>&#x2F;r&#x2F;homelab</strong></a>: A community for discussing home labs, including self-hosting setups and hardware recommendations. Read through the wiki!</li>\n<li><a href=\"https://www.youtube.com/@DBTechYT\"><strong>DB Tech</strong></a>: Probably the best channel you’ll find regarding self-hosting. He’s specialized in stuff like Docker, Portainer and other self-hostable applications and he’s an amazing teacher, wow!</li>\n<li><a href=\"https://docs.linuxserver.io/images/\"><strong>Linuxserver.io</strong></a>: An amazing and huge list of Docker images consisting of all kinds of applications.</li>\n<li><strong>Me</strong>: Since I am pretty experienced when it comes to this kind of stuff, you are more than welcome to contact me if you need any help :)</li>\n</ul>\n",
            "tags": [
                "privacy",
                "open source",
                "selfhosting",
                "homelab",
                "docker",
                "linux server",
                "digital ownership",
                "server setup",
                "remote access",
                "media server",
                "automation",
                "web dashboard",
                "monitoring tools",
                "secure downloads",
                "personal cloud"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2023/08/02/digital-nomad/",
            "url": "https://tim.kicker.dev/2023/08/02/digital-nomad/",
            "title": "The first digital nomad",
            "date_published": "2023-08-02T11:48:32.000Z",
            "content_html": "<p>Digital nomadism feels like a 2020s thing. Coffee shops, laptop stickers, the inevitable Instagram of the laptop in front of a beach. Most of the people doing it now think they’re living something new. They aren’t. Someone was already doing it forty years ago, on a bicycle.</p>\n<p>I am not a digital nomad and probably never will be. The closest I get is taking a laptop to a café, which doesn’t count. The figure that interests me here isn’t the modern version of the trend, it’s the <em>original</em> one, who built the whole concept in 1983 with hardware that didn’t really exist yet for the use case.</p>\n<p><img src=\"/2023/08/02/digital-nomad/behemoth.jpg\" alt=\"Thumbnail for blogpost: picture of Steven on his bike\"></p>\n<p>Steven K. Roberts and “Behemoth”, taken from <a href=\"https://teknomadics.com/2011/10/the-original-digital-nomad/\">Teknomadics</a></p>\n<h2 id=\"A-journey-ahead-of-its-time\"><a href=\"#A-journey-ahead-of-its-time\" class=\"headerlink\" title=\"A journey ahead of its time\"></a>A journey ahead of its time</h2><p>In 1983, <a href=\"https://twitter.com/nomadness\">Steven K Roberts</a> loaded a recumbent bicycle with solar panels, a computer, a ham radio and a stack of other gear and started pedaling across the United States. He called the bike “Winnebiko”. Later versions were “Winnebiko 2” and <a href=\"https://de.wikipedia.org/wiki/Behemoth_(Mythologie)\">“Behemoth”</a>.</p>\n<p>The point of all that gear wasn’t just to travel. The point was to keep working while traveling. He wrote articles for <a href=\"https://en.wikipedia.org/wiki/Computer_Currents\">“Computer Currents” magazine</a> from the road, decades before “remote work” was a phrase anyone used. He was effectively running a job from a bike in 1983.</p>\n<p><img src=\"/2023/08/02/digital-nomad/thumbnail.jpg\"></p>\n<p>Steven and his second bike, taken from <a href=\"https://microship.com/bikes/\">his website</a></p>\n<h2 id=\"Reactions-at-the-time\"><a href=\"#Reactions-at-the-time\" class=\"headerlink\" title=\"Reactions at the time\"></a>Reactions at the time</h2><p>Some people thought it was inspirational, a glimpse of what work could look like once technology caught up. Others thought it was nonsense. A stunt. An eccentric guy doing eccentric things on a bike, no real career possible from it.</p>\n<p>Reading those reactions today is funny in a particular way. The “unrealistic notion” of remote work and digital nomadism is now a Tuesday for millions of people. The eccentric stunt turned out to be the early prototype of how a non-trivial chunk of the workforce now actually operates.</p>\n<p>It’s not really a story about Roberts being smarter than everyone else. It’s a story about Roberts being earlier. The world catches up later or it doesn’t, and in this case it did.</p>\n<p><img src=\"/2023/08/02/digital-nomad/article.webp\"></p>\n<p>A newspaper article, photo by <a href=\"https://gizmoeditor.blogspot.com/2020/09/catching-up-with-digital-nomad-steve.html\">Gizmo</a></p>\n<h2 id=\"What-he’s-doing-now\"><a href=\"#What-he’s-doing-now\" class=\"headerlink\" title=\"What he’s doing now\"></a>What he’s doing now</h2><p>Roberts kept going. After the bike journey he stayed on the technomadic track. Speaking, writing, building progressively more elaborate setups. Generally being one of the people who was right about something thirty years before everyone else figured it out.</p>\n<p>He’s still working remotely. Just from a different vehicle now. A boat.</p>\n<p><img src=\"/2023/08/02/digital-nomad/onboat.jpg\"></p>\n<p>Roberts in his home, taken from <a href=\"https://www.sanjuanjournal.com/life/wizard-with-a-time-machine/\">The Journal of San Juan Islands</a></p>\n<h2 id=\"He-paved-the-way\"><a href=\"#He-paved-the-way\" class=\"headerlink\" title=\"He paved the way\"></a>He paved the way</h2><p>The honest read here is that Roberts wasn’t just early, he was building something that didn’t really make economic sense yet. Solar panels and a computer-stuffed recumbent bicycle in 1983 weren’t a viable lifestyle for anyone but him. Doing it wasn’t about the world being ready, it was about him being ready. The infrastructure showed up afterwards.</p>\n<p>It mostly did show up. The internet revolution of the 90s and 2000s did the rest of the work, and now millions of people live a version of what he was already living back then. He just had the unfair disadvantage of doing it before any of the tools existed to make it easy.</p>\n<p><img src=\"/2023/08/02/digital-nomad/farahead.jpg\"></p>\n<p>Quote from Steven, far ahead of his time</p>\n",
            "tags": [
                "digital nomad",
                "remote work",
                "technomad",
                "Steven K Roberts",
                "behemoth bike",
                "work from anywhere",
                "digital history",
                "remote lifestyle",
                "mobile technology",
                "early internet culture"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2023/07/25/beautiful-internet/",
            "url": "https://tim.kicker.dev/2023/07/25/beautiful-internet/",
            "title": "The internet has become soulless and i hate it",
            "date_published": "2023-07-25T14:16:48.000Z",
            "content_html": "<p>The modern web is the most efficient version of itself that has ever existed. Pages load fast. Sites are accessible. Everything looks consistent across devices. Every interaction is <em>optimized</em>. By every measurable metric, the web in 2023 is the best the web has ever been. And most of it is unbearable.</p>\n<p>I should be honest about my position here. I was too young to really live through web 1.0. I caught the tail end of it around 2009, the last few years before the platforms ate everything, so a chunk of what I’m about to say is half-borrowed nostalgia. I want to flag that up front, because the easy read of a post like this is “old man yells at cloud” and I am <a href=\"https://en.wikipedia.org/wiki/Web_1.0\">not</a> <a href=\"https://en.wikipedia.org/wiki/Enshittification\">actually</a> old. But I think the thing being mourned is real, and worth saying out loud anyway.</p>\n<p><img src=\"/2023/07/25/beautiful-internet/internet.jpg\" alt=\"Thumbnail for blogpost: an unknown 90s stock image\"></p>\n<p>“Internet”, an unknown 90’s stock image</p>\n<h2 id=\"The-personal-touch\"><a href=\"#The-personal-touch\" class=\"headerlink\" title=\"The personal touch\"></a>The personal touch</h2><p>Back then, websites felt like they belonged to a person. Each one was a little window into whoever made it. Their interests, their hobbies, the niche stuff they cared about enough to write down. The sites weren’t optimized for anything. They weren’t trying to convert you, retain you, surveill you, or push you down a funnel. They just <em>existed</em>, because someone wanted them to exist.</p>\n<p>Out of that came communities. Fan forums, personal blogs, niche message boards, half-broken webrings. People found other people who cared about the same weird thing and built something around it. A surprising amount of it is still around if you know where to look.</p>\n<p><img src=\"/2023/07/25/beautiful-internet/forum.webp\"></p>\n<p>The <a href=\"https://forum.melonland.net/\">Melonland</a> forum</p>\n<h2 id=\"Colorful-creativity\"><a href=\"#Colorful-creativity\" class=\"headerlink\" title=\"Colorful creativity\"></a>Colorful creativity</h2><p>Every site had its own look. Some used neon, some used pastels, some had animated backgrounds and cursor trails and tiled GIFs of dancing bananas. A lot of it was loud. Some of it was actively ugly. That was sort of the point. The web reflected the people making it, and people are loud and inconsistent.</p>\n<p>Modern sites all look the same. Same fonts (probably Inter), same hero section, same off-white background, same rounded buttons that are tasteful and accessible and entirely interchangeable. Efficient. Clean. Professional. Boring.</p>\n<p>It is not that the old web was <em>good</em> in a craft sense. A lot of it was genuinely terrible. It is that the old web was <em>individual</em>, and the new web is uniform, and individuality at the cost of polish is a trade I’d take back in a second.</p>\n<p><img src=\"/2023/07/25/beautiful-internet/gifypet.webp\"></p>\n<p><a href=\"https://gifypet.neocities.org/\">Gifypet</a>, a gif pet creation tool (??!!)</p>\n<h2 id=\"User-centric\"><a href=\"#User-centric\" class=\"headerlink\" title=\"User-centric\"></a>User-centric</h2><p>The early web was made by the people using it. The sites you visited were built by hobbyists, not by marketing departments. There were no algorithms deciding what you should see. There was no infinite scroll. If you wanted to find something, you went looking, and the looking was part of the experience. You’d hit a webring, follow a link to someone’s personal site, follow a link from there to someone else’s, and end up somewhere you couldn’t have predicted.</p>\n<p>The interactions felt different too. Forums, chat rooms, guest books. People talked to each other instead of performing at each other. The reward loop was the conversation, not the engagement metric.</p>\n<p><img src=\"/2023/07/25/beautiful-internet/blog-color.webp\"></p>\n<p>Blog by <a href=\"https://combatbaby.neocities.org/\">Bryce</a></p>\n<h2 id=\"Big-corpo\"><a href=\"#Big-corpo\" class=\"headerlink\" title=\"Big corpo\"></a>Big corpo</h2><p>Then the platforms came. Social media consolidated everything into a few apps where every profile is the same template with a different name. The personal site became the profile page. Search engines started ranking the giants higher than the small sites, which made the small sites harder to find, which made fewer people bother building new ones. The flywheel of incentives turned, and what came out the other end is what we have now.</p>\n<p>I notice myself rotating between four or five websites that all feel basically the same. They are functional. They work. I just don’t enjoy them.</p>\n<h2 id=\"Can-we-get-back\"><a href=\"#Can-we-get-back\" class=\"headerlink\" title=\"Can we get back?\"></a>Can we get back?</h2><p>Honestly? Probably not at scale. The economics of the modern web reward consolidation, and that isn’t going away. But there are still pockets of the old web if you go looking, and there is nothing actually stopping new ones from being built.</p>\n<p><a href=\"http://wiby.me/\">Wiby</a> is a search engine that only indexes web 1.0 sites. I have lost hours to it.</p>\n<p><a href=\"https://neocities.org/\">Neocities</a> is a free host built specifically for retro-style personal sites. Anyone can make one. The barrier is basically just deciding to.</p>\n<p><a href=\"https://dollchan.net/chanlist/chanlist-en.html\">A few imageboards</a> still exist that feel like a different era. Even <a href=\"https://4chan.org/\">4chan</a>, which I have complicated feelings about, is at least a reminder that not every place online has to look like Instagram.</p>\n<p>The thing I’d take from any of this is that the web isn’t fixed. The reason it feels soulless now is that the people making it changed, not because the technology forced them to. If you want a different web, you make a different web. That option is still on the table.</p>\n",
            "tags": [
                "web1.0",
                "digital nostalgia",
                "personal websites",
                "internet history",
                "creative web design",
                "retro internet",
                "neocities",
                "online communities",
                "social media criticism",
                "decentralization"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2023/07/18/telegram/",
            "url": "https://tim.kicker.dev/2023/07/18/telegram/",
            "title": "Should it really be Telegram?",
            "date_published": "2023-07-18T13:08:40.000Z",
            "content_html": "<p>Telegram has done a remarkable job convincing people that it is the privacy-friendly alternative to WhatsApp. Open source. Encrypted. Founded by people with a story about defying state surveillance. The branding writes itself. But take it apart for a minute and most of it doesn’t really hold up.</p>\n<p>I should say up front: I’m not a security researcher. I’m a CS student who reads about this stuff because privacy is a thing I care about. The points below are not insider knowledge, they’re a reading-comprehension problem on Telegram’s own marketing copy. Anyone can verify them by clicking through their FAQ.</p>\n<h3 id=\"It’s-open-source-Right\"><a href=\"#It’s-open-source-Right\" class=\"headerlink\" title=\"It’s open source. Right?\"></a>It’s open source. Right?</h3><p>Telegram states the following on their website:</p>\n<blockquote><p>Telegram apps are open source and support reproducible builds. Anyone can independently verify that Telegram apps you download from App Store or Google Play were built using the exact same code that we publish.</p>\n<footer><strong>Telegram</strong><cite><a href=\"https://telegram.org/apps\">telegram.org/apps</a></cite></footer></blockquote>\n\n<p>This is technically true. It is also possibly the most carefully phrased two sentences in their entire FAQ. The <em>clients</em> are open source. The server code is not. So the part that handles your messages, your metadata, your contact graph, your group memberships, all of it runs on closed code that nobody outside Telegram can audit. Calling this “open source” without that asterisk is, charitably, misleading.</p>\n<h3 id=\"No-encryption-no-peace-of-mind\"><a href=\"#No-encryption-no-peace-of-mind\" class=\"headerlink\" title=\"No encryption, no peace of mind\"></a>No encryption, no peace of mind</h3><p>This is where it gets worse. People hear “Telegram is encrypted” and assume that means encrypted by default, the way Signal and WhatsApp are. It isn’t. Telegram only end-to-end encrypts so-called <a href=\"https://www.howtogeek.com/709484/how-to-start-an-encrypted-secret-chat-in-telegram/\">“Secret Chats”</a>, which you have to opt into per conversation, and which aren’t available in group chats at all. Regular chats are encrypted between your client and Telegram’s server, but the server holds the keys. Which means Telegram has technical access to the contents.</p>\n<p>It also matters that Telegram designed <a href=\"https://en.wikipedia.org/wiki/MTProto\">its own encryption protocol</a> (MTProto) instead of using something well-vetted. <a href=\"https://en.wikipedia.org/wiki/Signal_Protocol\">Signal’s protocol</a> has been hammered on by the wider crypto research community for over a decade. MTProto hasn’t, and what scrutiny it has gotten has not been kind. Without that scrutiny, “encrypted” is more of a marketing word than a technical claim.</p>\n<p>The thing that actually frustrates me about all this isn’t that Telegram is bad on privacy. It’s that Telegram positions itself as the privacy-friendly option while quietly being one of the worst of the popular messengers on exactly that axis. WhatsApp at least uses the Signal protocol for actual content. Telegram just markets like it does.</p>\n<h3 id=\"So-what-should-we-use-instead\"><a href=\"#So-what-should-we-use-instead\" class=\"headerlink\" title=\"So what should we use instead\"></a>So what should we use instead</h3><p>Plenty of options that don’t require this much hedging.</p>\n<p><a href=\"https://www.signal.org/de/\">Signal</a>: the obvious one. End-to-end encryption by default for everything. Protocol has been <a href=\"https://eprint.iacr.org/2016/1013\">independently audited</a> multiple times. The only friction is convincing other people to use it.</p>\n<p><a href=\"https://threema.ch/de\">Threema</a>: the OG, oldest of the bunch. The interesting part is that it doesn’t require a phone number to sign up, which solves a privacy issue Signal still hasn’t really fixed.</p>\n<p><a href=\"https://element.io/\">Element</a> (Matrix): an open-source, decentralized network running on the <a href=\"https://matrix.org/\">Matrix protocol</a>. More setup work, but you don’t have to trust a single company.</p>\n<p>None of these are perfect. Signal is centralized. Threema costs money. Matrix has a learning curve. But all three are <em>honest</em> about what they are, and the honesty is the part Telegram skips.</p>\n",
            "tags": [
                "telegram",
                "messaging apps",
                "privacy",
                "open source",
                "encryption",
                "digital security",
                "signal",
                "threema",
                "matrix protocol",
                "secure communication"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2023/05/18/whatsapp-analyze/",
            "url": "https://tim.kicker.dev/2023/05/18/whatsapp-analyze/",
            "title": "Data about data",
            "date_published": "2023-05-18T14:26:18.000Z",
            "content_html": "<p>I am a huge fan of gathering, analyzing and graphing data. Numbers and colorful charts just have something to them. But the actually interesting part is rarely the data itself, it’s the data <em>about</em> the data. <em>How often</em> something happens, <em>when</em> it happens, <em>between whom</em>. Patterns sit in the metadata, not the content, and most of what makes a conversation a conversation can be reconstructed from the outside without ever reading a single message.</p>\n<div class=\"langtoggle\" data-lang=\"en\"><a class=\"langtoggle__btn is-active\" href=\"/2023/05/18/whatsapp-analyze/\" aria-label=\"English\"><svg class=\"lang-flag\" width=\"22\" height=\"11\" viewBox=\"0 0 60 30\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect width=\"60\" height=\"30\" fill=\"#012169\"/><path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/><path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#C8102E\" stroke-width=\"2\"/><path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/><path d=\"M30,0 v30 M0,15 h60\" stroke=\"#C8102E\" stroke-width=\"6\"/></svg></a><a class=\"langtoggle__btn \" href=\"/2023/05/18/whatsapp-analyze/de/\" aria-label=\"Deutsch\"><svg class=\"lang-flag\" width=\"22\" height=\"14\" viewBox=\"0 0 9 6\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect width=\"9\" height=\"6\" fill=\"#ED2939\"/><rect y=\"2\" width=\"9\" height=\"2\" fill=\"#FFFFFF\"/></svg></a></div>\n\n<p>Let me show what I mean. The graphs below are weekday charts from two different WhatsApp chats of mine. No content, just message counts.</p>\n<p><strong>Weekdays Chat A</strong></p>\n<p><img src=\"/2023/05/18/whatsapp-analyze/hourchartA.png\"></p>\n<p><strong>Weekdays Chat B</strong></p>\n<p><img src=\"/2023/05/18/whatsapp-analyze/hourchartB.png\"></p>\n<p>The difference between the two is not subtle. Chat A is roughly stable across the week, with two outliers on Friday and Monday. Could be a friend group planning what they’re doing on the weekend. The total volume is also lower than B. Chat B has a huge gap between Sunday and Saturday and high volume on weekdays. Could be a work group, or it could be people who actually live in the same household and only need to text each other when they’re apart.</p>\n<p>I haven’t told you a single thing about the messages. You already have a working theory of each chat. That is the part worth dwelling on.</p>\n<p>Let’s go a level deeper.</p>\n<p><strong>Days-Heatmap Chat A</strong></p>\n<p><img src=\"/2023/05/18/whatsapp-analyze/heatmapA.png\"></p>\n<p>The group is most active between late January and May, with another spike in October. If you happen to live in Austria, this is recognizable. Schools have summer break from June to early September, Christmas break stretches through January, and there is a small break in November. So Chat A probably belongs to students who don’t share classes during the school day. The breaks are quiet because they spend the time together in person. Nobody texts a person they’re sitting next to. Right?</p>\n<p><strong>Days-Heatmap Chat B</strong></p>\n<p><img src=\"/2023/05/18/whatsapp-analyze/heatmapB.png\"></p>\n<p>Volume stays roughly stable year-round, which fits the same-household theory. The dip in August could be a planned vacation.</p>\n<p>It would be pretty unnerving if I told you all of those guesses turned out to be correct.</p>\n<p>(They did.)</p>\n<p>This is not a magic trick, by the way. I’m a CS student doing this at home with public-ish data and a few graphs. The actual surveillance operations doing this work for a living have orders of magnitude more signal to play with: contact graphs, timing correlations across many chats, data from the carrier, location pings, the whole stack. The home-graph version is the thinnest possible slice of what’s actually doable.</p>\n<p>The point isn’t that metadata is <em>kind of</em> revealing. The point is that metadata is, in a lot of cases, <em>more</em> revealing than the content. Most people defend their messaging app choice on encryption: if nobody can read my messages, I am safe. The thing is, an attacker doesn’t need to read a single message to learn most of what they want to know about you. Who you talk to, how often, when, in what rhythm, around which other events. That is already the vast majority of it.</p>\n<p>Worth sitting with for a minute.</p>\n<p>If you want to look more into this, <a href=\"https://www.youtube.com/watch?v=-YpwsdRKt8Q\">Daniel Kriesel’s 33c3 talk</a> is the talk on the topic and probably the reason I think about it at all.</p>\n",
            "tags": [
                "messaging apps",
                "privacy",
                "encryption",
                "metadata",
                "data analysis",
                "whatsapp",
                "surveillance",
                "statistics",
                "data patterns",
                "user behavior"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2023/05/18/whatsapp-analyze/de/",
            "url": "https://tim.kicker.dev/2023/05/18/whatsapp-analyze/de/",
            "title": "Daten über Daten",
            "date_published": "2023-05-18T11:32:43.000Z",
            "content_html": "<p>Ich bin ehrlich: Ich liebe Daten.</p>\n<p>Nicht unbedingt, weil Zahlen unbedingt “die Wahrheit” sind. Sondern weil sie einem eine zweite Ebene geben. Eine, die man gern übersieht, weil sie so banal wirkt: Wann passiert etwas? Wie oft? Von wem? Wie gleichmässig? Wie plötzlich? Wie rhythmisch?</p>\n<p>Und genau da wird’s spannend.</p>\n<p>Weil das sind nicht “die Daten”. Das sind Daten über die Daten selbsts, also Metadaten. Und die sind in der Praxis oft wertvoller als der eigentliche Inhalt.</p>\n<hr>\n<h2 id=\"Zwei-Chats-zwei-Personlichkeiten-ohne-den-Chat-zu-lesen\"><a href=\"#Zwei-Chats-zwei-Personlichkeiten-ohne-den-Chat-zu-lesen\" class=\"headerlink\" title=\"Zwei Chats, zwei Persönlichkeiten (ohne den Chat zu lesen)\"></a>Zwei Chats, zwei Persönlichkeiten (ohne den Chat zu lesen)</h2><p>Vergleicht mal diese 2 Wochentags-Graphen. Zwei WhatsApp-Chats mit zwei ganz verschiedenen Mustern.</p>\n<p><strong>Wochentage Chat A</strong></p>\n<p><img src=\"/2023/05/18/whatsapp-analyze/hourchartA.png\"></p>\n<p><strong>Wochentage Chat B</strong></p>\n<p><img src=\"/2023/05/18/whatsapp-analyze/hourchartB.png\"></p>\n<p>Man muss jetzt nicht gerade Sherlock-Holmes sein, um die Unterschiede zu sehen.</p>\n<p>Chat A wirkt relativ stabil, aber Freitag und Montag stechen raus. Das sieht nach einer Gruppe aus, die am Wochenende lebt. Freitag: Planen. Montag: Nachbesprechen. Oder einfach die “jo passt nächstes Wochenende wieder” Routine.</p>\n<p>Chat B ist dagegen “anderes Tier”. Da ist diese fette Lücke zwischen Sonntag und Samstag. Klassiker für Arbeit, oder Schule. Oder jemand, der unter der Woche weit weg ist. Oder zwei Personen, die sich am Wochenende sowieso sehen und dann plötzlich keine Nachrichten brauchen.</p>\n<p>Und ja: Das sind alles nur Hypothesen.</p>\n<p>Aber man merkt, wie schnell man Storys aus solchen Mustern bauen kann, ohne auch nur eine einzige Nachricht zu lesen</p>\n<p>Jetzt mal eine Ebene tiefer.</p>\n<hr>\n<h2 id=\"Der-Kalender-lugt-nicht\"><a href=\"#Der-Kalender-lugt-nicht\" class=\"headerlink\" title=\"Der Kalender lügt nicht\"></a>Der Kalender lügt nicht</h2><p><strong>Tage-Heatmap Chat A</strong></p>\n<p><img src=\"/2023/05/18/whatsapp-analyze/heatmapA.png\"></p>\n<p>Okay. Das ist schon ziemlich eindeutig.</p>\n<p>Zwischen Ende Januar und Mai ist viel los. Im Oktober gibt’s nochmal einen Peak, dazwischen eher weniger. Und im Sommer teilweise komplett tot.</p>\n<p>Wenn du in Österreich lebst, weisst du wahrscheinlich schon, was das bedeutet: Ferien. Schulferien sind wie ein globales “Offline Event” für bestimmte Chatgruppen.</p>\n<p>Das Muster schreit nach:</p>\n<ul>\n<li>Freund*innen</li>\n<li>wahrscheinlich Schüler*innen</li>\n<li>vielleicht nicht in derselben Klasse (sonst wäre die Aktivität vermutlich gleichmässiger)</li>\n<li>während der Schulzeit viel Koordination, in den Ferien eher real-life Kontakt</li>\n</ul>\n<p>Weil: Niemand schreibt sich, wenn man eh nebeneinander sitzt. Oder?</p>\n<hr>\n<p><strong>Tage-Heatmap Chat B</strong></p>\n<p><img src=\"/2023/05/18/whatsapp-analyze/heatmapB.png\"></p>\n<p>Hier ist es anders. Viel gleichmässiger, keine starken saisonalen Einbrüche. Das stützt die Idee mit: “Man ist ohnehin in konstantem Kontakt” oder “das ist ein Chat, der immer relevant bleibt”.</p>\n<p>Und diese Lücke im August? Könnte einfach Urlaub sein. Ein gemeinsamer? Oder eine Person war weg. Oder beide. Again: Hypothese.</p>\n<p>Aber jetzt kommt der Teil, der sich leicht unangenehm anfühlt.</p>\n<hr>\n<h2 id=\"Metadaten-sind-creepy-weil-sie-funktionieren\"><a href=\"#Metadaten-sind-creepy-weil-sie-funktionieren\" class=\"headerlink\" title=\"Metadaten sind creepy, weil sie funktionieren\"></a>Metadaten sind creepy, weil sie funktionieren</h2><p>Es wäre ziemlich gruselig, wenn ich dir jetzt sagen würde: “Ja, genau, Chat A sind X und Y und Chat B ist Z.” Selbst wenn ich es könnte.</p>\n<p>Der Punkt ist nicht, dass man immer richtig liegt.</p>\n<p>Der Punkt ist: Man kann extrem viel ableiten, ohne Inhalte zu haben.</p>\n<p>Und jetzt stell dir kurz vor, diese Daten liegen nicht nur als hübsche Heatmap bei dir lokal rum, sondern:</p>\n<ul>\n<li>beim Plattformbetreiber</li>\n<li>bei einem Datenbroker</li>\n<li>oder bei irgendwem, der Zugang bekommt, weil irgendwer irgendwo “nur kurz” eine Schnittstelle geöffnet hat</li>\n</ul>\n<p>Viele Menschen beruhigen sich mit: “Ja okay, meine Chats sind Ende-zu-Ende verschlüsselt.”</p>\n<p>Und das ist auch gut.</p>\n<p>Aber Verschlüsselung schützt den Inhalt. Nicht die Struktur drumherum.</p>\n<p>Wenn ein Angreifer weiss:</p>\n<ul>\n<li>wann ich mit wem schreib</li>\n<li>wie oft</li>\n<li>in welchen Phasen meines Lebens</li>\n<li>welche Kontakte plötzlich verschwinden oder neu auftauchen</li>\n</ul>\n<p>…dann hat er oft schon genug.</p>\n<p>Ohne ein einziges “hey wie gehts” zu lesen.</p>\n<hr>\n<p>Btw, falls es wen noch weiter intressiert, Daniel Kriesels hat darüber nen mega Vortrag am 33c3 gehalten. Der macht genau dieses “Metadaten erzählen Geschichten” Thema sehr anschaulich.</p>\n<p><a href=\"https://www.youtube.com/watch?v=-YpwsdRKt8Q\">Daniel Kriesel’s 33c3 Vortrag</a></p>\n",
            "tags": [
                "privacy",
                "metadata",
                "data analysis",
                "whatsapp"
            ]
        },
        {
            "id": "https://tim.kicker.dev/2023/03/30/diplomarbeit/",
            "url": "https://tim.kicker.dev/2023/03/30/diplomarbeit/",
            "title": "HTL Diploma Thesis - A universal smart-switch",
            "date_published": "2023-03-30T12:00:00.000Z",
            "content_html": "<p><img src=\"/2023/03/30/diplomarbeit/4.png\"></p>\n<p>I’m uploading our HTL diploma thesis here while it’s still fresh, mostly so it doesn’t end up as a PDF that exists <em>somewhere</em> and never gets seen again.</p>\n<p><a href=\"https://www.linkedin.com/in/johannes-klapper-5a40392ba/?originalSubdomain=at\">Johannes Klapper</a> and I built a universal smart wall switch. Not a smart bulb, not a cloud gadget, not something that only works if an app is happy today. The goal was a switch that fits into a normal EU in-wall box, still behaves like a real switch you can press, but can also be controlled from a client device. A normal part of a room, just with a brain.</p>\n<hr>\n<h2 id=\"What-we-built\"><a href=\"#What-we-built\" class=\"headerlink\" title=\"What we built\"></a>What we built</h2><p>We ended up with three parts: the Smart-Switch hardware, a Bridge in the middle, and a Client app.</p>\n<p>The switch is the thing that actually switches a load and reads temperature. The bridge is the central piece that talks to switches and forwards control. The client is the UI for configuration and control. Communication-wise we used BLE on the switch side and WiFi where it makes sense on the bridge side. The microcontroller in the switch is an ESP32-S3, mainly because we wanted a modern BLE stack (BLE 5.2) and enough headroom for the rest. This project taught me very quickly that “it’s just Bluetooth” is something you only say before you actually try to ship a system that has to work reliably.</p>\n<hr>\n<h2 id=\"Status-and-a-few-lessons\"><a href=\"#Status-and-a-few-lessons\" class=\"headerlink\" title=\"Status and a few lessons\"></a>Status and a few lessons</h2><p>What we have today is a functional system on our prototype setup, plus the final switch hardware built in the intended form factor. We didn’t manage to fully commission the final, size-correct switch hardware in time, mainly because hardware schedules don’t care about how close your deadline is. Not the cleanest ending, but the honest one.</p>\n<p>The main thing I’m taking away from this is how unforgiving interfaces are. Hardware mistakes cost you immediately. Software mistakes cost you later. And communication layers are not “glue”, they are the system. If you’re vague there, you debug ghosts.</p>\n<p>If you want the complete writeup, architecture details and the full thesis document, here’s the PDF:</p>\n<p><a href=\"/2023/03/30/diplomarbeit/Diplomarbeit_Kicker_Klapper_Final.pdf\"><strong>💾 Download the diploma thesis (PDF)</strong></a></p>\n<hr>\n<h2 id=\"Gallery\"><a href=\"#Gallery\" class=\"headerlink\" title=\"Gallery\"></a>Gallery</h2><p><img src=\"/2023/03/30/diplomarbeit/0.png\"><br><img src=\"/2023/03/30/diplomarbeit/1.png\"><br><img src=\"/2023/03/30/diplomarbeit/2.png\"><br><img src=\"/2023/03/30/diplomarbeit/3.png\"><br><img src=\"/2023/03/30/diplomarbeit/4.png\"><br><img src=\"/2023/03/30/diplomarbeit/5.png\"></p>\n",
            "tags": [
                "project",
                "hardware",
                "embedded",
                "esp32",
                "ble",
                "iot",
                "csharp",
                "wpf",
                "maui",
                "mvvm",
                "htl",
                "diploma-thesis"
            ]
        }
    ]
}