Entwicklung & Code
Apple und die EU-Kommission einigen sich: Neue App-Store-Regeln ab 1. Oktober
Diese Botschaft am Nachmittag des 18. August 2026 kam überraschend: Apple und die EU-Kommission haben sich gemeinsam auf neue App-Store-Bedingungen in der EU geeinigt. Herausgekommen sind ein neues einheitliches Gebührenmodell für App-Entwickler, erhöhte Kinderschutzmaßnahmen und eine breitere Öffnung für Anbieter alternativer App-Marktplätze. Vor allem aber hofft Apple, damit das Kapitel eines langjährigen Konflikts mit der EU-Kommission schließen zu können. Die neuen App-Store-Bedingungen sollen zum 1. Oktober 2026 in Kraft treten. Die EU-Kommission hat sich bislang noch nicht geäußert.
Weiterlesen nach der Anzeige
Kaum ein Tech-Konzern hat sich in den vergangenen Jahren so gegen die Vorgaben des Gesetzes für digitale Märkte (Digital Markets Act, DMA) gesträubt wie Apple. Der iPhone-Hersteller fürchtete eine massive Verschlechterung der Sicherheit auf iPhones und iPads und damit Nachteile für seine Kunden. Das Unternehmen mit Sitz im kalifornischen Cupertino reagierte mit einem komplexen neuen Regelwerk mit unterschiedlichen Gebührensätzen und Bedingungen. App-Entwickler mussten sich unter anderem entscheiden, ob sie weiterhin bei Apples globalen Geschäftsbedingungen verbleiben und nur im App Store veröffentlichen dürfen – oder ob sie auf neue EU-Bedingungen wechseln und dann auch alternative Marktplätze bestücken dürfen.
Über ein Jahr lang verhandelt
Kritiker Apples sahen in dieser Vorgehensweise keinen Beitrag zur Sicherheit, sondern schlichtweg den Versuch, den von der EU angestrebten Wettbewerb zu verhindern. Und tatsächlich blieb eine Blütephase alternativer App-Marktplätze aus. Ob es an Apple lag oder die EU schlichtweg ein nicht vorhandenes Bedürfnis befriedigen wollte, ist umstritten. Doch in Brüssel sah man rot und stellte im Juni 2024 eine Verletzung der DMA-Regeln fest.
Was die überraschende Trendwende ausgelöst hat, verrät Apple nicht. Vor einigen Wochen wurde bekannt, dass der scheidende Apple-Chef Tim Cook persönlich mit der EU-Kommission sprach. Die Verhandlungen, die zum jetzigen Ergebnis führten, gingen allerdings über ein Jahr und sie waren intensiv: Nahezu wöchentlich habe man sich getroffen, ist zu hören. Dies markiert eine deutliche Trendwende, denn noch vor anderthalb Jahren klagte Apple darüber, dass man in Brüssel keine Ansprechpartner habe und die Kommission erratisch agiere.
Ab 1. Oktober mehr Klarheit und einfachere Regeln
Ab dem 1. Oktober 2026 wird die Situation in der EU nun für Entwickler wieder deutlich einfacher. Es gibt dann nur noch eine Ausfertigung der Geschäftsbedingungen, die sowohl Veröffentlichungen im App Store Apples als auch in alternativen Marktplätzen abdecken. Also kein Entweder-oder mehr – und das reicht bis hin zu In-App-Käufen, die künftig auch in Apps angeboten werden können, die in alternativen Marktplätzen veröffentlicht werden können.
Weiterlesen nach der Anzeige
Mit den Änderungen geht auch eine neue Gebührenstruktur einher. Die bisherige EU-spezifische Kerntechnologiegebühr (Core Technology Fee, CTF) entfällt zugunsten einer neuen „Core Technology Commission“ von pauschal 5 Prozent auf digitale Transaktionen außerhalb des App Stores. Apple bekommt damit seine Kosten für das Bereitstellen der technischen Infrastruktur und der Plattform bezahlt.
Neue Gebührensätze
Der App-Vertrieb über den App Store mit Apple-In-App-Kauf kommt künftig mit einer Umsatzabgabe von 26 Prozent (Standard) daher bzw. 15 Prozent für Programme wie das „Small Business Program“ für App-Entwickler mit geringem Jahresumsatz. Die alternative Zahlungsabwicklung innerhalb der App schlägt mit 20 Prozent (Standard) oder 10 Prozent für begünstigte Entwicklerprogramme zu Buche. Für Apps im App Store, die für den Abschluss von Käufen aus der App heraus verlinken, beträgt die Provision 15 Prozent bzw. 10 Prozent in den Programmen.
Wer sich für eine Zahlungsoptions-Kombination entscheidet, muss diese laut Apple mindestens 12 Monate beibehalten. Für viele Entwickler dürfte das Bereitstellen von Apps günstiger werden – sie zahlen etwa im Standard-Tarif 26 statt bislang 30 Prozent.
Vorbilder Brasilien und Japan
Die neuen App-Store-Bedingungen ähneln in vielerlei Hinsicht jenen, die in Brasilien und Japan eingeführt wurden. Apple hatte dort jeweils im Zusammenspiel mit den Regulierern nach Lösungen gesucht, während man jeweils beklagte, dass es in der EU nur einen Konfrontationskurs gab. Das hat sich jetzt offenbar geändert. Änderungen findet man im Detail, etwa, dass Entwickler sich in der EU auch dazu entscheiden können, In-App-Käufe via Apple gar nicht anzubieten.
Ein weiteres Thema, das Apple nach eigener Aussage wichtig ist und das Berücksichtigung gefunden hat, ist der Kinderschutz. Apps in der Kids-Kategorie dürfen künftig keine Links zu externen Bezahl-Websites mehr enthalten. Für Nutzer unter 13 Jahren ist generell kein Verlinken zu Web-Zahlungen erlaubt. Und für Nutzer unter 18 Jahren ist bei alternativen Zahlungen oder Verlinkungen vorgeschrieben, dass Erziehungsberechtigte eingebunden werden müssen.
Apple öffnet sich für weitere Alternativen
Apple wiederum hat sich für erweiterte Zulassungsmöglichkeiten für alternative App-Marktplätze geöffnet. Unternehmen sind jetzt dafür qualifiziert, wenn sie festgelegte Mindestanforderungen an die finanzielle Stabilität erfüllen, öffentlich börsennotiert oder im Besitz eines öffentlich börsennotierten Unternehmens sind, Risikokapital von einer etablierten Investmentfirma erhalten haben oder eine Finanzprüfung durch einen zugelassenen Wirtschaftsprüfer vorgenommen haben. Auch staatliche Einrichtungen, Bildungseinrichtungen oder gemeinnützige Organisationen sind berechtigt.
Kein Wort gab es hingegen dazu, ob die bisherigen Hürden bei der Installation alternativer App-Stores reduziert werden. Zu erwarten ist dies nicht, denn Apple sieht in dem Aufbohren seiner Plattform weiterhin eine Erhöhung der Sicherheitsrisiken, auch wenn es in den zwei Jahren seit Einführung des DMA zu keinem großen Sicherheitsvorfall gekommen ist.
Eine Einigung mit Signalwirkung?
Ob die neuen Bedingungen deshalb die Kritik von Apple-kritischen Unternehmen wie Epic oder Spotify abreißen lassen, ist zu bezweifeln. Dass Apple jetzt in einem ersten wichtigen Punkt der jahrelangen DMA-Streitigkeiten eine Einigung mit der EU-Kommission erzielt hat, könnte allerdings eine Signalwirkung auf andere Konflikte zwischen den beiden Parteien haben. So zittern Apple-Nutzer in der EU aktuell, ob und wann sie die KI-erneuerte Sprachassistenz Siri AI bekommen. Apple hat angekündigt, iPhones und iPads in der EU vorerst nicht damit auszustatten – aus Sorge vor Regulierung durch die EU: Viele warten auch noch auf die iPhone-Fernsteuerung über macOS, die Apple ebenfalls zurückhält. Zähneknirschen gibt es außerdem bei der Interoperabilität, also inwieweit zum Beispiel Hersteller von Smartwatches und Kopfhörern gleichberechtigten Zugang zum System bekommen, wie Apple ihn für seine Geräte vorhält.
Mit der jetzigen Einigung ist ein Anfang gemacht, vielleicht auch weitere Konfliktpunkte einvernehmlich zu lösen.
Lesen Sie auch
(mki)
Entwicklung & Code
Herdr: Terminal-Multiplexer sortiert Flotten von Coding-Agenten
Wer mehrere Coding-Agenten parallel an verschiedenen Projekten arbeiten lässt, muss auf deren Ausgaben warten und vor allem den Überblick behalten: Welcher Agent rechnet noch, welcher ist fertig, und wo blockiert eine Rückfrage den nächsten Schritt? Genau an dieser Stelle setzt Herdr an. Der freie Terminal-Multiplexer hält Sitzungen am Leben, ordnet sie nach Projekten und fasst den Zustand von Agenten in einer Seitenleiste zusammen.
Weiterlesen nach der Anzeige
Das im März 2026 veröffentlichte Projekt hat inzwischen auch institutionellen Rückhalt erhalten. Gründer Can Celik kündigte Anfang August die Aufnahme in den Herbstjahrgang 2026 des US-Gründerprogramms Y Combinator an. Y Combinator führt Herdr als Ein-Personen-Unternehmen mit Sitz in Ankara. Y Combinators Standard Deal investiert in jedes aufgenommene Start-up 500.000 US-Dollar. Eine weitere, individuelle Finanzierungsrunde nennt Herdrs Ankündigung nicht.
Herdr liefert kein Sprachmodell und ersetzt keine Agenten wie Claude Code, Codex oder OpenCode. Als auf Coding-Agenten zugeschnittener Konkurrent zu tmux führt Herdr gewöhnliche Terminal-Prozesse aus, ergänzt deren Darstellung aber um die Zustände working, blocked, done,idle und unknown. Die aktuelle stabile Ausgabe ist 0.9. Das in Rust entwickelte Programm steht unter der Apache-2.0-Lizenz. Binärpakete gibt es für Linux und macOS auf x86-64 und ARM64 sowie für Windows auf x86-64. Hinzu kommen unter anderem Homebrew, Nix und mise. Einzelne Funktionen bleiben unter Windows eingeschränkt.
Vom Pane zur Aufmerksamkeitsliste
Die Herdr-Architektur folgt dem Client-Server-Modell klassischer Terminal-Multiplexer. Ein Server stellt die Terminal-Instanzen bereit, unter Unix als Pseudoterminals (PTYs) und unter Windows per ConPTY-Konsolen. Der Client stellt diese nur dar, sodass Shells, Entwicklungsserver und Agenten weiterlaufen, sollte er getrennt werden. Herdr organisiert Terminals in Workspaces, Tabs und Panes, sodass der Nutzer sie entsprechend seines eigenen Workflows gruppieren kann.
Um die Aufmerksamkeit des Nutzers auf die richtigen Agenten lenken zu können, erkennt Herdr Zustände der KI-Agenten per Hook, Plugin oder die Analyse der Terminal-Ausgabe. Optionale Integrationen liefern je nach Werkzeug zusätzlich Sitzungskennung oder Informationen zum Lebenszyklus. Herdr verdichtet die Zustände auf Workspace-Ebene und meldet unbeachtete Rückfragen.
Auch Automatisierung ist vorgesehen. Über Kommandozeile und eine lokale Socket-API lassen sich Panes anlegen, Ein- und Ausgaben übertragen sowie Agentenzustände abfragen. Unter Unix nutzt sie einen Unix Domain Socket, unter Windows eine Named Pipe. Auch tmux lässt sich automatisieren, allerdings ohne die native Integration von Agenten und deren Zuständen.
Weiterlesen nach der Anzeige
Dauerhaft ist nicht unsterblich
Beim Trennen eines Clients oder bei einem Netzwerkausfall laufen Server und Prozesse weiter. Nach einem Neustart des Herdr-Servers oder Rechners dagegen sind Prozesse natürlich beendet. Laut der Restore-Matrix des Projekts stellt Herdr dann Workspaces, Tabs, Pane-Aufteilung, Arbeitsverzeichnisse und Fokus wieder her und setzt Agenten, die das unterstützen, über deren native Sitzungskennung fort.
Die optionale Speicherung der Terminal-Historie ist standardmäßig abgeschaltet, weil sie Zugangsdaten, Token oder Prompts enthalten kann. Ein experimentelles Live-Handoff versucht, Prozesse bei bestimmten Updates zu erhalten, bietet dafür aber keine Garantie.
SSH bleibt der Transportweg
Auch bei entfernten Rechnern ersetzt Herdr nicht SSH. Nutzer können sich wie gewohnt anmelden und Herdr dort starten. Alternativ verbindet die Remote-Funktion herdr --remote host einen lokalen Herdr-Client über OpenSSH mit einem Herdr-Server. OpenSSH übernimmt Authentifizierung und Host-Key-Prüfung. Als Ziel unterstützt dieser Modus nur Linux und macOS. Windows kann seit Herdr 0.8.2 als lokaler Client dienen, aber nicht als Server.
Seit Version 0.9.0 können mehrere Clients unabhängig voneinander verschiedene Workspaces und Tabs anzeigen. Unterschiedliche Tabs passen sich der Größe des jeweiligen Clients an. Teilen sich Clients einen Tab, bestimmt der zuletzt darin aktive Client dessen Größe.
Die am 7. September 2026 veröffentlichte Version bündelt außerdem lokale und per SSH angebundene Server in einem Fenster. Eine gemeinsame Agentenliste zeigt deren Zustände. Während die ausgewählte Maschine die sichtbaren Terminal-Inhalte liefert und Eingaben erhält, aktualisieren die übrigen Verbindungen weiterhin Statusinformationen und Benachrichtigungen. Diese Funktion wird derzeit unter Linux und MacOS unterstützt. Ein gespeichertes Maschinenprofil bindet jeweils eine Sitzung ein, nicht sämtliche Sitzungen eines Hosts.
Omarchy integriert Herdr und steuert Code bei
Besonders sichtbar wurde Herdr durch Omarchy, die Linux-Distribution des umstrittenen David Heinemeier Hansson. Deren vierte Hauptversion Quattro hat den Multiplexer zusätzlich zu tmux integriert. Die mitgelieferte Konfiguration orientiert sich mit Ctrl+Space als Prefix an Omarchys tmux-Belegung. Die Versionshinweise zu Herdr 0.8.2 nennen DHH als Mitwirkenden an Fenstertiteln, Pane-Größenänderung und Tab-Verschiebung. Omarchy ist damit Konsument und DHH Contributor.
Für ein oder zwei Sitzungen, deren Inhalt bekannt ist, bleibt ssh plus tmux die nüchterne Wahl. tmux ist seit fast zwei Jahrzehnten erprobt, breit paketiert und detailliert konfigurierbar. Wer Statusleisten, Hooks und Benachrichtigungen eingerichtet hat, gewinnt durch einen Wechsel womöglich wenig.
Mehr Orientierung, weniger Reife
Herdr wird interessanter, wenn mehrere Agenten über Repositories und Rechner verteilt arbeiten und die menschliche Aufmerksamkeit knapp wird. Statusübersicht, Benachrichtigungen, Sitzungswiederaufnahme und semantische API reduzieren dann Eigenbau. Mausbedienung und repositoryorientierte Organisation senken zudem die Einstiegshürde.
Herdr bleibt jedoch jung: In weniger als fünf Monaten sprang es von Version 0.1 auf 0.8. Auch der Plugin-Marktplatz ist keine kuratierte vertrauenserweckende Anlaufstelle. Einträge werden laut Projekt automatisch erfasst und nicht geprüft. Plugins, Hooks und Socket-API haben Zugriff auf Entwicklungsumgebung und Terminal-Inhalte und verlangen entsprechende Vorsicht.
Somit macht Herdr tmux nicht überflüssig. Es behandelt Terminals zusätzlich als Warteschlange für menschliche Entscheidungen. Ob das ein eigenes Laufzeitsystem rechtfertigt, hängt weniger von der Zahl offener Panes ab als davon, wie oft eines unbemerkt auf eine Antwort wartet.
(axk)
Entwicklung & Code
Microsoft leitet letzte Phase für SQL Data Sync ein
Microsoft hat die nächste Stufe bei der Einstellung von SQL Data Sync gezündet: Seit dem 9. September lassen sich in Azure-Abonnements, die den Dienst bislang nicht genutzt haben, keine neuen SQL-Data-Sync-Bereitstellungen mehr anlegen. Bestehende Nutzer können Sync-Gruppen und Mitgliedsdatenbanken dagegen noch bis zum vollständigen Aus des Dienstes am 30. September 2027 erstellen, ändern und betreiben.
Weiterlesen nach der Anzeige
Die Einstellung hatte Microsoft bereits 2024 mit dreijähriger Übergangsfrist angekündigt. SQL Data Sync gleicht ausgewählte Daten zwischen mehreren Datenbanken ab, sowohl zwischen Azure SQL Database als auch mit SQL-Server-Instanzen im eigenen Rechenzentrum. Die Daten können dabei je nach Konfiguration in beide Richtungen fließen. Microsoft beschreibt die Einstellung und die vorgesehenen Migrationspfade in seiner Dokumentation.
Keine Einschränkung für bestehende Abonnements
Die neue Einschränkung trifft ausdrücklich ausschließlich Azure-Abonnements, die SQL Data Sync zuvor nie eingesetzt haben. Für Abonnements, die SQL Data Sync bereits nutzen, ändert sich zunächst nichts: Administratoren dürfen weiterhin Sync-Gruppen anlegen und verwalten sowie Datenbanken als Mitglieder hinzufügen. Microsoft will damit verhindern, dass kurz vor dem Endtermin noch neue Abhängigkeiten von dem auslaufenden Dienst entstehen. Die Details zur nun begonnenen letzten Ausmusterungsphase nennt Microsoft im Azure-SQL-Blog.
SQL Data Sync organisiert die Replikation in Sync-Gruppen nach einem Hub-and-Spoke-Prinzip. Als Hub dient stets eine Azure SQL Database; weitere Azure-SQL-Datenbanken oder SQL-Server-Datenbanken können als Mitglieder teilnehmen. Bei lokalen SQL-Server-Datenbanken ist zusätzlich ein lokaler Sync-Agent nötig. Der Dienst kann Daten in beide Richtungen oder nur vom Hub zu einem Mitglied beziehungsweise umgekehrt übertragen.
Inventur vor der Migration
Microsoft rät betroffenen Organisationen, zunächst alle vorhandenen Bereitstellungen zu erfassen – auch inaktive Sync-Gruppen. Dazu gehören Hub- und Mitgliedsdatenbanken, gegebenenfalls installierte Sync-Agenten sowie die Anwendungen, die auf replizierte Daten angewiesen sind. In kleineren Umgebungen lassen sich die Sync-Gruppen über den Bereich „Sync to other databases“ einer Azure SQL Database im Azure-Portal prüfen. Für größere Azure-Landschaften verweist Microsoft auf die PowerShell und die Azure-SQL-Management-REST-API.
Vor der Umstellung sollten Administratoren außerdem Datenfluss, Synchronisierungsrichtung, Intervall, Datenvolumen sowie Anforderungen an Latenz und Verfügbarkeit festhalten. Das ist wichtig, weil SQL Data Sync kein einheitliches Nachfolgeprodukt erhält. Je nach bisherigem Einsatz kann die Migration eine bloße Umkonfiguration sein oder einen Umbau der Replikationsarchitektur erfordern.
Weiterlesen nach der Anzeige
Ersatz hängt vom Einsatzfall ab
Für geplante oder inkrementelle Übertragungen nennt Microsoft Azure Data Factory als Alternative. Das eignet sich etwa, wenn Daten in festen Intervallen für ein Data Warehouse oder einen Reporting-Bestand kopiert werden sollen. Für die einseitige Verteilung von SQL Server zu Azure SQL Database verweist der Konzern auf die transaktionale Replikation.
Geht es vor allem um lesende Replikate oder regionale Verfügbarkeit, kommen etwa aktive Georeplikation und Read Replicas infrage. Für Reporting-Replikate vollständiger Datenbanken nennt Microsoft Always On Availability Groups bei SQL Server auf Azure-VMs sowie Managed Instance Link bei Azure SQL Managed Instance. Daneben führt die Migrationsdokumentation Azure Functions mit Azure-SQL-Triggern für anwendungsspezifische Synchronisation sowie Mirroring in Microsoft Fabric für Analyseumgebungen auf. Welche Variante passt, hängt unter anderem von Quell- und Zielplattform, Datenrichtung, Topologie, zulässiger Verzögerung und Durchsatz ab. Die Migrationsdokumentation enthält dazu eine Übersichtstabelle, die alle Pfade nach Quell- und Zielplattform aufschlüsselt.
Nach erfolgreicher Validierung der Ersatzlösung in einer Nicht-Produktivumgebung empfiehlt Microsoft, die automatische Synchronisierung der bisherigen Gruppe vorübergehend abzuschalten. Erst wenn Anwendungen nicht mehr auf SQL Data Sync angewiesen sind, sollten Unternehmen die alten Ressourcen entfernen. Spätestens zum 30. September 2027 muss der Umstieg abgeschlossen sein.
(fo)
Entwicklung & Code
Neu in .NET 10.0 [40]: JSON Patch zum reinen Testen von Werten
Um Werte zu testen, ohne etwas zu ändern, lässt sich in .NET 10.0 JSON Patch verwenden.
Weiterlesen nach der Anzeige

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.
Das folgende Beispiel zeigt die Anwendung der neuen Klasse JsonPatchDocument aus System.Text.Json Version 10.0 auf ein JSON-Patch-Dokument, dass nur aus Test-Operationen besteht:
CUI.H2("Testen mit JSON Patch-Dokument");
string jsonPatchTest = """
[
{ "op": "test", "path": "/FirstName", "value": "Dr. Holger" },
{ "op": "test", "path": "/PrivateEmail", "value": null},
{ "op": "test", "path": "/PrivateWebsite", "value": null},
{ "op": "test", "path": "/Address/ZipCode", "value": "45257" }
]
""";
// JSON Patch-Dokument laden
JsonPatchDocument? patchTestDoc = JsonSerializer.Deserialize>(jsonPatchTest);
// JSON Patch-Dokument anwenden auf das Person-Objekt
patchTestDoc!.ApplyTo(person, patchError => CUI.PrintError(patchError.ErrorMessage));
In diesem Fall gibt es keine Fehlerausgabe. Wenn man das JSON-Patch-Dokument aber verändert
CUI.H2("Reines Testen eines Objekts mit JSON Patch-Dokument (absichtlich mit drei Fehlern!)");
string jsonPatchTest = """
[
{ "op": "test", "path": "/FirstName", "value": "Dr.Holger" },
{ "op": "test", "path": "/PrivateEmail", "value": null},
{ "op": "test", "path": "/PrivateWebsite", "value": ""},
{ "op": "test", "path": "/Address/ZipCode", "value": "45251" }
]
""";
bekommt man drei Fehlermeldungen:

Drei Fehler zeigt die Ausgabe (Abb. 1).
Dabei ist die Fehlermeldung bei 'PrivateWebsite' ungünstig, denn sie unterscheidet nicht zwischen Leerstring und Null. Im Objekt steht null, getestet wird auf Leerstring. In der Fehlermeldung steht jedoch in beiden Fällen ' '.
Weiterlesen nach der Anzeige
(rme)
-
Entwicklung & Codevor 1 MonatKommentar: KI-Verbote in Open-Source-Projekten können KI nicht stoppen
-
UX/UI & Webdesignvor 2 MonatenRegional & mit Gefühl: Identity für Klimafonds Baden-Württemberg › PAGE online
-
UX/UI & Webdesignvor 2 MonatenVom Scribble zur Sammelkarte: Kreativer KI-Workflow mit Adobe Photoshop, Illustrator und Firefly Boards › PAGE online
-
Datenschutz & Sicherheitvor 2 MonatenKommentar: OpenAI – KI-Sicherheit nur ein Marketing-Gag?
-
Online Marketing & SEOvor 2 MonatenGoogle Unternehmensprofil optimieren ► Anleitung & Tipps
-
Künstliche Intelligenzvor 3 Monaten
Top 10: Der beste ergonomische Bürostuhl im Test – Herman Miller vor Flexispot
-
Künstliche Intelligenzvor 3 Monaten
Top 10: Der beste Saugroboter mit Wischfunktion im Test – Testsieger Roborock
-
UX/UI & Webdesignvor 3 MonatenSchriftfamilie Mainboard: Technisch und windschnittig › PAGE online
