Zum Inhalt springen
Open Source4 Min. LesezeitVon

QSOlog: ein Logbuch für Funkamateure, das ohne Server auskommt

Unser Open-Source-Projekt QSOlog loggt Funkverbindungen komplett im Browser: Offline-First-PWA, Daten in IndexedDB, ADIF-Export. Was das Projekt über Web-Anwendungen ohne Backend zeigt.

Funkamateure dokumentieren jede Funkverbindung - im Fachjargon QSO - in einem Logbuch: Rufzeichen der Gegenstation, Frequenz, Betriebsart, Signalrapport, Uhrzeit in UTC. Traditionell ist das ein Heft auf dem Stationstisch, heute meist Software. Mit QSOlog haben wir ein solches Logbuch als Open-Source-Projekt gebaut - und dabei eine Architekturentscheidung getroffen, die das Projekt über das Hobby hinaus interessant macht: Es gibt keinen Server.

Kein Backend ist ein Feature

QSOlog läuft vollständig im Browser. Alle QSOs liegen in IndexedDB, angebunden über Dexie.js. Es gibt kein Konto, keine Anmeldung, keine Datenbank auf einem Server und keine Übertragung der Logdaten an Dritte. Das hat drei angenehme Konsequenzen:

  • Datenschutz durch Architektur: Was das Gerät nie verlässt, muss niemand absichern, verschlüsseln oder in einer Auftragsverarbeitung regeln.
  • Betrieb ohne Betriebskosten: Die Anwendung ist eine statische Website. GitHub Pages reicht als Hosting, es gibt nichts zu patchen, zu skalieren oder zu überwachen.
  • Kein Ausfallrisiko: Ein Dienst, der nicht existiert, kann nicht abgeschaltet werden. Das Logbuch funktioniert auch dann noch, wenn das Projekt eines Tages nicht mehr gepflegt würde.

Der Preis dafür ist Disziplin an anderer Stelle: Die Daten leben im Browser-Profil, also braucht es erstklassige Export-Funktionen - dazu gleich mehr.

Offline ist der Normalfall, nicht die Ausnahme

Funkbetrieb findet oft dort statt, wo Mobilfunk schwach ist: auf Berggipfeln, im Fieldday-Zelt, im Urlaub. Ein Logbuch, das eine Internetverbindung voraussetzt, wäre am falschen Ort optimiert. QSOlog ist deshalb als Progressive Web App gebaut: Nach dem ersten Laden übernimmt ein Service Worker (via vite-plugin-pwa) die Auslieferung, die App lässt sich auf Desktop und Smartphone installieren und startet ohne Netz.

Das ist dieselbe Offline-Disziplin, die wir bei internen Fachanwendungen für den Außendienst empfehlen: zuerst lokal schreiben, Netz ist optional. Nur die optionalen Rufzeichen-Abfragen über QRZ.com oder HamQTH brauchen eine Verbindung - und sind bewusst als Zusatz gestaltet, nicht als Voraussetzung.

Daten gehören dem Nutzer

Wenn es keinen Server gibt, der Daten sichert, muss der Export erstklassig sein. QSOlog spricht ADIF 3.1.4, das etablierte Austauschformat der Amateurfunk-Welt, dazu CSV und JSON. Der Import validiert die Daten und erkennt Duplikate, sodass sich bestehende Logs aus anderer Software gefahrlos übernehmen lassen. Für Papier gibt es PDF-Reports im A4-Querformat mit Zusammenfassung.

Das ist dieselbe Haltung, die wir in Kundenprojekten vertreten: Eine Anwendung ist erst dann fertig, wenn man sie auch wieder verlassen kann. Standardformate rein, Standardformate raus - kein Lock-in.

Fachlogik komplett im Frontend

Ohne Backend wandert die gesamte Fachdomäne ins Frontend, und davon hat der Amateurfunk einiges zu bieten:

  • Maidenhead-Locator: Aus zwei Gitterfeld-Angaben berechnet QSOlog Distanz und Peilwinkel der Verbindung.
  • Automatische Banderkennung: Die eingegebene Frequenz wird dem passenden Amateurfunkband zugeordnet, von 160m bis 23cm nach IARU Region 1.
  • RST je Betriebsart: Der Signalrapport folgt je nach Modus dem passenden Standard.
  • Statistiken und Karte: Chart.js visualisiert Band- und Modusverteilung, Aktivitäts-Streaks und DXCC-Länder; Leaflet zeichnet alle Verbindungen mit Marker-Clustering auf eine Karte, auch im Dark Mode.

Technisch besteht der Stack aus Vue 3 mit TypeScript und Vite, Pinia für den State und Tailwind CSS mit Headless UI für die Oberfläche. Mehrere Operator-Profile und eine deutsch-englische Oberfläche runden das Ganze ab.

Was das Projekt zeigt

QSOlog ist ein Nebenprojekt aus echtem Eigenbedarf - und gleichzeitig ein ehrlicher Testfall für eine These, die wir häufiger vertreten: Für viele Anwendungen ist die installierbare Web-App der direktere Weg als ein Store-Auftritt, und nicht jede Anwendung braucht einen Server. Der Code steht unter MIT-Lizenz auf GitHub; Teile davon sind mit Unterstützung von KI-Coding-Tools entstanden und wurden von Menschen geprüft - so steht es transparent im Repository. Wer funkt oder einfach eine sauber gebaute Offline-First-PWA sehen will: ausprobieren, forken, Issues willkommen.

Anrufen