wayBetter

(FOSS) Alles ist jetzt eine App.

Die Apps, die du nutzt, viel besser.

wayBetter holt die Apps, die du ohnehin nutzt, in ein leichtes natives Fenster und erweitert sie an Ort und Stelle, so wie BetterDiscord Discord erweitert. Tabs, geteilte Bereiche, alle Konten nebeneinander, Themes, Plugins und Korrekturen für die Fehler der App selbst. Jeder kann ein Theme oder ein Plugin bauen. Jeder kann die nächste App bauen.

wayBetter for X holen

wayBetter for X für Windows herunterladen · kostenlos · GPL-3.0-or-later · keine Telemetrie darüber, was du liest oder postest

  • 14 Themes in wayBetter for X
  • 14 mitgelieferte Plugins
  • 9 Korrekturen für X-eigene Fehler
  • 7.9 MB Download
  • 0.23 s bis zum Start
  • 0 Abhängigkeiten in waybetter
  • $0 für immer

01 Das Problem

Jede App liefert nur die Hälfte von dem, was du brauchst.

Den Rest bekommst du nicht: Die App entscheidet, wie viele Konten du hast, wie sie aussieht und wann ihre Fehler behoben werden. wayBetter behält die App und ergänzt die andere Hälfte.

  1. A

    Ein Konto pro Fenster. Abmelden, anmelden, von vorn.

    Alle Konten, nebeneinander, alle gleichzeitig angemeldet.

  2. B

    Ein Fehler in der App? Warte, bis sie ihn beheben.

    Behoben auf deinem Rechner, an Ort und Stelle, heute.

  3. C

    Der Look, den sie ausgesucht haben. Die Funktionen, die sie geliefert haben.

    Themes und Plugins, die jeder schreiben kann.

  4. D

    Ein kompletter Browser in jedem Desktop-Client.

    Ein leichtes natives Fenster auf dem WebView des Systems.

Leicht aus Prinzip

Alles ist jetzt eine App. Und zwar eine leichte.

Ein natives Fenster auf dem WebView, den dein System schon hat, statt eines weiteren Browsers in jeder App.

7.9 MBder gesamte Windows-Installer
0.23 svom Start bis zum Fenster auf dem Bildschirm
17 msbis Themes, Korrekturen und Plugins in der Seite geladen sind
0lange Tasks, die zur Seite hinzukommen

Gemessen unter Windows 11 mit wayBetter for X 1.0: Installer-Größe des veröffentlichten Downloads; Median aus 3 Starts; Auswertung der Runtime und lange Tasks (>50 ms) mit und ohne wayBetter gemessen.

02 Ein System

Drei Schichten um die echte App.

Jede wayBetter-App ist dasselbe System: eine native Shell, eine Runtime in der Seite und ein kleiner Adapter, der die App kennt. Die App selbst macht weiter, was sie macht. Nichts läuft über einen Proxy oder wird woanders gehostet; geändert wird nur auf deinem Rechner.

01 · Shell

Ein leichtes natives Fenster.

Tauri 2, auf dem WebView des Systems. Der Rahmen, den du dir für jede App wünschst:

  • Tabs, angeheftete Tabs und geteilte Bereiche: Zieh einen Tab oder einen Link an einen Rand
  • Jedes Konto im eigenen Profil, nebeneinander angemeldet
  • Link-Routing: im selben Tab, daneben, in einem neuen Tab oder in deinem Browser öffnen
  • Adressleiste und Befehlspalette Ctrl K
  • Signierte Updates, die sich still installieren

02 · Runtime

Themes und Plugins, mitten in der Seite.

In die Seiten der App selbst eingefügt und von jeder wayBetter-App geteilt:

  • Themes auf einem Farbfundament (ein OKLab-Modell der App-Palette)
  • JavaScript-Plugins im BetterDiscord-Stil mit einer kleinen Helfer-API
  • Ein DOM-Hub und ein Request-Hub, damit Funktionen günstig bleiben
  • Dein eigenes CSS, nach dem Theme angewendet

03 · Adapter

Ein kleines Teil pro App.

Der einzige Teil, der die App kennt: ihre Hosts, ihr Layout, ihren Konto-Button und die Daten, die sie ohnehin lädt.

  • Eine native SiteSpec und ein SiteAdapter in der Seite
  • Eine kurze, geprüfte Liste dessen, was die Tabs der App aufrufen dürfen
  • Alles andere kommt aus dem System

03 Die erste App

wayBetter for X.

Das echte x.com in Tabs und geteilten Bereichen, alle Konten nebeneinander, vierzehn Themes, acht Bereichs-Plugins und Korrekturen für die Fehler, die X mitliefert: Likes und Follows, die sich überholen, Entwürfe, die verschwinden, eine Timeline, die springt. Jetzt für Windows, macOS und Linux.

14eingebaute Themes, und deine
14mitgelieferte Plugins, aus, bis du sie einschaltest
9Korrekturen für X-eigene Fehler
36Tweaks zum Ausblenden, Einblenden und Ändern von X
  • 01
    Alle Konten, nebeneinander

    Tabs und geteilte Bereiche auf dem echten x.com, jedes Konto gleichzeitig im eigenen Profil angemeldet.

  • 02
    Die Fehler von X, behoben

    Likes und Follows, die ankommen, deine Position bei „Zurück“, keine Timeline-Sprünge, wiederholte Uploads.

  • 03
    Ein Tresor für Entwürfe

    Jeder Entwurf wird lokal mit seinem Versionsverlauf aufbewahrt und wieder eingesetzt, wenn X ihn verliert.

  • 04
    Vierzehn Themes, acht Bereichs-Plugins

    Komplette Redesigns, nicht nur Farben. Reader+, Chat+, Media+ und fünf weitere Bereichs-Plugins, ein Schalter für jede Funktion.

  • 05
    Ctrl+K für alles

    Eine Befehlspalette für Tabs, Konten, Einstellungen und die X-Suche mit Operator-Chips.

  • 06
    Deck

    Ein Deck im TweetDeck-Stil: X-Spalten nebeneinander, jede im Konto deiner Wahl, mit Filtern und Ungelesen-Zählern.

wayBetter for X

Kostenlos · Open Source · aktualisiert sich still

Für Windows herunterladen Alles ansehen

Windows · macOS · Linux

04 Mach es zu deinem

Jeder kann Themes und Plugins bauen.

Ein Theme ist eine JSON-Datei. Ein Plugin ist eine JavaScript-Datei. Keine Prüfwarteschlange und kein Konto, um eins zu nutzen: schreiben, in den Ordner legen, die Datei teilen oder im Store veröffentlichen. Wenn du CSS schreiben kannst, kannst du eine App neu einkleiden. Wenn du ein wenig JavaScript schreiben kannst, kannst du die Funktion ergänzen, die nie kam.

Themes

Farben, Schriften, Form, Layout, Hintergrund, Effekte.

JSON im Bereich Darstellung importieren und exportieren. Der Kontrast wird für dich geprüft: Text bleibt auf jeder Fläche lesbar.

StartseitePosten
Für dichFolge ich
wayBetter@CRTkafa · 2m

Vierzehn Themes sind dabei. Das fünfzehnte ist deins.

1248♥ 101
playfishies@playfishies · 9m

Eine JSON-Datei. Zieh sie auf Darstellung → Importieren.

Night Ink
deep-sea.theme.json
{
  "name": "Deep Sea",
  "author": "@you",
  "mode": "dark",
  "colors": { "bg": "#06141b", "text": "#e6f4f1", "accent": "#2ee6c5" },
  "font": { "family": ["Geist"], "scale": 1.02 },
  "shape": { "radius": 14, "button": 9999, "avatar": "rounded" },
  "layout": { "density": "compact", "cards": true },
  "background": { "kind": "pattern", "pattern": "grid",
                  "ink": "#2ee6c5", "opacity": 0.08, "size": 28 },
  "effects": { "hover": "glow" }
}
Plugins

Eine Datei. start() und stop().

*.plugin.js im BetterDiscord-Stil, in den Plugin-Ordner gelegt und in den Einstellungen eingeschaltet. Eine Helfer-API übernimmt die fummeligen Teile.

copy-quote.plugin.js
/**
 * @name Copy Quote
 * @description y on a focused post copies "@handle: text".
 * @version 1.0.0
 * @author @you
 */
module.exports = class CopyQuote {
  start() {
    const api = window.wayBetter.api;
    this.scope = api.scope();
    this.scope.onKey((event, post) => {
      if (event.key !== 'y' || !post) return;
      const t = api.tweet(post);
      if (t) api.copyText(`@${t.handle}: ${t.text}`)
        .then(() => api.toast('Copied'));
    });
  }
  stop() { this.scope.dispose(); }
};

Helfer-API

  • storage(ns)
  • observe(sel, fn)
  • onRouteChange(fn)
  • onKey(fn)
  • tweet(el)
  • copyText(s)
  • toast(msg)
  • injectCSS(id, css)
  • waitFor(sel)
  • scope()

Vierzehn kommen mit wayBetter for X

  • Thread Reader
  • Exact Timestamps
  • Clean Links
  • Copy as Markdown
  • Alt-text Reminder
  • User Notes
  • Muted Regex
  • Reading Time
  • Media Grid Focus
  • Keyboard Plus
  • Emoji Picker
  • Hide Blue Checks
  • Focus Mode
  • Reply Guard

05 Bau darauf auf

Das ganze System ist ein Paket.

Die Seiten-Runtime und die Shell-Modelle hinter wayBetter for X liegen auf npm als waybetter: reines ESM mit Typen, jedes Modul unter eigenem Subpfad, null Abhängigkeiten. Nimm die Teile, die du brauchst, oder bau eine ganze App.

Terminal

npm i waybetter

null AbhängigkeitenESM + .d.tsruntime/* und shell/*GPL-3.0-or-later
adapter.ts · aus der README, gekürzt
import { configureRuntime, type SiteAdapter }
  from 'waybetter/runtime/site';

export const KICK: SiteAdapter = {
  product: 'wayBetter for Kick',
  hosts: ['kick.com'],
  runtimeGlobal: 'WayBetterKick',
  apiMarks: ['/api/'],
  // plugins, rail, account, links, themeSources …
};
configureRuntime(KICK);

waybetter/runtime/*

  • sitedie Kompositionswurzel des Adapters
  • domHubein MutationObserver, ein Frame
  • netHubein fetch/XHR-Hook für alle Funktionen
  • pluginApiHelfer für Nutzer-Plugins
  • themeTokensdas OKLab-Farbmodell
  • paneNaveine Navigation in der geteilten Ansicht
  • linkRoutingdaneben, Tab oder Browser
  • accountReportwelches Konto angemeldet ist

waybetter/shell/*

  • addressModelChips in der Adressleiste
  • paneModelgeteilte Bereiche, Links daneben
  • linkDropLink ablegen, Bereich bekommen
  • paletteRanking der Befehlspalette
  • profileModelKontoprofile
  • updateModelder Update-Chip
  • windowControlsTitelleiste und Fensterschaltflächen
  • chromeGrößen von Titelleiste und Symbolleiste

06 Was kommt als Nächstes

X war die erste. Die nächste baust du.

Jede App mit einer Web-Version kann dasselbe Fenster, dieselben Themes und Plugins bekommen. Diese könnten die nächsten sein. Keine davon ist angekündigt, keine hat einen Termin: Sie warten darauf, dass jemand den Adapter schreibt. Das Adapter-Beispiel in der README selbst ist Kick.

möglich

wayBetter forYouTube?

Tabs und geteilte Bereiche für Videos, alle Kanal-Konten nebeneinander, Themes, Plugins.

möglich

wayBetter forKick?

Streams nebeneinander in einem leichten Fenster, deine Chat-Plugins, dein Theme.

möglich

wayBetter forTwitch?

Geteilte Bereiche für mehrere Streams, alle Konten angemeldet, Plugins für den Chat.

möglich

wayBetter forDiscord?

Die Web-App in einem leichten Tauri-Fenster statt im schweren Client. Dieselbe Shell, dieselben Plugins.

wayBetter fordie App, die du nutzt.

Schreib den Adapter. Shell, Runtime, Themes und Plugins kommen mit.

npm i waybetter

Bau die nächste.

Starte mit dem Paket und dem Adapter-Beispiel aus der README. Etwas gebaut? Trag es per Pull Request in die Liste „Projekte, die wayBetter nutzen“ ein.

Loslegen

Mögliche nächste Apps, keine angekündigten Produkte. YouTube, Kick, Twitch und Discord sind Marken ihrer jeweiligen Inhaber; ihre Logos werden nur gezeigt, um die Dienste zu benennen. wayBetter ist mit keinem von ihnen verbunden und wird von keinem unterstützt oder gesponsert.

07 Frei und Open Source

Kein Haken. Lies jede Zeile.

  1. i.

    Kostenlos

    Kein Bezahltarif, keine Werbung, kein Upselling. Nicht jetzt und nicht „nach der Beta“.

  2. ii.

    Offen

    GPL-3.0-or-later. Das Framework und die Apps sind als Quellcode öffentlich auf git.crt.fyi.

  3. iii.

    Privat

    Keine Analytik, keine Telemetrie darüber, was du liest oder postest. Entwürfe, Einstellungen und Plugins bleiben auf deinem Rechner.

  4. iv.

    Deins

    Forke es, gestalte es, schreib Plugins, bau die nächste App. Die Lizenz hält es auch für die Nächsten offen.

08 Grundsätze

Besser, nicht anders.

Die echte App, an Ort und Stelle

Du meldest dich in der App selbst an. Nichts läuft über einen Proxy oder wird woanders gehostet; geändert wird nur auf deinem Rechner.

Leicht, kein weiterer Browser

Ein Tauri-Fenster auf dem WebView des Systems, eins pro App, mit allen Konten darin.

Handelt nie für dich

Korrekturen sorgen dafür, dass deine eigenen Klicks ankommen. wayBetter postet, folgt oder löscht nie etwas von sich aus.

Still auf dem neuesten Stand

Updates sind signiert und installieren sich still, sodass Korrekturen ohne weiteren Installer ankommen.

Fang mit X an.
Bau, was als Nächstes kommt.

wayBetter for X ansehen