Projekt

Minside Admin

Eine kleine native Windows-Shell für Kunden mit SaaS-Produkten. Sie bettet Chromium ein, lädt das Live-Kundenportal und fühlt sich wie eine Desktop-App an - ohne die Website in den Installer zu kopieren. Der Produktkatalog ist noch Showcase, aber die Analytics-SaaS läuft vollständig.

← Zurück zu Projekten Kontakt zum Desktop-Client

Was ist das?

Minside Admin ist eine Electron-App: ein gesperrtes Fenster, das Login und Produktportal auf simonringwelski.dk öffnet. Keine Adressleiste und kein allgemeines Surfen - nur Desktop-Icon, persistente Session und Recovery, wenn Netzwerk oder Renderer Probleme machen.

Nur die Shell wird gepackt (Main-Prozess, Preload-Bridge, Icon). Die Website kommt immer vom Server, sodass Kunden dasselbe PHP-Backend, Auth und SaaS-Produkte wie im Browser bekommen - mit einem Desktop-first-Rahmen darum.

Stellen Sie sich Chrome ohne Chrome vor: dieselbe Site, dieselben Konten, auf die Domain beschränkt, mit Desktop-Verknüpfung und Crash-/Netzwerk-Recovery.

  • Native Windows-Shell um das Live-Kundenportal
  • SaaS-Produkt-Launcher mit Konto- und Lizenzprüfung
  • Analytics-SaaS ist produktionsreif; der breitere Katalog ist noch Showcase
  • Installer- und Portable-Builds via electron-builder

Sicherer Login

Beim Start öffnet sich ein fokussierter Admin-Login im Electron-Fenster. Nutzer melden sich mit Kontodaten an, bevor Produkte erscheinen - derselbe Auth-Stack wie das Webportal, in einem ruhigen Desktop-Rahmen.

Sichere Authentifizierungsoberfläche mit klarem, ablenkungsfreiem Design. Nutzer authentifizieren sich mit Kontodaten, bevor sie auf verfügbare SaaS-Produkte zugreifen.

Die Einstiegs-URL enthält client=desktop-app, damit die Site den Wrapper erkennt und die UI für das gesperrte Fenster anpasst (Theme-Toggle, Layout und Desktop-Hinweise).

  • Lädt auth/login.php in einem gesperrten Electron-Fenster
  • Saubere, ablenkungsfreie Authentifizierungs-UI
  • Desktop-Client-Query lässt PHP/JS die Erfahrung anpassen

Zwei-Faktor-Authentifizierung

Wenn ein Konto 2FA aktiviert hat, setzt der Desktop-Client denselben Authenticator-Flow wie im Web fort: einen sechsstelligen App-Code oder einen der zehnstelligen Backup-Wiederherstellungscodes, falls das Telefon fehlt.

Eingebaute Unterstützung für Zwei-Faktor-Authentifizierung (2FA) mit Authenticator-Apps und Backup-Wiederherstellungscodes für eine zusätzliche Kontosicherheitsschicht.

MFA wird in Electron nicht neu implementiert - die Shell hostet nur die gehärteten Login-Seiten, sodass die Sicherheitspolitik zentral auf dem Server bleibt.

  • Authenticator-App-Codes (6 Stellen)
  • Backup-Wiederherstellungscodes (10 Stellen)
  • Abbrechen und zurück zum Passwort-Login bei Bedarf

Produkte-Dashboard

Nach dem Login landen Kunden auf einer Produkt-Startseite mit Abonnements und gekauften SaaS-Apps auf dem Konto. Aktive Produkte zeigen Status und eine Öffnen-Aktion, die die App in derselben Shell startet.

Ein zentrales Dashboard mit allen aktiven Abonnements und gekauften Produkten. Nutzer können Anwendungen direkt aus dem Client starten, während das System Kontozugriff und Lizenz automatisch prüft.

Zugriff und Lizenz prüft der Server beim Öffnen eines Produkts - der Desktop-Client ist der Launcher, kein separates Lizenzlager.

  • Zentrale Liste aktiver Abonnements und Produkte
  • Mit einem Klick in die gewählte SaaS-UI öffnen
  • Kontozugriff und Lizenz werden serverseitig geprüft

Analytics-SaaS (live)

Analytics ist kein Mock-Screen. Kunden öffnen ein funktionierendes Analytics-Produkt vom Desktop: Traffic, Besucherverhalten, Content-Performance, Audience, Events, Nutzung und Core Web Vitals für ihre Property.

Eine Desktop-Oberfläche für die Analytics-Plattform mit Zugriff auf Website-Traffic, Besucherverhalten, Content-Performance, Core Web Vitals und weitere Website-Einblicke über einen dedizierten nativen Client.

Zeiträume, Property-Verwaltung und einwilligungsbewusste Erfassung liegen auf demselben Backend wie die Web-Erfahrung - der native Client ist nur die bevorzugte Alltagsoberfläche.

  • Traffic, Content, Audience, Performance, Events und Nutzung
  • Core Web Vitals und verwandte Website-Einblicke
  • Voll funktionsfähiges Produkt - kein Showcase-Platzhalter

Architektur

Minside Admin.exe startet einen Electron-Main-Prozess. Der besitzt BrowserWindow, Navigation Guards, persistente Cookie-Partition und Auto-Reload bei Fehlern. Chromium lädt dann die Live-Site auf simonringwelski.dk.

Architekturübersicht des Desktop-Clients. Mit Electron gebaut, wirkt die Anwendung als sichere Hülle um die Webplattform. Sie bietet persistente Authentifizierung, Navigationskontrolle, automatische Wiederherstellung bei Verbindungsfehlern und eine desktop-optimierte Erfahrung, während die Webanwendung über Chromium geladen wird.

main.js steuert Fenster, Domain-Sperre, Recovery-Backoff und Session-Persistenz. preload.js ist die Bridge zwischen Electron und der Seite und bleibt absichtlich leer oder minimal. package.json treibt Scripts und electron-builder-Ausgabe.

Dev nutzt npm start gegen lokales main.js. Release läuft über npm run dist: Logo nach .ico konvertieren, dann Minside Admin Setup (Installer + Verknüpfung) und eine portable .exe bauen. Die Website selbst wird nie in die Binary gepackt.

  • Electron-Main-Prozess + Chromium-Renderer
  • Navigation Guards auf simonringwelski.dk (und Subdomains) begrenzt
  • persist:minside-Partition für Cookies und Site-Storage
  • Auto-Reload mit Backoff bei Load/Crash/Hang
  • electron-builder Installer- und Portable-Windows-Builds

Shell-Verhalten & Sicherheit

Beim Start heißt das Fenster „Minside Admin“, und die erste URL ist der Live-Login mit client=desktop-app. Externe Links und Off-Domain-Redirects werden in der App blockiert und stattdessen im normalen Browser des Nutzers geöffnet.

Sessions überleben Neustarts, weil Cookies und Storage unter Electrons User-Data-Ordner liegen und beim Beenden auf die Festplatte geschrieben werden. Wenn die Hauptseite scheitert, der Renderer crasht oder die Seite hängt, wird Reload mit Backoff von 1s bis max. 30s geplant; ein erfolgreicher Load setzt den Zähler zurück.

Sicherheitsdefaults bleiben streng: nodeIntegration aus, contextIsolation und sandbox an - damit die Website über die Shell keine Node- oder Datei-APIs erreichen kann.

  • Keine Adressleiste; domain-gesperrte Navigation
  • Persistenter Login über App-Neustarts
  • Backoff-Reload bei Load-Fehler, Crash oder Hang
  • nodeIntegration: false, contextIsolation: true, sandbox: true