000%
CAMPAIGN Nº 01 · 2026 — ELECTION ENGINEERING
CHOIWOONGJU · 2026

Design, das aus New York kam — eine Wahl im Zeitalter von AX.

In einem rund einmonatigen Kommunalwahlkampf habe ich den gesamten digitalen Betrieb des Kandidaten allein verantwortet — eine Live-PR-Website, eine eigene visuelle Designsprache, einen Chatbot, ein Analysewerkzeug für Wahlkampf-Standorte, eine Pipeline zur Ermittlung der Postversand-Adressen und ein automatisches Ausfüllen der gesetzlichen Buchhaltungsformulare.

FIG. 01CHOI WOONGJU CAMPAIGN — WEB · DATA — CHOIWOONGJU · 2026
CAMPAIGNWEB · DESIGN · DATA · INFRA · ACCOUNTINGNEXT 16 EDGE · SSE · SONNETDESIGN LANGUAGE · ISOMETRIC MAP · MARQUEENESTJS · CLOUD SQL · POSTGIS · GCP · PYTHON

Der Anker war die PR-Website des Kandidaten — auf Next.js Edge Runtime geplant, gebaut und ausgeliefert, betrieben unter choiwoongju.com. Sie führte Kandidatenvorstellung, Wahlversprechen und Wahlinformationen in einem einzigen redaktionellen Fluss zusammen. Die ausführlichere Geschichte dessen, wie es im Wahlbüro tatsächlich zuging, steht in diesem Magazin — siehe Magazine, „The Election".

Bevor ich das Front-End schrieb, legte ich eine eigene visuelle Designsprache fest. Ich studierte die Wahlkämpfe von Alexandria Ocasio-Cortez 2018 und 2020 — die Arbeit des Tandem-Studios in New York — über die archivierte Kampagnenseite und die veröffentlichte Designanalyse und destillierte die Prinzipien statt der Oberfläche: das übliche Parteifarben-Klischee brechen, die Botschaft von der Typografie statt vom Foto tragen lassen und Bewegung als Mittel behandeln, ein statisches Plakat wie eine Bewegung wirken zu lassen. Daraus baute ich ein eigenes System — eine Navy-Rot-Palette, bewusst gegen die Standard-Parteifarben gewählt, Pretendard für eine einzige typografische Stimme, eine Rechts-nach-links-Marquee aus Aktivitätsfotos als Web-Übersetzung von „die Bewegung verstärken" sowie Drop-Cap- und Highlight-Unterstreichungs-Akzente — durchgängig auf Website, Druck und Share-Bildern angewandt.

Das Konzept der Kampagne — eine hellere Zukunft für Gwanak-gu — habe ich in ein Bild übersetzt. Ich baute ein isometrisches Stadtbild des Bezirks mit darübergelegten HUD-artigen Callouts, jedes Wahlversprechen an das Viertel geheftet, zu dem es gehört — Samseong-dong, Daehak-dong, der Dorimcheon-Bach, die Wanderwege am Gwanaksan — unter einer Überschrift, die sich selbst eintippt. Die Karte lässt eine Wählerin ein Versprechen für das eigene Viertel auf einen Blick sehen, statt es als Liste zu lesen.

Auch zur Bildsprache selbst habe ich beraten. Für das Porträt empfahl ich eine Einstellung mit dem Blick des Kandidaten nach rechts oben — nach vorn, nach oben, vorwärtsgerichtet. Und über die geschliffenen professionellen Aufnahmen hinaus drängte ich auf Fotos echter Arbeit — parlamentarische Tätigkeit in der Nationalversammlung, akademische Arbeit und Begegnungen mit Bürgerinnen und Bürgern — damit die Seite ihn nicht nur als Berufspolitiker liest, sondern als einen weiteren Bürger inmitten der Wählerschaft.

Ein Chatbot beantwortet Fragen zum Kandidaten. Er streamt Claude Sonnet über SSE, und seine Sicherheit ist als zwei getrennte Stufen gebaut — ein Gate vor der Antwort, das Prompt-Injection abfängt (Umgehungen über Encoding, Muster zur Rollenübernahme), und ein Filter nach der Antwort, der die acht Kategorien von Ausdrücken aussiebt, die das koreanische Wahlrecht verbietet — direkter Wahlaufruf, Vorhersage des Ergebnisses, Schätzung von Umfragewerten und so weiter.

Für die Auffindbarkeit decken strukturierte Daten (JSON-LD), eine Sitemap und robots die Suchmaschinenoptimierung (SEO) ab, während eine llms.txt-Route die generative KI-Suche (GEO) auf Code-Ebene umsetzt. Die neue Domain erreichte bei Google und Naver die erste Ergebnisseite, gewann Navers Sitelinks-Rich-Result, und die Suche wurde zum größten identifizierbaren Zugangskanal — 88 % der identifizierten Zugriffe in der Wahlwoche. Auf der KI-Seite stellte eine Feldmessung im Juli 2026 Identitätsanfragen an vier Engines — Google AI Overviews, Claude, Gemini und Perplexity — und alle vier beantworteten den aktuellen Status des Abgeordneten korrekt, drei davon zitierten die offizielle Seite direkt als Quelle.

Um die Wahlkampfroute anhand von Daten zu planen, habe ich ein Analysewerkzeug für Wahlkampf-Standorte gebaut, getrieben von tageszeitabhängigem Fußverkehr. Sechs öffentliche Datenquellen — nach Tageszeit anwesende Bevölkerung, U-Bahn, Bus und weitere — werden auf einem PostGIS-100-Meter-Raster bewertet, das Bevölkerung und Verkehrsknoten nach Stunde gewichtet, und dann als Standort-Scores auf Kakao Maps gezeichnet. Zuerst lief es auf Supabase und Vercel; als Kapazität, Query-Memory und Timeouts zur Decke wurden, habe ich es vollständig auf GCP verlegt — refaktoriert zu einem NestJS-Hexagonal-Server auf Cloud SQL (Seoul) — und den Umzug mit einem verlustfreien pg_dump-zu-pg_restore-Cutover sowie einem vollständigen Row-Count-Abgleich über siebzehn Tabellen verifiziert, bei den Scores bit-genau.

Die Versandseite lief über eine Python-Pipeline, die die 2.000 für den gedruckten Wahlkampf-Versand vorgesehenen Haushalte aus einem Rohbestand von 7.798 ableitete, über vier Kanäle quergeprüft — das Immobilienamt, den Gebäuderegister-HUB, den Straßennamen-Adressdienst und Kakao Local — bevor sie das Massenversand-Formular der Post automatisch erzeugte.

Auch das Ausfüllen der gesetzlichen Buchhaltungsformulare automatisierte ich. Ich baute eine Pipeline, die das koreanische HWPX-Format direkt als ZIP aus XML öffnet, Tabellenzeilen klont und befüllt, und glich das Einnahmen-Ausgaben-Buch der politischen Mittel eins zu eins mit dem Kontoauszug ab. Nach der Wahl wurde die Erstattungsabrechnung der Wahlkampfkosten auf dieselbe Weise verarbeitet.

Nach dem Amtsantritt wandelte ich die Wahlkampfseite in eine offizielle Website für Nachrichten, Ratsarbeit, Wahlversprechen und das Profil des Bezirksratsmitglieds um. Auch das System für Bürgeranliegen betreibe ich weiter: Ein Gmail-Sammler und eine Android-App für SMS, RCS und MMS speisen Anliegen automatisch in ein authentifiziertes Admin-Back-Office ein — auf demselben Deployment, ohne neue Infrastruktur.

Die zweite Entwicklungsphase verband diese öffentliche Website mit einem Redaktionssystem. Ich baute eine Pipeline, die offizielle Dokumente des Bezirksrats von Gwanak erfasst, deren Fassung fixiert, mit Claude einen Artikelentwurf erstellt und anschließend über einen separaten Claude-Aufruf die Fakten prüft. Vor der automatischen Veröffentlichung folgen Prüfungen von Belegen, Medien und Barrierefreiheit. Das CMS verwaltet Artikel, strukturierte Texte, Quellen, Bilder, Videos und hervorgehobene Inhalte sowie Freigabe, Archivierung, Wiederherstellung und Rollback von Publikationsfassungen. Web, Suche und Chatbot verwenden dieselbe freigegebene Fassung, sodass Inhalte ohne erneutes Code-Deployment aktualisiert werden können.

Das Peer-Feedback eines anderen Entwicklers deckte einen Engpass auf: Die Startseite übertrug die vollständigen JPEG-Originale aus dem CMS. Ich reproduzierte das Problem und ergänzte responsive WebP-Ableitungen unter Erhalt der Originale sowie der Prüfung von Veröffentlichungs- und Zugriffsrechten. Bei Chrome-Messungen am 19. September 2026 sank die Bilddatenübertragung der Startseite bei 1440px von 40,74 auf 0,390 MB und bei 390px von 40,66 auf 0,198 MB — um 99,0% beziehungsweise 99,5%.

Am 28. September 2026 erweiterte ich SEO, Generative Engine Optimization (GEO) und Answer Engine Optimization (AEO) für die Website zur Ratsarbeit. Ich glich Autor und Herausgeber, Originalquellen, Erstveröffentlichungs-, Änderungs- und Aktivitätsdaten sowie Hauptbilder zwischen Seite und strukturierten Daten ab. Sechs Fragen in jeweils drei Durchläufen ergaben 18 Google-Suchen und 72 Antworten von ChatGPT, Gemini, Perplexity und Claude. Anhand dieser Antworten untersuchte ich Verwechslungen der Identität, fehlende Amtsbezeichnungen und den Verweis auf andere Quellen.

— FIN —